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