`
zpfadmin
  • 浏览: 41453 次
社区版块
存档分类
最新评论

程序中获取自增主键的值

阅读更多

 

public void getIdentityValue(Connection conn){
         ResultSet rs = null ;
         PreparedStatement pstm = null;
         try{
             String sql = "insert into book(bookname,bookclassno,author,publish,price) values('test',5,'author','dian zi ',88.5)";
             pstm  =  conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
            pstm.executeUpdate();
            ResultSet res = pstm.getGeneratedKeys();
            res.next();
            int Rtn=res.getInt(1);
           
            System.out.println("select identity:"+Rtn);
   
         }catch(Exception e){
             e.printStackTrace();
         }finally{
             if(rs!=null){
                 try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             }
             if(conn!=null){
                 try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             }
         }
         
     }

2。SQLSERVER2000版本

/**
* 在sql 2000中这样获取,驱动程序,jar包也不同了
*/
public static void main(String[] args)
{

//在sql 语句后面加上一个select scope_identity()
String sql ="insert into person values(?,?) select scope_identity()";
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs","sa","");
java.sql .PreparedStatement p=conn.prepareStatement(sql );
p.setObject(1, "zengguofeef");
p.setTimestamp(2, new java.sql .Timestamp(System.currentTimeMillis()));
//这里使用的是executeQuery()方法,而不是executeUpdate()
ResultSet rs=p.executeQuery();
rs.next();
int num=rs.getInt(1);
System.out.println("自动增长列为:"+num);
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

分享到:
评论

相关推荐

    mysql的插入问题 怎么获得自动增长的ID

    学习mysql必看的东西 一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql...还是MYSQL的,一张表有还是有ID自增主键,用JDBC insert一条语句之内,怎么在JAVA程序里面获得这条记录的ID.

    Mybatis源码阅读(三):结果集映射3.3 —— 主键生成策略

    前言 在前面两篇博客中,我们介绍了对于select语句的简单映射和嵌套映射。mybatis中使用ResultHandler等一系列的类,...当我们有业务需求要获取插入时产生的自增主键(或者其他类型不由程序生成的主键)时,则可以使用

    MySQL面试题,经典

    1、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 2、Mysql 的技术特点是什么 3、Heap 表是什么 4、...

    Hibernate注解

    * name 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中 * sequenceName 表示生成策略用到的数据库序列名称。 * initialValue 表示主键初始值,默认为0. * allocationSize 每次主键...

    mysql基础只是总结

    属性可以写在末尾的主键 列值唯一 索引 4、查看表 desc 表名 show columns from 表名 show columns in 表名 5、修改表 alter table 表名 a) drop 字段 注意当表中字段为1个的时候不能删除 b) add 字段名 ...

    Spring.3.x企业应用开发实战(完整版).part2

    11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入...

    Spring3.x企业应用开发实战(完整版) part1

    11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入...

    mysql数据库的基本操作语法

    auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。 4、 foreign key 约束 外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照...

    轻量级数据持久层组件Restful.Data.zip

    下载Restful.dll、Restful.Data、Restful.Data.MySql、Remotion.Linq.dll、MySql.Data.dll,或者直接下载源代码进行编译并获取这5个dll,并在项目中引用这些dll。在 Web.config 或 App.config 中配置连接字符串,...

    经典SQL语句大全

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    数据库操作语句大全(sql)

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    sql经典语句一部分

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

    MySQLDBA运维笔记.pdf

    1.3.1 启动程序设置 700,属主和用户组为 mysql .....................................................21 1.3.2 为 mysq 超级用户 root 设置密码..................................................................

Global site tag (gtag.js) - Google Analytics