- 浏览: 505287 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (285)
- 数据库 (49)
- dwr (1)
- js (35)
- security (6)
- freemaker (4)
- 网站建设 (15)
- css (5)
- javaEE (56)
- 生活点滴 (12)
- 安装与配置 (16)
- ssh2 (13)
- 开源软件 (6)
- web 应用服务器 (6)
- 开发模式和设计模式 (2)
- linux (5)
- 项目管理 (7)
- 计算机杂症 (0)
- appScan (1)
- idea (3)
- android (1)
- java @override 报错处理 (1)
- lucene (5)
- java (2)
- groovy (1)
- Extjs (7)
- asp (2)
- php (2)
- Memcached (1)
- 名言 (1)
- 面试 (1)
- Jmeter (0)
- 微信支付 (1)
- app开发 (1)
- branch分支合并到trunk主干 (1)
- 自动化测试 (1)
- springClond (1)
- ELK (2)
最新评论
-
skykufo:
坑爹啊,我也因为写多了一个div,在ie8浪费了一天
jQuery加载(load、get、post)页面显示空白原因 -
yeyinzhu3211:
帅哥,我想问下,是怎么去除呀?能详细说明下吗?
IntelliJ IDEA 10.5.1 无法断点或停止不动 -
sshitaime:
怎么下载不了啊,能给我一个安装包吗
oracle 10g透明网关组件下载地址(新) -
fuanyu:
xiaohuafyle 写道被你的头像吓尿了 哥们有这么可怕呀 ...
netstat -aon -
wanlt_software:
谢谢。。。。。
oracle 10g透明网关组件下载地址(新)
简单总结了一下我目前知道的方法。
1.package test;
2.3.import java.sql.Connection;
4.import java.sql.DriverManager;
5.import java.sql.ResultSet;
6.import java.sql.Statement;
7.8./**
9. * 三种获得自动生成主键的方法。
10. *
11. * @author 赵学庆 www.java2000.net
12. *
13. */14.public class TestGetPK {
15.16. public static void main(String[] args) throws Exception {
17. Class.forName("com.gbase.jdbc.Driver");
18. String url = "jdbc:gbase://localhost/mytest";
19. Connection con = DriverManager.getConnection(url, "root", "111111");
20.21. System.out.println(getPK1(con));
22. System.out.println(getPK2(con));
23. System.out.println(getPK3(con));
24. }
25.26. /**
27. * 使用JDBC 3.0提供的 getGeneratedKeys。推荐使用
28. *
29. * @param con
30. * @return
31. * @throws Exception
32. */33. public static long getPK1(Connection con) throws Exception {
34. Statement stmt = con.createStatement();
35. stmt.executeUpdate("INSERT INTO t_type (name) values ('Can I Get the Auto Increment Field?')",
36. Statement.RETURN_GENERATED_KEYS);
37.38. int autoIncKeyFromApi = -1;
39. ResultSet rs = stmt.getGeneratedKeys();
40. if (rs.next()) {
41. autoIncKeyFromApi = rs.getInt(1);
42. }
43. return autoIncKeyFromApi;
44. }
45.46. /**
47. * 使用数据库自己的特殊SQL.
48. *
49. * @param con
50. * @return
51. * @throws Exception
52. */53. public static long getPK2(Connection con) throws Exception {
54. Statement stmt = con.createStatement();
55. stmt.executeUpdate("INSERT INTO t_type (name) values ('Can I Get the Auto Increment Field?')",
56. Statement.RETURN_GENERATED_KEYS);
57.58. int autoIncKeyFromFunc = -1;
59. ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID()");
60. if (rs.next()) {
61. autoIncKeyFromFunc = rs.getInt(1);
62. }
63. return autoIncKeyFromFunc;
64. }
65.66. /**
67. * 使用可更新的结果集。
68. *
69. * @param con
70. * @return
71. * @throws Exception
72. */73. public static long getPK3(Connection con) throws Exception {
74. Statement stmt = con.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
75. java.sql.ResultSet.CONCUR_UPDATABLE);
76. ResultSet rs = stmt.executeQuery("SELECT * FROM t_Type");
77. rs.moveToInsertRow();
78. rs.updateString("name", "AUTO INCREMENT here?");
79. rs.insertRow();
80. rs.last();
81. int autoIncKeyFromRS = rs.getInt("id");
82. return autoIncKeyFromRS;
83. }
84.}
85.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/java2000_net/archive/2008/09/27/2989625.aspx
发表评论
-
java 模拟微信浏览器http请求
2020-12-16 08:49 934public static void main(St ... -
java 小数点处理的问题
2015-08-22 16:23 786float num= (float)1/100 ... -
java操作excel 替换指定字符串
2014-12-26 10:27 5313根据excel模板里设置指定的num0,num1,num2 ... -
itext对水印图片的旋转、放大、缩小等操作的示例
2014-07-24 17:17 5820package test1; import java. ... -
java 获取ip
2014-04-25 16:38 865public static String getIpAddr ... -
读取poi
2014-03-12 17:57 1336/** * Writer: fuanyu * Dat ... -
对Map排序
2014-02-20 15:38 794本来来自:http://blog.sina.com.cn/s ... -
java 上下篇文章实现的思路
2014-02-14 15:03 796当前文章的ID =request("id" ... -
Java:String和Date、Timestamp之间的转换
2013-12-03 14:39 10491.1 String -> Date String ... -
ArrayList和数组间的相互转换
2012-07-31 16:00 1119package test.test1; import ... -
No result defined for action and result
2012-07-02 11:50 1012当你在用struts2开发时,如果,从页面跳入action时, ... -
IntelliJ IDEA 10.0 使用javac 编译程序出现“非法字符: \65279 ”解决方法
2012-04-26 11:42 2184一、问题描述: 将在eclipse 创建的项目代码导入 I ... -
map取key及key的值
2012-03-19 15:53 1651public class Test2 { p ... -
用jdbc操作CLOB型数据的两种方式
2012-02-08 10:29 1305最近学Oracle,正好单位OA中Word文件是将文件用BAS ... -
java @override 报错处理
2012-02-02 14:14 1350有时候在自己电脑上编译通过的java代码,在别人那里确编译 ... -
Java判断字符串中是否包含汉字
2011-12-15 11:54 2295有两个方法 import java.util.regex.M ... -
JMagick+ImageMagic处理图片(高质量)
2011-11-27 13:37 2703项目需要简单处理一些用户上传的图片,如缩略图、剪切、旋转、水印 ... -
定时发送邮件的思路
2011-11-19 12:11 1311定时发送邮件:大概是用户选择在某个时间发送邮件; 步骤: ... -
java 解析json
2011-11-10 17:00 1139如下面代码 String str="[{'bus ... -
javamail 收邮件遇到的问题及解决方法
2011-11-04 16:29 23031.java.io.UnsupportedEncodingEx ...
相关推荐
- **描述**:这是一个特殊的策略,结合了`sequence`和`identity`的特点,在某些数据库(如Oracle)中使用JDBC 3的`getGeneratedKeys`方法来获取生成的主键值。 - **应用场景**:适用于需要高效生成主键且支持JDBC 3...
- **示例:** 如前文所示的Java代码片段,通过调用`stmt.getGeneratedKeys()`获取结果集,再从结果集中读取自增ID。 5. **最佳实践:** - **选择合适的方法:** 对于简单的应用,可以直接使用`LAST_INSERT_ID()`...
3. **Statement的getGeneratedKeys()方法**:返回由INSERT、UPDATE或DELETE语句生成的自动增长键,这对于获取新插入行的主键非常有用。 4. **RowSet接口的增强**:JDBC6支持类型4的JavaBeans Compliant RowSets,...
### MySQL的插入问题:如何获取自动增长的ID ...在使用Java程序通过JDBC接口插入记录时,推荐使用`PreparedStatement`的`getGeneratedKeys()`方法来获取自动生成的ID,以确保数据的完整性和安全性。
标题"java使用jdbc插入信息时获取id1"指的是在Java程序中,通过JDBC执行SQL插入语句后,如何获取数据库自动生成的唯一标识符(通常是主键ID)。描述中的"设置成可以获取主键"是关键步骤,这可以通过调用`...
5. **sqljdbc4.jar**: 针对SQL Server 2008引入,这个版本的驱动添加了对Java 6新特性(如Statement的getGeneratedKeys方法)的支持,以及一些性能和稳定性改进。 6. **sqljdbc41.jar**和**sqljdbc42.jar**: 分别...
但这种方式并不适用于所有数据库,因此MyBatis提供了更通用的解决方案,即通过JDBC的`Statement.getGeneratedKeys()`方法来获取自增主键。 总的来说,当使用MyBatis操作支持主键自增的数据库时,正确配置映射文件并...
一种可能的解决方案是使用`LAST_INSERT_ID()`函数,这是一个MySQL特有的SQL函数,可以在更新语句后立即获取自增主键的最新值。然而,这需要在Mybatis的映射文件中添加额外的逻辑来执行查询。 总之,Mybatis的`...
对于具有自增主键的表,MySQL会自动为新插入的记录生成主键值。为了获取这个值,我们需要在插入语句中使用`LAST_INSERT_ID()`函数,并在`Statement`对象上设置`RETURN_GENERATED_KEYS`属性: ```java try ...
查询操作中,`selectList`方法将结果集封装为List集合,`selectMap`方法则将结果集封装为Map集合。`selectOne`方法用于查询单个记录并将其转换为实体类对象。此外,MyBatis还支持模糊查询,可以通过`like`等条件进行...
- `getGeneratedKeys()`返回生成的主键值,适用于自增主键。 **PreparedStatement的增强** - 支持`?|?`占位符语法,用于有条件地插入或更新数据。 - `setRowId(int index, RowId value)`方法,处理行标识符。 **...
这是因为 MyBatis 提供了一个名为 useGeneratedKeys 的选项,该选项可以让 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来获取自动生成的主键值。 2. MyBatis 的特点有误的是什么? 答案:B. 能够在运行期针对库表...
这样,Jdbi会自动生成接口的实现,使得数据库交互更加整洁和安全。例如,你可以定义一个`UserDao`接口: ```java public interface UserDao { @SqlUpdate("CREATE TABLE user (id INTEGER PRIMARY KEY, name ...
7. `hibernate.jdbc.use_get_generated_keys`:在插入数据后,允许使用 JDBC 的 `getGeneratedKeys()` 方法获取自动生成的主键。 了解并正确配置这些属性对于实现高效、可靠的 Hibernate 应用至关重要。它们可以...
4. **新API和功能**:如`Connection.isValid(int timeout)`方法用于检测数据库连接是否有效,以及`Statement.getGeneratedKeys()`获取自动生成的键值。 **Oracle数据库的JDBC使用:** 1. **驱动加载**:使用Oracle...
5. **hibernate.jdbc.use_scrollable_resultset**:启用JDBC2的可滚动结果集,提高处理大数据集的能力。 6. **hibernate.jdbc.use_streams_for_binary**:在处理二进制或可序列化类型时使用流,提高效率。 7. **...
#### 三、主键生成策略 Hibernate提供了多种主键生成策略,每种都有其适用场景。 1. **Assigned**: - 应用程序负责为主键赋值,在保存前手动设置。 - 这是默认生成策略。 2. **Foreign**: - 使用另一个关联...
19. **hibernate.jdbc.use_get_generated_keys**: 开启后,Hibernate会在插入数据后通过`PreparedStatement.getGeneratedKeys()`获取数据库自动生成的键值。 这些参数的正确配置对于优化Hibernate性能、减少资源...
在插入数据后,通过JDBC3的PreparedStatement.getGeneratedKeys()获取自动生成的键。 了解并正确配置这些属性,能够帮助你优化Hibernate在实际项目中的性能和功能,使其更好地适应你的需求。记得根据你的具体...
在具体生成id的时候,我们的操作顺序一般是:先在主表中插入记录,然后获得自动生成的id,以它为基础插入从表的记录。但是,这个过程中存在一个困难,就是插入主表记录后,如何获得它对应的id。通常的做法,是通过...