JDBC

JDBC(Java Data Base Connectivity,java数据库连接)

步骤

1.注册驱动.

Class.forName("com.mysql.jdbc.Driver");

2.获得连接.

String url="jdbc:mysql://localhost:3306/demo0803?characterEncoding=utf8"

String user=用户名;

String pwd=密码;

Connection conn=DriverManager.getConnection(url, user, pwd);

3.获得语句执行平台

通过连接对象获取对SQL语句的执行者对象

4.执行sql语句

使用执行者对象,向数据库执行SQL语句,获取到数据库的执行后的结果

5.处理结果

6.释放资源.

调用close()方法,反向释放

executeUpdate()方法

增删改时使用

public static void main(String[] args)throws ClassNotFoundException, SQLException {
  Class.forName("com.mysql.jdbc.Driver");
  String url="jdbc:mysql://localhost:3306/demo0803?characterEncoding=utf8";
  String user="root";
  String pwd="123456";
  Connection conn=DriverManager.getConnection(url, user, pwd);
  Statement sta=conn.createStatement();
  String sql="insert sort(sname,sdesc) values('口红','骗女人钱的')";
  int row=(int) sta.executeLargeUpdate(sql);
  System.out.println(row);
  sta.close();
  conn.close();
 }

executeQuery()方法

查询时使用,需要将内容遍历出来

如:

public static void main(String[] args) throws ClassNotFoundException, SQLException {
  Class.forName("com.mysql.jdbc.Driver");
  String url="jdbc:mysql://localhost:3306/demo0803?characterEncoding=utf8";
  String user="root";
  String pwd="123456";
  Connection conn=DriverManager.getConnection(url, user, pwd);
  Statement sta=conn.createStatement();
  String sql="select * from sort";
  ResultSet rs=sta.executeQuery(sql);
  while(rs.next()){
   int sid=rs.getInt(1);
   String sname=rs.getString(2);
   String sdesc=rs.getString(3);
   System.out.println(sid+".."+sname+".."+sdesc);
  }
  rs.close();
  sta.close();
  conn.close();
 }

JDBC工具类

将需要重复使用的内容(连接数据库和释放内存等)封装到一个类中,通过方法调用

如:

public class JDBCUtils {
 public static Connection getConn(){
  Connection conn=null;
  try {
   Class.forName("com.mysql.jdbc.Driver");
   String url="jdbc:mysql://localhost:3306/demo0803?characterEncoding=utf8";
   String user="root";
   String pwd="123456";
   conn=DriverManager.getConnection(url, user, pwd);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  return conn;
  
 }
 public static void close(Connection conn,PreparedStatement pst){
  if(pst!=null){
   try {
    pst.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  if(conn!=null){
   try {
    conn.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
 public static void close(Connection conn,PreparedStatement pst,ResultSet rs){
  if(rs!=null){
   try {
    rs.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  if(pst!=null){
   try {
    pst.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  if(conn!=null){
   try {
    conn.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  
 }

public class Demo09 {
 public static void main(String[] args) throws ClassNotFoundException, SQLException{
  
  
   Connection conn=JDBCUtils.getConn();
   String sql="select * from sort";
   PreparedStatement pst=conn.prepareStatement(sql);
   
   ResultSet rs=pst.executeQuery();
   ArrayList<Sort> arr=new ArrayList<Sort>();
   while(rs.next()){
    
    Sort sort=new Sort();
    sort.setSid(rs.getInt("sid"));
    sort.setSname(rs.getString("sname"));
    sort.setSdesc(rs.getString("sdesc"));
    arr.add(sort);
   }
   System.out.println(arr);
  
    JDBCUtils.close(conn,pst,rs);
   
   
  }
  
 }

 

posted @ 2020-10-17 16:50  ldldl  阅读(88)  评论(0)    收藏  举报