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

it2025-09-16  13

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

转载于:https://www.cnblogs.com/bhlsheji/p/4291287.html

相关资源:数据结构—成绩单生成器
最新回复(0)