在Derby中取得刚刚插入的“递增”类型的字段值

现在才发现采用不同的数据库,对写程序影响很大。

以前常用SQL Server2000或Access,可能是因为都是Microsoft公司的产品,所以在从不同的平台转换的时候问题不是很大。

现在采用Derby数据库的时候,发现在程序中写之前的写法有明显的不同。

下面是在Derby中取得刚刚插入的“递增”类型的字段值的一个例子:

st.execute("insert into zd(name,pass,description,isforbid)values(‘" + theUserName.replaceAll("‘", "‘") + "‘,‘" + MD5.encrypt(thePass) + "‘,‘" + theDescription.replaceAll("‘", "‘‘") + "‘," + theForbid + ")");

                  rs=st.executeQuery("VALUES IDENTITY_VAL_LOCAL()"); //取得刚刚插入的user‘ID

                   int userID=0;
                   if(rs.next())
                   {
                    userID=rs.getInt(1);

                    st.execute("insert into abc(a,b)values(" + userID + ",2)");
时间: 2025-01-22 00:24:43

在Derby中取得刚刚插入的“递增”类型的字段值的相关文章

mybatis中useGeneratedKeys用法--插入数据库后获取主键值

前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录    在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成 问题:对于uuid使用Java代码生成的方式还比较容易控制,然而使用数据库生成的主键,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了. 那有什么办法来插入数据

MyBatis获取插入记录的自增长字段值

第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares(spares_id,spares_na

在SQLite数据库中获取新插入数据自增长的ID值

SQLiteDatabase  db = helper.getWritableDatabase(); db.execSQL("insert into person(name,phone,amount) values(?,?,?) ", new Object[]{person.getName(),person.getPhone(),person.getAmount()}); Cursor cursor = db.rawQuery("select last_insert_rowi

think PHP提取字符串中的数字,并到数据库中使用in查询所关联表的字段值

/* * 提取数字并去数据库取得相应的分类名 * $strs 需要处理的字符串 * $table 数据表名 * $condition 条件字段 * $field 获取的字段 */ public function extractNumberGetName($strs,$table,$condition,$field){ if(empty($strs)){ return ''; } $patterns = "/\d+/"; preg_match_all($patterns,$strs,$a

Mybatis 插入数据后返回主键值

Oracle中获取刚刚插入记录的主键值: <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo">     <selectKey resultType="java.math.BigDecimal" order="BEFORE" keyProperty="id">    SELECT U_US

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE(&#39;{0}&#39;,&#39;YYYY-MM-DD&#39;))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in

向oracle中的表插入数据的方法

向oracle中的表插入数据的方法有以下几种: 假设表名为User 第一种方法:select t.*,rowid from User t;-->点击钥匙那个标记就可向表中添加数据 第二种方法:select t.*,rowid from User t for update;-->点击钥匙那个标记就可向表中添加数据 第三种方法:在oracle中的table表中选中你要添加数据的那个表-->点击右键-->选中Edit data-->就可向表中添加数据 第四种方法:通过DAO层来添加

sql将一个表中的数据插入到另一个表中

列名不一定要相同,只要你在HH中列出要插入列的列表跟select   from   mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的. 比如: insert   into   hh   (fielda,fieldb,fieldc)   select   fieldx,fieldy,fieldz   from   mm ---更新计量点中不存在的数据,将台帐中的信息转移到计量点中 insert into MetricPoints (MeterID,MetricPointNa

如何将一个数组中的元素插入另一个数组

如何将一个数组中的元素插入另一个数组:本章节直接给出一段将一个数组中元素插入另一个数组中的代码实例,直接套用就可以了.代码如下: var first = ['a','b','c']; var second = ['1','2','3']; var index = 1; second.unshift(index, 0); Array.prototype.splice.apply(first, second); 原文地址是:http://www.softwhy.com/forum.php?mod=v