什么是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=