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);
}
}
 
posted @ 2019-03-18 14:00  喵喵喵喵?  阅读(4136)  评论(0编辑  收藏  举报