package flowershop.daoimpl; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import flowershop.dao.UserDao; import flowershop.model.User; public class UserDaoImpl implements UserDao { //查询所有 @Override public List findAll() { // TODO 自动生成的方法存根 ArrayList users = new ArrayList(); try { Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1:3306/flowershop?userSSL=false&serverTimezone=Asia/Shanghai"; String user = "root"; String password = "Zhang13075099941"; Connection conn = DriverManager.getConnection(url, user, password); String sql = "select * from user"; Statement sts = conn.createStatement(); ResultSet rs = sts.executeQuery(sql); while (rs.next()) { User user1 = new User(); user1.setUserid(rs.getString("userid")); user1.setUsername(rs.getString("username")); user1.setPassword(rs.getString("password")); user1.setAddress(rs.getString("address")); user1.setPhone(rs.getString("phone")); users.add(user1); System.out.println(user1.getUserid()+" " +user1.getUsername() +" "+user1.getPassword()+" "+user1.getAddress()+" " +user1.getPhone()); } rs.close(); sts.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return users; } //查询用户 @Override public User findById(String userid) { // TODO 自动生成的方法存根 User user = new User(); Connection conn ; PreparedStatement pstmt ; ResultSet rs ; try { conn = Jdbc.getConnection(); String sql = "select userid, username, password, address, phone from user where userid = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, userid); rs = pstmt.executeQuery(); if (rs.next()) { user = new User(); user.setUserid(rs.getString("userid")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); user.setAddress(rs.getString("address")); user.setPhone(rs.getString("phone")); } rs.close(); pstmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } return user; } //创建 @Override public int save(User user) { // TODO 自动生成的方法存根 String sql = "insert into user (userid,password,username,address,phone) values (?,?,?,?,?,?,?)"; try( //2.创建数据库连接 Connection conn = Jdbc.getConnection(); //3.创建语句对象 PreparedStatement pstmt = conn.prepareStatement(sql); ){ //4.绑定参数 pstmt.setString(1, user.getUserid()); pstmt.setString(2, user.getPassword()); pstmt.setString(4, user.getUsername()); pstmt.setString(5, user.getAddress()); pstmt.setString(8, user.getPhone()); //5.执行 int a = pstmt.executeUpdate(); System.out.printf("成功创建%d数据\n",a); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return 0; } //插入 @Override public int create(User user) { String sql = "insert into user(userid,password,username,address,phone) values (?,?,?,?,?,?,?)"; try( //2.创建数据库连接 Connection conn = Jdbc.getConnection(); //3.创建语句对象 PreparedStatement pstmt = conn.prepareStatement(sql); ){ //4.绑定参数 pstmt.setString(1, user.getUserid()); pstmt.setString(2, user.getPassword()); pstmt.setString(4, user.getUsername()); pstmt.setString(5, user.getAddress()); pstmt.setString(8, user.getPhone()); //5.执行 int a = pstmt.executeUpdate(); System.out.printf("成功插入%d数据\n",a); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return 0; } //修改 @Override public int modify(User user) { String sql = "update user set password = ? where userid = ?"; try ( // 2.创建数据库连接 Connection conn = Jdbc.getConnection(); // 3. 创建语句对象 PreparedStatement pstmt= conn.prepareStatement(sql) ) { // 4. 绑定参数 pstmt.setString(1, user.getPassword()); pstmt.setString(2, user.getUserid()); // 5. 执行修改(C、U、D) int affectedRows = pstmt.executeUpdate(); System.out.printf("成功更新%d条数据。\n", affectedRows); } catch (SQLException e) { e.printStackTrace(); } return 0; } //删除 @Override public int remove(User user) { String sql = "delete from user where userid = ?"; try ( // 2.创建数据库连接 Connection conn = Jdbc.getConnection(); // 3. 创建语句对象 PreparedStatement pstmt = conn.prepareStatement(sql)) { // 4. 绑定参数 pstmt.setString(1, user.getUserid()); // 5. 执行修改(C、U、D) int affectedRows = pstmt.executeUpdate(); System.out.printf("成功删除%d条数据。\n", affectedRows); } catch (SQLException e) { e.printStackTrace(); } return 0; } public static void main(String[] args) { UserDaoImpl user = new UserDaoImpl(); for (User al : user.findAll()) { System.out.println(al); } System.out.println("-----------"); System.out.println(user.findById("")); } }