1.引入
我们呢,在之前的课程中和大家说了一下有关于Mybatis配置文件的一些配置内容信息。那么节下来呢我们呢主要和大家说一下MyBatis的映射文件。那么这一个MyBatis的映射文件有一个比较重要的地位。映射文件指导着MyBatis如何进行数据库增删改查, 有着非常重要的意义;所有的SQL语句都是在这一个映射文件中进行的。那么这一个模块是一个比较重要的模块,需要较为认真的学习。
2.映射文件增删查改实现
(1).在接口中定义实现该对象增删查改的方法:
public interface AdminMapper {
public Employee getAdmById(Integer id);
public Long addAdm(Employee employee);
public boolean updateAdm(Employee employee);
public void deleteAdmById(Integer id);
}
(2).在映射文件中编写相关的配置信息
<!--查询操作-->
<select id="getAdmById" resultType="com.cn.entity.Admin"
databaseId="mysql">
select username,password
from adminwhere id=#{id}
</select>
<!--添加操作-->
<insert id="addAdm" parameterType="com.cn.entity.Admin">
insert into admin(username,password)
values(#{username},#{password})
</insert>
<!--更新操作-->
<update id="updateAdm">
update admin
set username=#{username},password=#{password}
where id=#{id}
</update>
<!--删除操作-->
<delete id="deleteEmpById">
delete from admin where id=#{id}
</delete>
(3).编写相关的测试方法
/**
* 测试增删改
* 1、mybatis允许增删改直接定义以下类型返回值
* Integer、Long、Boolean、void
* 2、我们需要手动提交数据
* sqlSessionFactory.openSession();===》手动提交
* sqlSessionFactory.openSession(true);===》自动提交
* @throws IOException
*/
public void testCurd() throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//1、获取到的SqlSession不会自动提交数据
SqlSession openSession = sqlSessionFactory.openSession();
try{
AdminMapper mapper = openSession.getMapper(AdminMapper.class);
//测试添加
Admin adm = new Admin(1, "张三","123456");
mapper.addAdm(adm);
//测试修改
//Admin adm = new Admin(1, "张三","test123456");
//boolean updateAdm = mapper.updateAdm(adm);
//System.out.println(updateAdm);
//测试删除
//mapper.deleteAdmById(2);
//2、手动提交数据
openSession.commit();
}finally{
openSession.close();
}
}
3.获取insert数据的自动的主键值
<!-- parameterType:参数类型,可以省略,
获取自增主键的值:
mysql支持自增主键,自增主键值的获取,mybatis也是利用statement.getGenreatedKeys();
useGeneratedKeys="true";使用自增主键获取主键值策略
keyProperty;指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的
哪个属性
-->
<insert id="addAdm" parameterType="com.cn.entity.Admin" useGeneratedKeys="true"
keyProperty="id" databaseId="mysql">
insert into admin(username,password)
values(#{username},#{password})
</insert>
获取测试:
//测试添加
Admin adm = new Admin(1, "李四","ls123456");
mapper.addAdm(adm);
//直接获取需要的id
System.out.println(adm.getId());