1 package cn.itcast.dao.impl;
2
3 import java.sql.Connection;
4 import java.sql.Date;
5 import java.sql.PreparedStatement;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8 import java.sql.Statement;
9
10 import cn.itcast.dao.UserDao;
11 import cn.itcast.domain.User;
12 import cn.itcast.exception.DaoException;
13 import cn.itcast.jdbc.jdbcUtils;
14
15 public class UserDaoJdbcImpl implements UserDao {
16
17 @Override
18 public void addUser(User user) throws DaoException {
19
20 Connection conn = null;
21 PreparedStatement ps = null;
22 ResultSet rs = null;
23
24 try {
25 // 建立连接
26 conn = jdbcUtils.getConnection();
27
28 String sql = "insert into user(name,birthday,money) values(?,?,?)";
29 ps = conn.prepareStatement(sql);
30
31 ps.setString(1, user.getName());
32 ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
33 ps.setFloat(3, user.getMoney());
34
35 ps.executeUpdate();
36
37 } catch (SQLException e) {
38 throw new DaoException(e.getMessage(), e);
39 } finally {
40 jdbcUtils.free(rs, ps, conn);
41 }
42
43 }
44
45 @Override
46 public User getUser(int userId) {
47 Connection conn = null;
48 PreparedStatement ps = null;
49 ResultSet rs = null;
50 User user = null;
51
52 try {
53 conn = jdbcUtils.getConnection();
54 String sql = "select id,name,money,birthday from user where id = ?";
55 ps = conn.prepareStatement(sql);
56 ps.setInt(1, userId);
57 rs = ps.executeQuery();
58
59 while (rs.next()) {
60
61 user = mappingUser(rs);
62
63 }
64
65 } catch (SQLException e) {
66 throw new DaoException(e.getMessage());
67 } finally {
68 jdbcUtils.free(rs, ps, conn);
69 }
70
71 return user;
72 }
73
74 public User mappingUser(ResultSet rs) throws SQLException {
75 User user = new User();
76 user.setId(rs.getInt("id"));
77 user.setName(rs.getString("name"));
78 user.setMoney(rs.getFloat("money"));
79 user.setBirthday(rs.getDate("birthday"));
80 return user;
81 }
82
83 @Override
84 public void update(User user) {
85 Connection conn = null;
86 PreparedStatement ps = null;
87 ResultSet rs = null;
88
89 try {
90 conn = jdbcUtils.getConnection();
91 String sql = "update user set name = ?,money=? where id=?";
92 ps = conn.prepareStatement(sql);
93 ps.setString(1, user.getName());
94 //ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
95 ps.setFloat(2, user.getMoney());
96 ps.setInt(3, user.getId());
97
98 ps.executeUpdate();
99
100 } catch (SQLException e) {
101 new DaoException(e.getMessage());
102 } finally {
103 jdbcUtils.free(rs, ps, conn);
104 }
105
106 }
107
108 @Override
109 public void delete(User user) {
110
111 Connection conn = null;
112 Statement st = null;
113 ResultSet rs = null;
114
115 try {
116 conn = jdbcUtils.getConnection();
117 st = conn.createStatement();
118 String sql = "delete from user where id=" + user.getId();
119 st.executeUpdate(sql);
120
121 } catch (SQLException e) {
122 throw new DaoException(e.getMessage());
123 } finally {
124 jdbcUtils.free(rs, st, conn);
125 }
126
127 }
128
129 @Override
130 public User findUser(String userName, String password) {
131
132 Connection conn = null;
133 PreparedStatement ps = null;
134 ResultSet rs = null;
135 User user = null;
136
137 try {
138 conn = jdbcUtils.getConnection();
139 String sql = "select id,name,money,birthday from user where name = ?";
140 ps = conn.prepareStatement(sql);
141 ps.setString(1, userName);
142 rs = ps.executeQuery();
143
144 while (rs.next()) {
145 user = mappingUser(rs);
146 }
147
148 } catch (SQLException e) {
149 throw new DaoException(e.getMessage());
150 } finally {
151 jdbcUtils.free(rs, ps, conn);
152 }
153
154 return user;
155 }
156
157 }