第二节 JDBC 基本操作-增删查改(一)

来源:互联网 发布:hbulider js无法跳转 编辑:程序博客网 时间:2024/06/05 05:19

JDBC 基本操作(一)

通过之前的操作已经对JDBC连接数据库有了一定得了解,使用Jdbc连接数据库之后,可以执行sql语句,
实现数据库的基本操作。本节通过具体的案例详细讲解如何使用JDBC操作users表。先建立工具包,操作数据库是调用方法。

(1)在工程下新建一个包,jdbc.domain,在该包下创建一个用于保存用户数据的User类。
例 2-1.User.java
package jdbc.domain;import java.sql.Date;public class User {private int id;private String username;private String password;private String email;public Date birthday;public int getId(){return id;}public void setId(int id){this.id=id;}public String getUsername(){return username;}public void setUsername(String username){this.username=username;}public String password(){return password;}public void setPassword(String password){this.password=password;}public String getEmail(){return email;}public void setEmail(String email){this.email=email;}public Date getBirthday(){return birthday;}public void setBirthday(Date birthday){this.birthday=birthday;}}
(2)新建一个包jdbc.utils,包中包含封装这些工具类。(加载数据库驱动,建立数据库连接以及关闭数据库)
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查找指定的userpublic 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;   }}




原创粉丝点击