<insert id="insert" parameterType="com.lls.model.Employee"> <!-- selectKey 标签表示子查询中主键的提取问题 resultType表示返回主键的数据类型 keyProperty表示将属性设置到某个列中 此处为id order="AFTER表示在插入语句之后执行 resultType="long"表示返回值得类型为long类型 -->    …
转:https://www.cnblogs.com/caizhen/p/9186608.html mybatis中使用selectKey,返回结果一直是1,结合这个问题,笔记一下selectKey标签以及问题的原因 先说需求,向数据库插入一条记录,表的id是自增的,插入以后返回插入记录的id 下面是xml文件中的插入的sql 1 <insert id="insertCompete" parameterType="CompetesWithBLOBs"> 2…
一.创建Maven项目 在pom.xml中,添加mybatis依赖,mysql-jdbc依赖,把编译版本改为1.8 你问,为啥mybatis不会自动依赖mysql-jdbc,需要手动写明?答:因为mysql驱动是通过字符串动态加载的,这是一种"动态依赖",Maven只能推导出"静态依赖"."动态依赖"是一种更加灵活的依赖. Maven默认的Java版本是1.6,无法使用lambda表达式(1.8)和钻石运算符(1.7). 代码片段:pom.xml…
insert.update.delete语句的返回值类型 对数据库执行修改操作时,数据库会返回受影响的行数. 在MyBatis(使用版本3.4.6,早期版本不支持)中insert.update.delete语句的返回值可以是Integer.Long和Boolean.在定义Mapper接口时直接指定需要的类型即可,无需在对应的<insert><update><delete>标签中显示声明. 对应的代码在 org.apache.ibatis.binding.MapperMe…
开发过程中经常遇到需要插入一条数据,并且返回这条数据自增的主键,在MyBatis中只需要在mapper中添加keyProperty属性即可 在mapper中添加keyProperty属性 <insert id="insertAndGetId" parameterType="com.lili.log.dto.LogPay" useGeneratedKeys="true" keyProperty="payId" > i…
在使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType另一种就是resultMap,下面说下我对这两者的认识和理解 resultType:当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置. 因此对于单表查询的话用resultType是最合适的.但是,如果在写pojo时,不想用数据库表中定义的字段名称,也…
摘自:https://www.jianshu.com/p/80270b93082a 如果定义一个如下的update函数,那么这个函数的返回值到底是啥意思呢?是受影响的行数吗? 验证之前我们先看看数据库中的数据记录.总共两条数据记录! 数据库链接配置为: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm jdbc.username=root jdbc.password=123456 下面看看我们的单…
记录源地址:https://www.jianshu.com/p/80270b93082a…
1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数,那么这个时候我们想要得到相应的这条新增数据的ID,该怎么办呢? 2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值 xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn分别代表数…
刚才在写东西的时候,用mybatis中的 <insert id="add" parameterType="cn.entity.Computer"> insert INTO MyTable(createModel) VALUES(#{createModel})</insert> 在测试类中写了这个 int count = sqlSession.getMapper(ComputerMapper.class).add(com1); 结果是count…