JavaWeb中DAO層的設計與測試(附代碼)


***************************DAO層的主要方法********************************
一般包含以下方法:T類型
public int count();
 
public int add(Menus menus);
public int del(int id);
public int update(int id, T t);
public ArrayList<TInfo> findAll();
 
public T findById(int id);
public T findByName(String name);
public Page<TInfo> findByPage(Page<TInfo> page);
 
 
* ************************ DAO包里的UserDao*************************
                    *****************導入的包*******************
在try--catch語句最后有可能還有一個finally,這個代碼塊是無論是否發生異常都要執行的操作
dao:檢查WebConnecnt--WEB-INF--lib是否由jstl和mysql-connector的jar包,有的話,在dao中創建class就會自動導入4個包
{
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
}
 
 
***************************設計框架*******************************
public User find() {
然后進行查找操作:建一個方法(查詢用戶名和密碼)
1、創建連接
Connection conn = DBUtil.getConn();
2、寫sql語句(根據用戶名和密碼查詢)
String sql = "select * from user where username=? and password=?";
3、創建PreparedStatement
PreparedStatement pstmt = null;
ResultSet rSet = null;
4、創建user對象 也默認未null
User user = null;
5、把pstmt和sql關聯在一起,使用異常處理的代碼塊
try {
pstmt = conn.prepareStatement(sql);
//1和2對應的是上面sql的問號,一個對應一個,username和password是方法中的變量名,都寫好了之后一起發送給
pstmt.setString(1, username);
pstmt.setString(2, password);
//executeQuery方法會把數據庫響應的查詢結果存放在resultSet分類對象中供我們使用,一次返回一句sql語句
rSet = pstmt.executeQuery();
//處理結果rSet -->User
//rSet可以儲存很多條數據,按順序存放,判斷條件是一個指向第一條的指針,如果有多次查詢,則可以用while代替if 多次循環查詢,不斷指向下一個。
if(rSet.next()) {
  user = new User();//創建一個叫user的對象
user.setId(rSet.getInt(1));//第一列的id給user
user.setUsername(rSet.getString(2));
user.setPassword(rSet.getString(3));
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 以下為關閉的操作
DBUtil.closeRst(rSet);//關閉結果集
DButil.closePstmt(pstmt);//關閉preparedStatement
DBUtil.closeConn(conn);//關閉連接
}
return user;
}
}
 
 
******************************* test ********************************
//也在DAO下進行test
package service;
 
import dao.UserDao;
import po.User;
 
public class UserService {
private UserDao userdao = new UserDao();
public User login(String username, String password) {
return userdao.findByNameAndPwd(username, password);
}
}
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM