JDBC+MySQL 之 DAO模式
DAO模式
Data Access Object 数据访问对象
工程目录结构:
实现步骤:
- 新建一个dao的接口,里面声明数据库访问规则。
package com.veeja.dao; /** * 定义操作数据库的方法 * @author veeja */ public interface UserDao { /** * 查询所有 */ void findAll(); /** * 登录方法 * @param username * @param password */ void login(String username,String password); }
- 新建一个dao的实现类,具体实现早前定义的规则。
public class UserDaoImpl implements UserDao { @Override public void findAll() { Connection conn = null; Statement st = null; ResultSet rs = null; try { // 获取连接对象 conn = JDBCUtil.getConn(); // 创建statement对象 st = conn.createStatement(); // 执行SQL语句,得到结果集 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 = "+username+"\tpassword = "+password); } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtil.release(conn, st, rs); } } @Override public void login(String username, String password) { // TODO Auto-generated method stub Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JDBCUtil.getConn(); st = conn.createStatement(); String sql = "select * from t_user where username='" + username + "' and password = '" + password + "'"; rs = st.executeQuery(sql); if (rs.next()) { System.out.println("登录成功!"); } else { System.out.println("登陆失败!"); } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtil.release(conn, st, rs); } } }
- 直接使用实现。
public class TestUserDaoImpl { @Test public void testFindAll() { UserDao dao = new UserDaoImpl(); dao.findAll(); } @Test public void testLogin() { UserDao dao = new UserDaoImpl(); dao.login("zhangsan","10010"); } }