【小白日记】JavaEE当中 JDBC通过Dao层实现增删改查 CRUD
什么是DAO
Data Access Object 数据访问对象
DAO层存在的意义
主要用于封装一些关于 项目当中对数据库访问的接口 实现分层开发,便于维护
DAO层与DAO的实现类
DAO层当中封装的接口 需要拿到DAO的实现类当中进行实现 @OVERRIDE
建立事例项目
目录结构
代码整理
UserDao.java DAO类 接口类
package com.sky.dao;
/**
* 定义操作数据库的方法
* @author WeiHaoLee
*
*/
public interface UserDao {
/**
*查询所有
*
*/
void findAll();
}
UserDaoImpl.java DAO 的实现类
package com.sky.dao.impl;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.sky.dao.UserDao;
import com.sky.util.JDBCUtill;
public class UserDaoImpl implements UserDao {
@Override
public void findAll() {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
//可以书写模板代码
try {
//获取连接对象
conn = JDBCUtill.getConn();
st = conn.createStatement();
String sql = "select * from t_user";
rs = st.executeQuery(sql);
while(rs.next()) {
String username = rs.getString("username");
String password = rs.getString("password");
System.out.println(username + " " + password);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtill.release(conn, st, rs);
}
}
}
TestUserDaoImpl.java junit单元测试类
package com.sky.test;
import org.junit.Test;
import com.sky.dao.UserDao;
import com.sky.dao.impl.UserDaoImpl;
public class TestUserDaoImpl {
@Test
public void testFindAll() {
UserDao dao = new UserDaoImpl(); //多态
dao.findAll();
}
}
jdbc.properties properties测试类
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/user
name=root
password=