*******************************************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);
}
}
JavaWeb中DAO层的设计与测试
原文:https://www.cnblogs.com/miaoqianling/p/9639602.html