zoukankan      html  css  js  c++  java
  • 使用JDBC连接数据库(一)

    JDBC是由java编程语言编写的类及接口组成,同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言。利用JDBC可以将JAVA代码连接到oracle、DB2、SQLServer、MYSQL等数据库,从而实现对数据库中的数据操作的目的。

    一、JDBC简介

    JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供填统一的访问。JDBC是sun开发的一套数据库访问编程接口,是一种SQL级的API。它是由java语言编写完成,所以具有很好的跨平台特性,使用JDBC编写的数据库应用程序可以在任何支持java的平台上运行,而不必在不同的平台上编写不同的应用程序。

    JDBC的主要功能如下:

    (1)建立与数据库或者其他数据源的链接

    (2)向数据库发送SQL命令

    (3)处理数据库的返回结果

    二、JDBC中常用类和接口

    连接到数据库(Connection)、建立操作指令(Statement)、执行查询指令(executeQuery)、获得查询结果(ResultSet)等。

    1、驱动程序管理类(DriverManager)

    DriverManager类是JDBC的管理类,作用于用户和驱动程序之间。它跟踪在可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登陆时间限制及登录和跟踪消息的显示事务。对于简单的应用程序,一般程序员需要在此类中直接使用唯一的方法时DriverManager.getConnection()。该方法将建立与数据库的链接。JDBC允许用户调用DriverManager的方法getDriver()、getDrivers()和registerDriver()及Driver的方法connect().

    2、声明类(Statement)

    Statement对象用于将SQL语句发送到数据库中。实际上有三种Statement对象,它们都作为在给定链接上执行SQL语句的包容器:Statement、PreparedStatement(它从Statement继承而来)和CallableStatement(它从PreparedStatement继承而来)。它们都专用于发送特定类型的SQL语句:

    (1)Statement对象用于执行不带参数的简单的SQL语句;Statement接口提供了执行语句和获取结果的基本方法。

    (2)PerparedStatement对象用于执行带或不带IN参数的预编译SQL语句;PeraredStatement接口添加处理IN参数的方法;

    (3)CallableStatement对象用于执行对数据库已存储过程的调用;CallableStatement添加处理OUT参数的方法。

    Statement提供了许多方法,最常用的方法如下:

    (1)execute()方法:运行语句,返回是否有结果集。

    (2)executeQuery()方法:运行查询语句,返回ReaultSet对象。

    (3)executeUpdata()方法:运行更新操作,返回更新的行数。

    (4)addBatch()方法:增加批处理语句。

    (5)executeBatch()方法:执行批处理语句。

    (6)clearBatch()方法:清除批处理语句。

    3、数据库连接类 (Connection)

    Connection对象代表与数据库的链接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与很多数据库有连接。打开连接与数据库建立连接的标准方法是调用DriverManager.getConnection()方法。

    String url="jdbc:mysql://127.0.0.1:3306/imooc";

    String user="root";

    String password="tiger";

    DriverManager.getConnection(url,user,password);

    4、结果集合类 (ResultSet)

    ResultSet包含符合SQL语句中条件的所有行记录,并且它通过一套get方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。ResultSet.next()方法用于移动到ResultSet中的下一行,使下一行成为当前行。

    5、JDBC编程步骤

    (1)加载驱动程序:Class.forName(driverClass)

    加载mysql驱动:Class.forName("com.mysql.jdbc.Driver");

    加载oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

    (2)获得数据库连接

    DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc",user,password);

    DriverManager.gerConnection(URL,user,password);

    (3)创建Statement对象:conn.createStatement();

    (4)向数据库发送SQL命令

    (5)处理数据库的返回结果(ResultSet类)

     代码演示:

     1 import java.sql.DriverManager;
     2 import java.sql.ResultSet;
     3 import java.sql.SQLException;
     4 import java.sql.Statement;
     5 import java.sql.Connection;
     6 import java.sql.DriverManager;
     7 import java.sql.SQLException;
     8 
     9 
    10 public class javaTest {
    11    
    12     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    13         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    14         String USER="root";
    15         String PASSWORD="tiger";
    16         //1.加载驱动程序
    17         Class.forName("com.mysql.jdbc.Driver");
    18         //2.获得数据库链接
    19         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    20         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    21         Statement st=conn.createStatement();
    22         ResultSet rs=st.executeQuery("select * from user");
    23         //4.处理数据库的返回结果(使用ResultSet类)
    24         while(rs.next()){
    25             System.out.println(rs.getString("user_name")+" "
    26                           +rs.getString("user_password"));
    27         }
    28         
    29         //关闭资源
    30         rs.close();
    31         st.close();
    32         conn.close();
    33     }
    34 }

    运行结果:

     1 xiao 123 2 lo 123 3 小孩 123 4 校长 123 5 xiaol 123 

    三、常用操作(对于记录来说)

    JDBC可以实现SQL语句在数据库中的执行,也就是说,数据库的所有操作,包括对数据库,对表格,对记录都可以进行相应的操作,但是其实原则上,JDBC只应该对记录进行操作,不能对表格乃至数据库进行更改操作。下面只介绍对记录的操作。

    1.获取数据库连接

    一般为了方便建立数据库链接通常会创建一个类,里面封装好实现数据库链接的函数,方便调用实现数据库连接。

     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.SQLException;
     4 
     5 public class DBUtil {
     6 
     7     private static final String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
     8     private static final String USER="root";
     9     private static final String PASSWORD="tiger";
    10     
    11     private static Connection conn=null;
    12     
    13     static {
    14         try {
    15             //1.加载驱动程序
    16             Class.forName("com.mysql.jdbc.Driver");
    17             //2.获得数据库的连接
    18             conn=DriverManager.getConnection(URL, USER, PASSWORD);
    19         } catch (ClassNotFoundException e) {
    20             e.printStackTrace();
    21         } catch (SQLException e) {
    22             e.printStackTrace();
    23         }
    24     }
    25     //将获得的数据库与java的链接返回(返回的类型为Connection)
    26     public static Connection getConnection(){
    27         return conn;
    28     }
    29 }

    2、增加表中记录

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.Connection;
     7 import java.sql.DriverManager;
     8 import java.sql.SQLException;
     9 
    10 
    11 public class javaTest {
    12    
    13     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    14         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    15         String USER="root";
    16         String PASSWORD="tiger";
    17         //1.加载驱动程序
    18         Class.forName("com.mysql.jdbc.Driver");
    19         //2.获得数据库链接
    20         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    21         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    22         String s=""+"insert into user(id,user_name,user_password) values("+"2,?,123)";
    23         PreparedStatement pst=conn.prepareStatement(s);
    24         
    25         pst.setString(1, "xiaoshuai1");
    26         //pst.setString(2, "123");
    27             
    28         pst.execute();        
    29         //关闭资源        
    30         pst.close();
    31         conn.close();
    32     }
    33 }

     3、删除数据库表格记录

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.Connection;
     7 import java.sql.DriverManager;
     8 import java.sql.SQLException;
     9 
    10 
    11 public class javaTest {
    12    
    13     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    14         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    15         String USER="root";
    16         String PASSWORD="tiger";
    17         //1.加载驱动程序
    18         Class.forName("com.mysql.jdbc.Driver");
    19         //2.获得数据库链接
    20         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    21         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    22         String s="delete from user where id=2 and user_name=?";
    23         PreparedStatement pst=conn.prepareStatement(s);
    24         
    25         pst.setString(1, "xiaoshuai1");
    26         //pst.setString(2, "123");
    27             
    28         pst.execute();        
    29         //关闭资源        
    30         pst.close();
    31         conn.close();
    32     }
    33 }

    4、更新数据库中表格记录信息

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.Connection;
     7 import java.sql.DriverManager;
     8 import java.sql.SQLException;
     9 
    10 
    11 public class javaTest {
    12    
    13     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    14         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    15         String USER="root";
    16         String PASSWORD="tiger";
    17         //1.加载驱动程序
    18         Class.forName("com.mysql.jdbc.Driver");
    19         //2.获得数据库链接
    20         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    21         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    22         String s="update user set user_name=? where id=1 ";
    23         PreparedStatement pst=conn.prepareStatement(s);
    24         
    25         pst.setString(1, "xiaoshuaige");
    26         //pst.setString(2, "123");
    27             
    28         pst.execute();        
    29         //关闭资源        
    30         pst.close();
    31         conn.close();
    32     }
    33 }

    5、查询

    (1)单个变量的查询

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.Connection;
     7 import java.sql.DriverManager;
     8 import java.sql.SQLException;
     9 
    10 
    11 public class javaTest {
    12    
    13     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    14         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    15         String USER="root";
    16         String PASSWORD="tiger";
    17         //1.加载驱动程序
    18         Class.forName("com.mysql.jdbc.Driver");
    19         //2.获得数据库链接
    20         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    21         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    22         String s="select user_name,user_password from user where user_name=? and user_password=?";
    23         PreparedStatement pst=conn.prepareStatement(s);
    24         
    25         pst.setString(1, "xiao");
    26         pst.setString(2, "123");
    29         ResultSet rs=pst.executeQuery();
    30         //4.处理数据库的返回结果(使用ResultSet类)
    31         while(rs.next()){
    32             System.out.println(rs.getString("user_name")+" "
    33                           +rs.getString("user_password"));
    34         }        
    35         //关闭资源
    36         rs.close();
    37         pst.close();
    38         conn.close();
    39     }
    40 }

    运行结果:

    xiao 123

    特别注意当正则表达式形如:select ?,? from user时,要特别注意,查询的结果并不是自己想要查询的结果

    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    
    public class javaTest {
       
        public static void main(String[] args) throws ClassNotFoundException, SQLException  {
            String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
            String USER="root";
            String PASSWORD="tiger";
            //1.加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2.获得数据库链接
            Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
            //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
            String s="select ?,? from user where user_name=xiao and user_password=123";
            PreparedStatement pst=conn.prepareStatement(s);
            
            pst.setString(1, "user_name");
            pst.setString(2, "user_password");
            ResultSet rs=pst.executeQuery();
            //4.处理数据库的返回结果(使用ResultSet类)
            
                System.out.println(rs.getString("user_name")+" "
                              +rs.getString("user_password"));
             
            //关闭资源
            rs.close();
            pst.close();
            conn.close();
        }
    }

    运行结果:

     1 user_name user_password
    

    (2)多个变量查询

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.Connection;
     7 import java.sql.DriverManager;
     8 import java.sql.SQLException;
     9 
    10 
    11 public class javaTest {
    12    
    13     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    14         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    15         String USER="root";
    16         String PASSWORD="tiger";
    17         //1.加载驱动程序
    18         Class.forName("com.mysql.jdbc.Driver");
    19         //2.获得数据库链接
    20         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    21         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    22         String s="select user_name,user_password from user where 1=1";
    23         PreparedStatement pst=conn.prepareStatement(s);
    24         
    25         /*pst.setString(1, "xiao");
    26         pst.setString(2, "123");*/
    27         /*pst.setString(1, "user_name");
    28         pst.setString(2, "user_password");*/
    29         ResultSet rs=pst.executeQuery();
    30         //4.处理数据库的返回结果(使用ResultSet类)
    31         while(rs.next()){
    32             System.out.println(rs.getString("user_name")+" "
    33                           +rs.getString("user_password"));
    34         }        
    35         //关闭资源
    36         rs.close();
    37         pst.close();
    38         conn.close();
    39     }
    40 }

    运行结果:

     1 xiao 123
     2 xiaod 123
     3 xiaok 123
     4 xiao1 123
     5 xo 122
     6 po 123
     7 xio 123
     8 lo 123
     9 小孩 123
    10 校长 123
    11 xiaol 123

     6、调用存储过程

    (1)调用无参存储过程

    1)存储过程代码

    1 CREATE  PROCEDURE SP_select_nofilter3() 
    2 BEGIN
    3      SELECT * FROM file;
    4 END;

    2)调用代码

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.CallableStatement;
     7 import java.sql.Connection;
     8 import java.sql.DriverManager;
     9 import java.sql.SQLException;
    10 
    11 
    12 public class javaTest {
    13    
    14     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    15         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    16         String USER="root";
    17         String PASSWORD="tiger";
    18         //1.加载驱动程序
    19         Class.forName("com.mysql.jdbc.Driver");
    20         //2.获得数据库链接
    21         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    22         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    23         String s="call SP_select_nofilter3() ";
    24         CallableStatement cst=conn.prepareCall(s);
    25             
    26         ResultSet rs=cst.executeQuery();
    27         
    28         while(rs.next()){
    29             System.out.println(rs.getString("user_name"));
    30         }
    31         //关闭资源        
    32         cst.close();
    33         conn.close();
    34     }
    35 }

     运行结果:

     1 xiao 2 xiao 3 xiao 4 xiao 

    (2)调用含有IN参数的存储过程

    1)存储过程代码

    1 CREATE  PROCEDURE SP_select_nofilter4(IN SP_name varchar(20)) 
    2 BEGIN
    3 IF SP_name=null OR SP_name=' ' THEN
    4      SELECT * FROM file;
    5 ELSE
    6     SELECT * FROM file WHERE user_name=SP_name;
    7 END IF;
    8 END;

    2)调用代码:

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.CallableStatement;
     7 import java.sql.Connection;
     8 import java.sql.DriverManager;
     9 import java.sql.SQLException;
    10 
    11 
    12 public class javaTest {
    13    
    14     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    15         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    16         String USER="root";
    17         String PASSWORD="tiger";
    18         //1.加载驱动程序
    19         Class.forName("com.mysql.jdbc.Driver");
    20         //2.获得数据库链接
    21         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    22         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    23         /*查询不带参数*/
    24         String s="call SP_select_nofilter4(?) ";
    25         CallableStatement cst=conn.prepareCall(s);
    26         cst.setString(1," ");    
    27         ResultSet rs=cst.executeQuery();
    28         
    29         while(rs.next()){
    30             System.out.println(rs.getString("id")+"  "+rs.getString("user_name"));
    31         }
    32         System.out.println("*******************************");
    33         //查询带参数
    34         String s1="call SP_select_nofilter4(?)";
    35         CallableStatement cst1=conn.prepareCall(s1);
    36         cst1.setString(1, "xiao1");
    37         ResultSet rs1=cst1.executeQuery();
    38 
    39         while(rs1.next()){
    40             System.out.println(rs1.getString("id")+"  "+rs1.getString("user_name"));
    41         }
    42         
    43         //关闭资源    
    44         rs1.close();
    45         cst1.close();
    46         rs.close();
    47         cst.close();
    48         
    49         conn.close();
    50     }
    51 }

    运行结果:

    1 1  xiao
    2 2  xiao
    3 3  xiao
    4 4  xiao1
    5 *******************************
    6 4  xiao1

    (3)调用含有OUT参数存储过程

    1)存储过程代码

    1 CREATE  PROCEDURE SP_select_nofilter5(OUT SP_name varchar(20)) 
    2 BEGIN
    3     SELECT user_name INTO  SP_name FROM file WHERE id=2;
    4 END;

    2)代码调用

     1 import java.sql.DriverManager;
     2 import java.sql.PreparedStatement;
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.sql.Statement;
     6 import java.sql.Types;
     7 import java.sql.CallableStatement;
     8 import java.sql.Connection;
     9 import java.sql.DriverManager;
    10 import java.sql.SQLException;
    11 
    12 
    13 public class javaTest {
    14    
    15     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    16         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    17         String USER="root";
    18         String PASSWORD="tiger";
    19         //1.加载驱动程序
    20         Class.forName("com.mysql.jdbc.Driver");
    21         //2.获得数据库链接
    22         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    23         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    24         String s="call SP_select_nofilter5(?) ";
    25         CallableStatement cst=conn.prepareCall(s);
    26         cst.registerOutParameter(1, Types.VARCHAR);
    27         ResultSet rs=cst.executeQuery();
    28         String name=cst.getString(1);
    29         
    30         System.out.println(name);    
    31         
    32         //关闭资源    
    33         rs.close();
    34         cst.close();    
    35         conn.close();
    36     }
    37 }

    运行结果:

    xiao

    (4)既含IN又含OUT参数的存储过程

    1)存储过程代码

    1 CREATE  PROCEDURE SP_select_nofilter6(OUT SP_name varchar(20),IN id1  int,OUT path1 BLOB) 
    2 BEGIN
    3     SELECT path , user_name INTO  path1, SP_name FROM file WHERE id=id1;
    4 END;

    2)代码调用

     1 public class javaTest {
     2    
     3     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
     4         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
     5         String USER="root";
     6         String PASSWORD="tiger";
     7         //1.加载驱动程序
     8         Class.forName("com.mysql.jdbc.Driver");
     9         //2.获得数据库链接
    10         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    11         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    12         String s="call SP_select_nofilter6(?,?,?) ";
    13         CallableStatement cst=conn.prepareCall(s);
    14         cst.setInt(2, 2);
    15         cst.registerOutParameter(1, Types.VARCHAR);
    16         cst.registerOutParameter(3, Types.BLOB);
    17         ResultSet rs=cst.executeQuery();
    18         String name=cst.getString(1);
    19         Blob b=cst.getBlob(3);
    20         
    21         System.out.println("name:"+name+" Blob:"+b);
    22        
    23         
    24         //关闭资源    
    25         rs.close();
    26         cst.close();    
    27         conn.close();
    28     }
    29 }

    运行结果:

    name:xiao Blob:com.mysql.jdbc.Blob@3941a79c

     四、事务

    事务(Transaction)是作为单个逻辑工作单位执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行。

    1、事务的特点

    (1)原子性:事务是一个完整的操作

    (2)一致性:当食物完成时,数据必须处于一致状态

    (3)隔离性:对数据进行修改的所有兵法事务彼此隔离

    (4)永久性:事务完成后,它对数据库的修改被永久的保存

    2、JDBC对事务管理的支持

    (1)我们通过提交Commit()或是回退rollback()来管理事务的操作

    (2)事务操作默认是自动提交的

    (3)可以通过调用setAutoCommit(false)来禁止自动提交。

    3、批处理

    1、批处理规范

    JDBC升级到2.0后增强了statement接口,使它能够以批处理的方式执行更新操作(select等语句不能使用)。批处理操作指的是一次可以提交多句更新语句,这些更新语句一起执行。批处理相对逐句提交,使性能大幅度提高。它的具体步骤如下:

    1 conn.setAutoCommit(false);
    2         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    3         Statement st=conn.createStatement();
    4         st.addBatch("insert into user(user_name,user_password) values('小时2','456')");
    5         st.addBatch("insert into user(user_name,user_password) values('小时3','4561')");
    6         
    7         st.executeBatch();
    8         conn.commit();

    2、批处理举例

     1 package test;
     2 
     3 import java.sql.DriverManager;
     4 import java.sql.PreparedStatement;
     5 import java.sql.ResultSet;
     6 import java.sql.SQLException;
     7 import java.sql.Statement;
     8 import java.sql.Types;
     9 import java.sql.Blob;
    10 import java.sql.CallableStatement;
    11 import java.sql.Connection;
    12 import java.sql.DriverManager;
    13 import java.sql.SQLException;
    14 
    15 
    16 public class javaTest {
    17    
    18     public static void main(String[] args) throws ClassNotFoundException, SQLException  {
    19         String URL="jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf-8";
    20         String USER="root";
    21         String PASSWORD="tiger";
    22         //1.加载驱动程序
    23         Class.forName("com.mysql.jdbc.Driver");
    24         //2.获得数据库链接
    25         Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    26         //设置事务不自动提交
    27         conn.setAutoCommit(false);
    28         //3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    29         Statement st=conn.createStatement();
    30         st.addBatch("insert into user(user_name,user_password) values('小时2','456')");
    31         st.addBatch("insert into user(user_name,user_password) values('小时3','4561')");
    32         
    33         st.executeBatch();
    34         conn.commit();
    35         
    36         //关闭资源    
    37         st.close();    
    38         conn.close();
    39     }
    40 }
  • 相关阅读:
    Java安全之JNDI注入
    Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
    .Net Core 3.1升级 .Net 5后出现代码错误 rzc generate exited with code 1.
    重走py 之路 ——普通操作与函数(三)
    重走py 之路 ——字典和集合(二)
    设计模式结(完结篇)
    重走py 之路 ——列表(一)
    RestfulApi 学习笔记——分页和排序(五)
    RestfulApi 学习笔记——查询与过滤还有搜索(五)
    Android开发 Error:The number of method references in a .dex file cannot exceed 64K.Android开发 Error:The number of method references in a .dex file cannot exceed 64K
  • 原文地址:https://www.cnblogs.com/xiaotiaosi/p/6394554.html
Copyright © 2011-2022 走看看