MyBatis获取Id自增长的值
2011-07-16 16:23
162 查看
当遇到要保存一个对象同时要保存多个依赖对象的值时,我们需要在同一个事务中进行处理,那么就需要拿到前一个被依赖对象的ID值,但是事务未提交我们怎么去拿ID呢?下面的例子是mybatis对此类需求的支持:
映射文件:
<!-- 设置keyProperty 跟useGeneratedKeys可以获取自增长的ID 只支持具有自增长方式的那种数据库,如,mysql,sql server(oracle不支持)--> <insert id="insert" parameterType="Person" keyProperty="id" useGeneratedKeys="true"> insert into t_person(id,t_name,age,birthday) values(#{id},#{name},#{age},#{birthday}) </insert>
测试类:
//通过factory获得数据库连接会话 SqlSession session=factory.openSession(); //插入一个对象(Person)到数据库对应的表中(t_person) Person p=new Person(); p.setName("张总"); p.setAge(43); p.setBirthday(new Date()); //将对象持久化到数据库中 //需要通过PersonMapper中定义的sql语句完成一个映射过程 try{ //p.setId(i); session.insert(Person.class+".insert",p); System.out.println(p.getId()); session.commit(); }catch(Exception e){ session.rollback(); e.printStackTrace(); }finally{ session.close(); } 通过测试,在事务提交之前能正常拿到Id值
映射文件:
<!-- 设置keyProperty 跟useGeneratedKeys可以获取自增长的ID 只支持具有自增长方式的那种数据库,如,mysql,sql server(oracle不支持)--> <insert id="insert" parameterType="Person" keyProperty="id" useGeneratedKeys="true"> insert into t_person(id,t_name,age,birthday) values(#{id},#{name},#{age},#{birthday}) </insert>
测试类:
//通过factory获得数据库连接会话 SqlSession session=factory.openSession(); //插入一个对象(Person)到数据库对应的表中(t_person) Person p=new Person(); p.setName("张总"); p.setAge(43); p.setBirthday(new Date()); //将对象持久化到数据库中 //需要通过PersonMapper中定义的sql语句完成一个映射过程 try{ //p.setId(i); session.insert(Person.class+".insert",p); System.out.println(p.getId()); session.commit(); }catch(Exception e){ session.rollback(); e.printStackTrace(); }finally{ session.close(); } 通过测试,在事务提交之前能正常拿到Id值
相关文章推荐
- Mybatis获取插入记录的自增长ID
- MyBatis插入数据时获取自增长ID的原理
- Mybatis获取插入记录的自增长ID
- MyBatis学习总结(22)——Mybatis自增长ID获取
- Mybatis获取插入记录的自增长ID
- Mybatis获取插入记录的自增长ID
- Mybatis获取插入记录的自增长ID
- myBatis+mysql获取插入数据的自增长id
- mybatis使用数据库id自增长插入数据并获取刚插入的数据的id
- MyBatis获取插入记录的 id 自增长字段值
- Mybatis获取插入记录的自增长ID
- mybatis-generator 自增长ID 的获取
- Mybatis获取插入记录的自增长ID
- MyBatis获取插入记录的自增长字段值(ID)
- Mybatis基于注解的方式获取新增记录的自增长id
- Mybatis获取插入记录的自增长ID
- Mybatis获取插入记录的自增长ID
- Mybatis获取插入记录的自增长ID
- Mybatis获取插入记录的自增长ID
- MyBatis获取自增长ID