在使用mybatis时,常常会出现这种需求: 当主键是自增的情况下,添加一条记录的同时,其主键是不能使用的,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xml中加入以下属性即可: useGeneratedKeys=”true” keyProperty=”对应的主键的对象”. 例子: http://chenzhou123520.iteye.com/blog/1849881…
MyBatis如何获取插入记录的自增长字段值: 第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into sp…
领域模型主键属性是shopId,使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型shopId属性中,配置参考如下:<insert id="insert" parameterType="com.XXX.ecc.cloudbiz.domain.shop.ShopBaseInfo" useGeneratedKeys="true" keyProperty="shopId"&…
keyProperty="id"的作用是: 一般都是结合数据库自动生成主键来使用,由于是数据库生成的主键, 所以在这个对象持久化到数据库之前是对象中的这个属性是没有属性值的,但是在持久化之后又想使用这个主键, 出现这样的情况时可以keyProperty="id".如代码: 1>在mapper.xml文件中: <insert id="save" parameterType="com.liugang.bean.Book"…
ibatis中使用select top #num# * from tableName出现错误.由于初次用ibatis还不知道在它里边拼写SQL语句的一些规则,导致一些自认为很平常的SQL语句,在它这里翻了船. select top #number#这种写法是不正确的,原因待查.正确的书写方式是 select top $number$ . 下面这段话是在网络里找到的它也没给出具体的解释,只是说这是什么SQL的动态写法,不明所以. 在iBATIS中,对于top参数,只能用动态SQL方式.如<sele…
主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主键回填在 MyBatis 中的两种实现思路. 原生写法 框架来源于我们学过的基础知识,主键回填实际上是一个在 JDBC 中就被支持的写法,有的小伙伴可能不知道这一点,因此这里我先来说说在 JDBC 中如何实现主键回填. JDBC 中实现主键回填其实非常容易,主要是在构造 Prepar…
目录 在settings元素中设置useGeneratedKeys参数 在xml映射器中配置useGeneratedKeys参数 在接口映射器中设置useGeneratedKeys参数 在MyBatis中,允许设置名称为"useGeneratedKeys"参数存在3个位置: 在settings元素中设置useGeneratedKeys参数 在xml映射器中设置useGeneratedKeys参数 在接口映射器中设置useGeneratedKeys参数 在不同位置设置的useGenera…
MyBatis真正强大之处在于它的映射器.因为它异常强大并且编写相对简单,不仅比传统编写SQL语句做的更好并且能节省将近95%的代码量 XML中顶级元素汇总 cache: 给定命名空间的缓存配置 cache-ref: 其他给定命名空间缓存配置的引用 resultMap: 最复杂也是最强大的元素,用来描述如何从数据库结果集中加载对象 sql: 可以被其他语句引用的重复语句块 insert: 映射插入语句 update: 映射更新语句 delete: 映射删除语句 select: 映射查询语句 se…
mybatis中_parameter使用和常用sql   mybatis中_parameter使用和常用sql 在用自动生成工具生成的mybatis代码中,总是能看到这样的情况,如下: <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.juhehl.kapu.pojo.TbCardExample" > select <if test…
1.applicationContext.xml中的配置差异: 在applicationContext.xml的数据源dataSource的配置中,mysql数据库需要心跳包的配置,而oracle中不需要,否则会报错   2.mybatis模糊查询中sql语句的差异 mysql在使用concat拼接字符串时可以直接将三者[%.占位符.%]拼到一起,而oracle则不可以,必须两两拼接,否则就会报ORA-00909: 参数个数无效的错误   mysql:   <select id="sele…