hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947

来源:互联网 发布:json在线 编辑:程序博客网 时间:2024/04/29 10:03

映射配置文件  好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>


映射管理库表文件  hao947

<!-- 集中管理库表的映射文件 --> <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:出品

0 0
原创粉丝点击