映射配置文件 好947
<!-- type:映射实体类的数据类型 id:resultMap的唯一标识 --> <resultMap type="person" id="BaseResultMap"> <!-- column:库表的字段名 property:实体类里的属性名 --> <id column="person_id" property="personId" /> <result column="name" property="name" /> <result column="gender" property="gender" /> <result column="person_addr" property="personAddr" /> <result column="birthday" property="birthday" /> </resultMap>
映射配置查询语句 好947
<insert id="insert" parameterType="com.hao947.model.Person"> <!-- keyProperty:实体类中的id属性名,当返回主键的时候就是返回给keyProperty order:生成主键和执行insert语句的顺序,在mysql是AFTER,在oracle中使用BEFORE resultType:主键返回的数据类型,和实体类中的主键的类型一致 select LAST_INSERT_ID():mysql中生成主键的sql,oracle中select xxxx.nextval from dual --> <selectKey keyProperty="personId" order="AFTER" resultType="java.lang.Integer"> select last_insert_id(); </selectKey> insert into person (person_id, name, gender, person_addr, birthday) values(#{personId}, #{name}, #{gender}, #{personAddr}, #{birthday}) </insert>
<!-- 集中管理库表的映射文件 --> <mappers> <mapper resource="com/hao947/sql/mapper/PersonMapper.xml" /> </mappers>
测试文件 hao947
@Test public void insert() { SqlSession session = sqlSessionFactory.openSession(); try { Person p = new Person(); // p.setPersonId(3); p.setName("架构师"); p.setGender(1); p.setPersonAddr("北京"); p.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1985-03-14")); session.insert("com.hao947.sql.mapper.PersonMapper.insert", p); //执行完库表变更必须要提交事务 session.commit(); } catch (ParseException e) { session.rollback(); e.printStackTrace(); } finally{ session.close(); } }
大站喜欢采集:那就都采集吧! 好947:出品
hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947,布布扣,bubuko.com
hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947
原文地址:http://blog.csdn.net/hao947_hao947/article/details/37591625