锁定老帖子 主题:主键生成问题
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-25
但我想说的是,如果主键是字符型的怎么办呢,我知道Hibernate中可以通过好几种方式实现的呀. 在Ibatis中应该怎么做呢 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-26
u can use <selectKey> section
Cloudscape VALUES IDENTITY_VAL_LOCAL() DB2 VALUES IDENTITY_VAL_LOCAL() Derby VALUES IDENTITY_VAL_LOCAL() HSQLDB CALL IDENTITY() MySql SELECT LAST_INSERT_ID() SqlServer SELECT SCOPE_IDENTITY() SYBASE SELECT @@IDENTITY ORACLE SELECT CUSTOM_SQL.NEXTVAL AS ID FROM DUAL |
|
返回顶楼 | |
发表时间:2007-07-27
我是这么写的,写完了之后,就插入第一条时没错,然后就插不进去了.
<insert id="saveUser" parameterClass="User"> <selectKey resultClass="string" keyProperty="cid"> select last_insert_id() as cid from test limit 1 </selectKey> insert into test (username, password) values (#userName#, #password#) </insert> 报错:有重复的主键 |
|
返回顶楼 | |
发表时间:2007-07-27
你主键是#username#么?如果是,<select key ... keyproperty=username>才对阿。
|
|
返回顶楼 | |
发表时间:2007-07-27
select last_insert_id() from table;
只能查询到数值型字段,如果是字符型返回全为0。 |
|
返回顶楼 | |
发表时间:2007-07-27
对呀.你们是不是没有看明白我说的问题呀.
我就想问,如果主键是字符型的插入数据时该怎么处理 |
|
返回顶楼 | |
发表时间:2007-07-27
我想知道你的这个key的值是怎么来的
|
|
返回顶楼 | |
发表时间:2007-07-27
就是直接把主键设成是字符型的,
像平时,很多表的主键不都是整型吗.然后设成自动增长. 而我的这个就设成了字符型,并且用做主键,也就是必须唯一 |
|
返回顶楼 | |
发表时间:2007-07-27
你以username做主键就没必使用自增长直接输入用户名就可以了,如果要用自增长就没必要使整形。关键是你这个主键是用来做什么的?
|
|
返回顶楼 | |
发表时间:2007-07-27
@_@
看仔细一些 没问你他是干嘛的 只是问你他是怎么来的 你都说了数字的是自增长的 那你这个呢 里面是str 是些什么str 这些str怎么来的 |
|
返回顶楼 | |