Java学习笔记(50)——Java之JDBC(下)

(6)批处理操作

package org.addbetchdemo;  
  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.util.Date;  
  
public class AddDetchDemo {  
  
    /** 
     * @param args 
     */  
    public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
    //连接地址是由各个数据库生产商单独提供的,所以需要单独记住  
    public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
    //连接数据库的用户名  
    public static final String DBUSER = "root";  
    //连接数据库的密码  
    public static final String DBPASS = "";   
      
    public static void main(String[] args) throws Exception {  
        // TODO Auto-generated method stub  
        Connection con = null; //表示数据库的连接对象  
        PreparedStatement pstmt = null; //表示数据库更新操作  
          
        String sql = "insert into java_study.person values(?,?,?)";  
          
        Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序  
          
        System.out.println(sql);  
        con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库  
        pstmt = con.prepareStatement(sql); //使用预处理的方式创建对象  
          
        for (int i = 0;i<10;i++){  
            pstmt.setString(1, "org"+i); //第一个?号的内容  
            pstmt.setInt(2, i); //第二个?号的内容  
            pstmt.setDate(3, new java.sql.Date(new java.util.Date().getTime()));  
            pstmt.addBatch();  
        }  
        int[] i = pstmt.executeBatch(); //执行SQL 语句,更新数据库  
        System.out.println(i);  
        pstmt.close();  
        con.close(); // 4、关闭数据库  
    }  
  
}

(7)事务操作

package org.transactiondemo;  
  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.Statement;  
  
public class TransactionDemo {  
  
    /** 
     * @param args 
     */  
    //驱动程序就是之前在classpath中配置的JDBC的驱动程序的JAR 包中  
    public static final String DBDRIVER = "com.mysql.jdbc.Driver";  
    //连接地址是由各个数据库生产商单独提供的,所以需要单独记住  
    public static final String DBURL = "jdbc:mysql://localhost:3306/test";  
    //连接数据库的用户名  
    public static final String DBUSER = "root";  
    //连接数据库的密码  
    public static final String DBPASS = "";  
      
    public static void main(String[] args) throws Exception {  
        // TODO Auto-generated method stub  
        Connection con = null; //表示数据库的连接对象  
        Statement stmt = null;   
        Class.forName(DBDRIVER); //1、使用CLASS 类加载驱动程序  
        con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //2、连接数据库  
          
        con.setAutoCommit(false);  
          
        stmt = con.createStatement(); //3、Statement 接口需要通过Connection 接口进行实例化操作  
          
        try{  
        stmt.addBatch("insert into java_study.person values(\'Tom\',20,\'2012-01-01\')"); //执行SQL 语句,插入、更新、删除数据  
        stmt.addBatch("insert into java_study.person values(\'Tom\',20,\'2012-01-01\')");  
        stmt.addBatch("insert into java_study.person values(\''Tom\',20,\'2012-01-01\')");  
            stmt.executeBatch();  
            con.commit();  
        } catch(Exception e){  
            con.rollback();  
        }  
          
          
  
        stmt.close();  
        con.close(); // 4、关闭数据库  
    }  
  
}

(8)获取数据库以及结果集的metadata信息

获取数据库的metadata信息

  我们可以通过connection.getMetaData方法来获取数据库的元数据信息,它的类型是DatabaseMetaData。

获取数据库的元数据信息
private static void test1() throws SQLException
{
    String dbURL = "jdbc:mysql://localhost/mysql";
    Connection con = DriverManager.getConnection(dbURL, "root", "123");
    
    DatabaseMetaData dbmd = con.getMetaData();
    
    System.out.println("数据库:" + dbmd.getDatabaseProductName() + " " + dbmd.getDatabaseProductVersion());
    System.out.println("驱动程序:" + dbmd.getDriverName() + " " + dbmd.getDriverVersion());
    ResultSet rs = dbmd.getTables(null, null, null, null);
    System.out.println(String.format("|%-26s|%-9s|%-9s|%-9s|", "表名称","表类别","表类型","表模式"));        
    while(rs.next())
    {
        System.out.println(String.format("|%-25s|%-10s|%-10s|%-10s|", 
                rs.getString("TABLE_NAME"),rs.getString("TABLE_CAT"),
                rs.getString("TABLE_TYPE"), rs.getString("TABLE_SCHEM")));
    }
}

获取结果集的元数据信息

  我们可以通过使用resultset.getMetaData方法来获取结果集的元数据信息,它的类型是ResultSetMetaData。

获取结果集的元数据信息

private static void test2() throws SQLException

{

    String dbURL = "jdbc:mysql://localhost/test";

    Connection con = DriverManager.getConnection(dbURL, "root", "123");

    Statement st = con.createStatement();

    ResultSet rs = st.executeQuery("select ID, NAME from user");

    ResultSetMetaData rsmd = rs.getMetaData();

    for (int i = 1; i <= rsmd.getColumnCount(); i++)

    {

        System.out.println("Column Name:" + rsmd.getColumnName(i) + "; Column Type:" + rsmd.getColumnTypeName(i));

    }

}

你可能感兴趣的:(Java学习笔记(50)——Java之JDBC(下))