第二節 JDBC 基本操作-增刪查改(一)
阿新 • • 發佈:2019-01-26
package jdbc.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Utils { //載入資料庫驅動,並建立資料庫連線 public static Connection getConnection()throws SQLException, ClassNotFoundException{ Class.forName("com.myssql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/chapter01"; String username="root"; String password="****"; Connection conn=(Connection)DriverManager.getConnection(url,username,password); return conn; } //關閉資料庫連線 public static void release(Statement stmt,Connection conn){ if(stmt !=null){ try{ stmt.close(); }catch(SQLException e){ e.printStackTrace(); } stmt=null; } if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } conn=null; } } public static void release(ResultSet rs,Statement stmt,Connection conn){ if(rs!=null){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } rs=null; } release(stmt,conn); } }
(3)新建一個包,在包中建立一個類UserDao,該類封裝對資料表的增刪查改操作。
package jdbc.example.dao; import jdbc.domain.User; import jdbc.utils.Utils; import java.sql.*; import java.text.SimpleDateFormat; import java.util.ArrayList; public class UserDao { //新增使用者操作 public boolean insert(User user){ Connection conn=null; Statement stmt=null; ResultSet rs=null; //public class SimpleDateFormt extends SimpleDateFormat { //} try{ //獲取資料連線 conn=Utils.getConnection(); stmt=conn.createStatement(); //傳送SQL資料 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String birthday=sdf.format(user.getBirthday()); String sql="INSERT INTO users(id,name,password,email,birthday)"+ "VALUES("+user.getId()+",'"+user.getUsername()+"','"+user.getPassword()+ "','"+user.getEmail()+"','"+birthday+"')"; int num=stmt.executeUpdate(sql); if(num>0){ return true; } return false; }catch(Exception e){ e.printStackTrace(); }finally{ Utils.release(rs, stmt,conn);//1 } return false; } //查詢所有user物件 public ArrayList<User>findAll(){ //return null; Connection conn=null; Statement stmt=null; ResultSet rs=null; ArrayList<User>list=new ArrayList<User>(); try{ //獲取資料連線 conn=Utils.getConnection(); //獲取Statement物件 stmt=conn.createStatement(); //傳送SQL資料 String sql="SELECT*FROM users"; rs=stmt.executeQuery(sql); //處理結果集 while(rs.next()){ User user=new User(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("name")); user.setPassword(rs.getString("password")); user.setEmail(rs.getString("email")); user.setBirthday(rs.getDate("birthday")); list.add(user); } return list; }catch(Exception e){ e.printStackTrace(); }finally{ Utils.release(rs, stmt,conn);//2 } return null; } //根據id查詢指定的user public User find(int id){ Connection conn=null; Statement stmt=null; ResultSet rs=null; try{ //獲取資料連線 conn=Utils.getConnection(); //獲取Statement物件 stmt=conn.createStatement(); //傳送SQL資料 String sql="SELECT*FROM users WHERE id="+id; rs=stmt.executeQuery(sql); //處理結果集 while(rs.next()){ User user=new User(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("name")); user.setPassword(rs.getString("password")); user.setEmail(rs.getString("email")); user.setBirthday(rs.getDate("birthday")); return user; } return null; }catch(Exception e){ e.printStackTrace(); }finally{ Utils.release(rs, stmt,conn);//3 } return null; } //刪除使用者 public boolean delete(int id)throws SQLException{ Connection conn=null; Statement stmt=null; ResultSet rs=null; try{ //獲取資料連線 conn=Utils.getConnection(); //獲取Statement物件 stmt=conn.createStatement(); //傳送SQL語句 String sql="DELETE FROM users WHERE id="+id; int num=stmt.executeUpdate(sql); if(num>0){ return true; } return false; }catch(Exception e){ e.printStackTrace(); }finally{ Utils.release(rs, stmt,conn); } return false; } //修改使用者 public boolean update(User user){ Connection conn=null; Statement stmt=null; ResultSet rs=null; try{ //獲取資料連線 conn=Utils.getConnection(); //獲取Statement物件 stmt=conn.createStatement(); //傳送SQL資料 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String birthday=sdf.format(user.getBirthday()); String sql="UPDATE users set name='"+user.getUsername() +"',password='"+user.getPassword()+"',email='"+user.getEmail() +"',birthday='"+birthday+"'WHERE id= "+user.getId(); int num=stmt.executeUpdate(sql); if(num>0){ return true; }return false; }catch(Exception e){ e.printStackTrace(); }finally{ Utils.release(rs, stmt,conn);//5 } return false; } }