今天发现了一个奇葩的地方
mybatis的主键自动生成
1.使用 keyProperty="id"useGeneratedKeys="true"
来产生主键,只能一次生效
2.主键多次自动生成:也就是使用不支持自动生成主键的方式
<selectKey keyProperty="id" order="BEFORE" resultType="int" >
select MAX(id)+1 as id from db_order
</selectKey>
写代码测试的时候我使用第一种办法,mysql也是支持自动生成主键的,然后我添加记录,第一次成功,后来就不可以了,无语死了,后来才发现第一种方式,就只能在它默认的主键最大数的情况下加一,好像一直都是加一(原来是25,mybatis加到26,后来再加,也是在25的基础上),所以就会主键重复报错,使用第二种办法也没有这个情况。
原因:useGeneratedKeys估计是查询获取后,就一直保存了,使用了静态变量(源代码小菜去看了下,但是是在看不太懂,逻辑上我混乱了),相当于一次查询,多次使用,但是这个月肯定不科学,我在后面加了flushcache="true",也是不行;而selectkey应该就是完整的一次sql查询,能得到准确值,实现上我估计应该是没有缓存,或者有缓存,但是可以在原来基础是可以累加的
希望大神看到,提供看这一块的源代码以及怎么去看之类的技巧哈
<insert id="insertorder" parameterType="Db_order" flushCache="true" timeout="2000" ><!-- keyProperty="id"useGeneratedKeys="true" --> <selectKey keyProperty="id" order="BEFORE" resultType="int" > select MAX(id)+1 as id from db_order </selectKey> insert into db_order values (#{id},#{username},#{Ac_id},#{Ac_name},#{goodsname},#{goodsprice},#{starttime},#{address},#{effect}) </insert>
相关推荐
mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis...
Java开发系列MyBatis使用以及实现Java开发系列MyBatis使用以及实现Java开发系列MyBatis使用以及实现Java开发系列MyBatis使用以及实现Java开发系列MyBatis使用以及实现Java开发系列MyBatis使用以及实现Java开发系列...
mybatis简单使用mybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单使用demomybatis简单...
mybatis配置的重要文件包括mybatis-3-config.dtd mybatis-3-mapper.dtd
然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你放dtd文件的位置例如:D:\mybatis\mybatis-3-config.dtd)->Key(如果更改config,此处应该是:-//...
mybatis源码是mybatis-3.2.6的源码,用户使用mybatis时可以进行参考
Spring mvc 和 mybatis 整合,mybatis使用注解模式
主要为大家详细介绍了spring boot整合mybatis使用c3p0数据源连接mysql,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
mybatis使用案例,包含源码,配置等 mybatis使用案例,包含源码,配置等 mybatis使用案例,包含源码,配置等 mybatis使用案例,包含源码,配置等 mybatis使用案例,包含源码,配置等
使用mybatis必要的安装包。包括mybatis.jar和mybatis-connector.jar。
Mybatis使用案例 。
mybatis使用注解方式简单实现的Demo
mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3mybatis训练3
mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架mybatis框架...