博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习笔记(50)——Java之JDBC(下)
阅读量:6607 次
发布时间:2019-06-24

本文共 4612 字,大约阅读时间需要 15 分钟。

  hot3.png

(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));    }}

转载于:https://my.oschina.net/jewill/blog/413276

你可能感兴趣的文章
嵌入式 详解udev
查看>>
《C程序员:从校园到职场》出版预告(2):从“百花齐放”到“一枝独秀”
查看>>
Network Monitor 查询命令和MySQL命令
查看>>
好“戏”刚刚开幕 云计算逐步被认可
查看>>
云安全:这也是需要花大钱去建设的部分
查看>>
LinkedIn文本分析平台:主题挖掘的四大技术步骤
查看>>
以全局产业观领航智慧城市建设
查看>>
Intel 18核酷睿i9因故延期到明年:AMD Ryzen反超
查看>>
5G网络不止能1秒下一部电影,它还能够…
查看>>
英特尔:McAfee将剥离出去独立运营
查看>>
中国电信集采终端6700万部 金额达1070亿元
查看>>
2016年的十个数据中心故事
查看>>
《Java并发编程的艺术》一一3.3 顺序一致性
查看>>
《CCNP SWITCH 300-115认证考试指南》——导读
查看>>
《设计之外——比修图更重要的111件事》—第1部分3 虚心学习
查看>>
Solaris Studio 12.4 Beta update 7/2014
查看>>
EVCache —— Netflix 的分布式内存数据存储
查看>>
《用友ERP-U8(8.72版)标准财务模拟实训》——1.4 系统管理注册和导入演示账套...
查看>>
《Node.js区块链开发》一3.6 总结
查看>>
《UG NX8.0中文版完全自学手册》一2.8 布尔运算
查看>>