JDBC系列教程之十一:其他的几个API

2019-03-28 00:11|来源: 领悟书生

其他的几个API

l  PreparedStatement.getGeneratedKeys()

        PreparedStatementps = connection.prepareStatement(sql,        Statement.RETURN_GENERATED_KEYS);

        ps.executeUpdate();

        ResultSetrs = st.getGeneratedKeys();rs.getInt(1);

l  批处理,可以大幅度提升大量增、删、改的速度。

        PreparedStatement.addBatch();

        PreparedStatement.executeBatch();

BatchTest.java

static void createBatch() throws SQLException {

   Connection conn = null;

   PreparedStatement ps = null;

   ResultSet rs = null;

   try {

      conn = JdbcUtils.getConnection();

      String sql = "insert into user(name,birthday, money) values (?, ?, ?) ";

      ps = conn.prepareStatement(sql,  Statement.RETURN_GENERATED_KEYS);

      for (int i = 0; i < 100; i++) {

          ps.setString(1, "name" + i);

          ps.setDate(2, new Date(System.currentTimeMillis()));

          ps.setFloat(3, 100f + i);

          //批量

          ps.addBatch();

      }

      int[] is = ps.executeBatch();

   } finally {

      JdbcUtils.free(rs, ps, conn);

   }

l  可滚动的结果集

        Statementst =

        connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,     ResultSet.CONCUR_UPDATABLE);

        ResultSetrs = st.executeQuery(sql);

        rs.beforeFirst();rs.afterLast();rs.first();rs.isFirst();rs.last();rs.isLast();

        rs.absolute(9);rs.moveToInsertRow();

可滚动结果集与分页技术ScrollTest.java

package com.hyneng.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

* 2010-10-08

* @author HuangYineng

*/

public class ScrollTest {

   public static void main(String[] args) throws  SQLException {

      scroll();

   }

   static void scroll() throws  SQLException {

      Connection conn = null;

      Statement st = null;

      ResultSet rs = null;

      try {

          // 2.建立连接

          conn = JdbcUtils.getConnection();

          st =  conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                 ResultSet.CONCUR_READ_ONLY);

//         rs =  st.executeQuery("select id, name, money, birthday  from user where id<10");

          //分页,从150条开始,取10

          rs = st.executeQuery("select id, name, money, birthday  from user limit 150, 10");

          while (rs.next()) {

             System.out.println(rs.getObject("id") + "\t"

                    + rs.getObject("name") + "\t"

                    + rs.getObject("birthday") + "\t"

                    + rs.getObject("money"));

          }

          System.out.println("------------");

          //固定到哪一行

          rs.absolute(150);

          int i = 0;

          while (rs.next() && i <  10) {

             i++;

             System.out.println(rs.getObject("id") + "\t"

                    + rs.getObject("name") + "\t"

                    + rs.getObject("birthday") + "\t"

                    + rs.getObject("money"));

          }

//          if (rs.previous())

//           System.out.println(rs.getObject("id") + "\t"

//          + rs.getObject("name") +  "\t"

//          + rs.getObject("birthday")  + "\t"

//          + rs.getObject("money"));

      } finally {

          JdbcUtils.free(rs, st,  conn);

      }

   }

}

l  可更新的结果集

        conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                                              ResultSet.CONCUR_UPDATABLE);

        rs.updateString("colname", "new value");

        rs.updateRow();

OtherApi---read()

   static void read() throws  SQLException, InterruptedException {

      Connection conn = null;

      Statement st = null;

      ResultSet rs = null;

      try {

          // 2.建立连接

          conn = JdbcUtils.getConnection();

          // 3.创建语句

          st =  conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                 ResultSet.CONCUR_UPDATABLE);

          // 4.执行语句

          rs = st.executeQuery("select id, name, money, birthday  from user where id < 5");

          // 5.处理结果

          while (rs.next()) {

             int id = rs.getInt("id");

             System.out.println("show " + id + "...");

             Thread.sleep(10000);

             System.out.println(id + "\t" +  rs.getObject("name") + "\t"

                    + rs.getObject("birthday") + "\t"

                    + rs.getObject("money"));

          }

      } finally {

          JdbcUtils.free(rs, st,  conn);

      }

   }


本文链接:JDBC系列教程之十一:其他的几个API,转自请注明:http://www.656463.com/article/815

相关问答

更多

为什么我的mysql查询看不到这两个变量的组合,但看到其余的?(Why isn't my mysql query seeing this one combination of two variables but sees the rest?)

(来自评论..) <cfif IsDefined('url.start_end')> 看起来你有三个日期变量: url.start_date , url.end_date和url.start_end 。 什么是url.start_end - 这是一个错字吗? 另外,您可能希望为变量设置默认值,以便消除某些cfif条件。 然后努力简化剩下的逻辑,因为它似乎比必要的更复杂...... Dan的回答包含一些好的建议。 我强烈怀疑你可以通过删除DATE_FORMAT(ColumnName, '%Y-%m

Spring集成 - 外部化JDBC查询(Spring Integration - Externalizing JDBC Queries)

您可以将XML中的查询定义为spring bean: <bean id="exampleQuerySql" class="java.lang.String"> <constructor-arg> <value> <![CDATA[ select * from foo where whatever_ind = 'A' ]]> </value> </constructor-arg> </bean> 使用CDATA,查

Bash函数具有多行文本,用于在tomcat构建脚本中写入jdbc配置文件(Bash function has multiple lines of text to write over a jdbc configuration file in a tomcat build script)

尝试: function build() { echo "jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://thisismyurl jdbc.username=user jdbc.password=password" > "jdbc.properties"; } 在一个名为something.sh源文件./something.sh的文件中运行,并成功运

找出给定CSS类应用的所有元素?(Find out all elements a given CSS class is applied to?)

你在找这个: https : //developer.mozilla.org/en-US/docs/Web/API/document.querySelectorAll ? 基本上你可以找到匹配某个选择器的元素,如: document.querySelectorAll('.firstclass.secondclass') Are you looking for this: https://developer.mozilla.org/en-US/docs/Web/API/document.query

MySQL过程语法错误“缺少结束”(MySQL Procedure Syntax Error “Missing END”)

一些问题: DECLARE只允许在BEGIN ... END复合语句中使用,并且必须在其开始之前,在任何其他语句之前。 请参见13.6.3 DECLARE语法 。 ERROR 1193(HY000):未知的系统变量'done'。 检查游标的语法。 请参见13.6.6.2游标DECLARE语法 。 column是关键字和保留字。 请参见9.3关键字和保留字 。 想念一些; 。 DELIMITER // CREATE PROCEDURE `uspCreateViewFromTable`( IN
java8新特征详解
java文件操作专题教程
JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征

相关文章

更多

最近更新

更多