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

相关问答

更多

wdcp系列教程之隐藏Nginx版本号

WDCP 隐藏Nginx版本号教程各大门户都隐藏nginx的版本号 他们如此做必有道理所以我们也学习吧总共两步!第一步:先到 /www/wdlinux/nginx-1.4.1(我升级了版本)/conf 下 找到 nginx.conf 文件然后打开找到 tcp_nodelay on;在下面那一行添加 server_tokens off; 即可如:keepalive_timeout60; tcp_nodelay on;server_tokens off;这样就行了 (高手别笑,教程本来就是要方便简便) ...

MS Word与其他进程之间的通信(Communication between MS Word and other process)

要使用的函数是GetObject() 。 它将返回指向打开的第一个Word实例的指针。 The function to use is GetObject(). It will return a pointer to the first Word instance opened.

电脑基础.实例.上机系列教程

针对这门课程的附带,当然是教程盘啦

Painter从入门到精通系列教学视频教程

Painter从入门到精通系列教学视频教程 http://www.shouhui119.com/shouhuishipinjiaocheng/shouhuiruanjian/137.html

如何通过API了解应用程序[关闭](How to understand an application through API [closed])

首先,当您想要使用新API时 - 您需要提出这个问题 您想学习API的基础知识吗? 您是否有完成API的特定任务? 您想学习API的基础知识吗? 学习API的基础知识从理解框架和做出的架构决策开始。 如何启动开发。 基本上,没有开发人员指南就不可能完全学习框架 - API可以为方法和类提供文档。 要获得鸟瞰视图,您必须通过开发人员指南了解。 您是否有完成API的特定任务? 假设您要创建一个获取某些数据并将该数据插入SQLITE数据库的表单。 你可以通过研究你已经知道的东西来开始。 与在数据库连接, ...
java8新特征详解
java文件操作专题教程
JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征

相关文章

更多

最近更新

更多