完成整个DAO的实现及测试代码
2024-09-13 04:31:36
package cn.itcast.domain; import java.util.Date; public class User { private int id;
private String name;
private Date birthday;
private float money; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public float getMoney() {
return money;
} public void setMoney(float money) {
this.money = money;
} }
User
package cn.itcast.dao; import java.sql.SQLException; import cn.itcast.domain.User; public interface UserDao { public void addUser(User user) throws SQLException; public User getUser(int userId); public void update(User user); public void delete(User user); public User findUser(String userName,String password); }
UserDao
package cn.itcast.dao.impl; import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;
import cn.itcast.exception.DaoException;
import cn.itcast.jdbc.jdbcUtils; public class UserDaoJdbcImpl implements UserDao { @Override
public void addUser(User user) throws DaoException { Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; try {
// 建立连接
conn = jdbcUtils.getConnection(); String sql = "insert into user(name,birthday,money) values(?,?,?)";
ps = conn.prepareStatement(sql); ps.setString(1, user.getName());
ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
ps.setFloat(3, user.getMoney()); ps.executeUpdate(); } catch (SQLException e) {
throw new DaoException(e.getMessage(), e);
} finally {
jdbcUtils.free(rs, ps, conn);
} } @Override
public User getUser(int userId) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
User user = null; try {
conn = jdbcUtils.getConnection();
String sql = "select id,name,money,birthday from user where id = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, userId);
rs = ps.executeQuery(); while (rs.next()) { user = mappingUser(rs); } } catch (SQLException e) {
throw new DaoException(e.getMessage());
} finally {
jdbcUtils.free(rs, ps, conn);
} return user;
} public User mappingUser(ResultSet rs) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setMoney(rs.getFloat("money"));
user.setBirthday(rs.getDate("birthday"));
return user;
} @Override
public void update(User user) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; try {
conn = jdbcUtils.getConnection();
String sql = "update user set name = ?,money=? where id=?";
ps = conn.prepareStatement(sql);
ps.setString(1, user.getName());
//ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
ps.setFloat(2, user.getMoney());
ps.setInt(3, user.getId()); ps.executeUpdate(); } catch (SQLException e) {
new DaoException(e.getMessage());
} finally {
jdbcUtils.free(rs, ps, conn);
} } @Override
public void delete(User user) { Connection conn = null;
Statement st = null;
ResultSet rs = null; try {
conn = jdbcUtils.getConnection();
st = conn.createStatement();
String sql = "delete from user where id=" + user.getId();
st.executeUpdate(sql); } catch (SQLException e) {
throw new DaoException(e.getMessage());
} finally {
jdbcUtils.free(rs, st, conn);
} } @Override
public User findUser(String userName, String password) { Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
User user = null; try {
conn = jdbcUtils.getConnection();
String sql = "select id,name,money,birthday from user where name = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, userName);
rs = ps.executeQuery(); while (rs.next()) {
user = mappingUser(rs);
} } catch (SQLException e) {
throw new DaoException(e.getMessage());
} finally {
jdbcUtils.free(rs, ps, conn);
} return user;
} }
UserDaoJdbcImpl
package cn.itcast.exception; public class DaoException extends RuntimeException { private static final long serialVersionUID = 1L; public DaoException() {
super();
// TODO Auto-generated constructor stub
} public DaoException(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
} public DaoException(String message) {
super(message);
// TODO Auto-generated constructor stub
} public DaoException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
} }
DaoException
package cn.itcast.jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class jdbcUtils { private static String url = "jdbc:mysql://localhost:3306/jdbc";
private static String user = "root";
private static String password = "123"; private jdbcUtils() { } static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
} public static void free(ResultSet rs, Statement st, Connection conn) { try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally { try {
if (st != null)
st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally { try {
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
} } }
}
jdbcUtils
package cn.itcast.dao; import java.sql.SQLException;
import java.util.Date; import cn.itcast.dao.impl.UserDaoJdbcImpl;
import cn.itcast.domain.User; public class UserTest { /**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException { UserDao userDao = new UserDaoJdbcImpl(); //User user = new User();
//user.setBirthday(new Date());
//user.setName("dao name1");
//user.setMoney(1000.0f); // userDao.addUser(user);
//
// User u = userDao.findUser(user.getName(),null);
// System.out.println(u.getId()); User u = userDao.getUser(1); u.setMoney(2000.0f);
userDao.update(u); User u1 = userDao.getUser(1);
userDao.delete(u1); } }
UserTest
最新文章
- js 时间构造函数
- Android 媒体存储服务(一)
- 我的Eclipse快捷键.
- el 表达式 和 ognl表达式
- alert()、confirm()和prompt()的区别
- Java [Leetcode 205]Isomorphic Strings
- ASDL + WN725N 配置无线AP
- 你所不知道的五件事情--java.util.concurrent(第一部分)
- 10个工具让你的 shell 脚本更强大
- Parallel Python——一个简单的分布式计算系统
- 一个可以直接使用的MsgBox基于form居中API
- 【 js 基础 】【 源码学习 】源码设计 (持续更新)
- Java之数字处理类浅析
- cobaltstrike安装加破解教程+使用教程
- 吴恩达课后作业学习2-week3-tensorflow learning-1-基本概念
- IPMI无法执行命令
- [漏洞分析]thinkphp 5.1.25 insert、insetAll、update方法注入
- last
- Vue项目开发之打包后背景图片路径错误的坑
- VS2017专业版使用最新版Qt5.9.2教程