1、映射配置文件介绍
- 映射配置文件包含了数据和对象之间的映射关系以及要执行的 SQL 语句
<?xml version="1.0" encoding="UTF-8" ?> <!--MyBatis的DTD约束--> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- mapper:核心根标签 namespace属性:名称空间 --> <mapper namespace="StudentMapper"> <!-- select:查询功能的标签 id属性:唯一标识 resultType属性:指定结果映射对象类型 parameterType属性:指定参数映射对象类型 --> 查询功能的标签 <select id="selectAll" resultType="student"> SELECT * FROM student </select> <select id="selectById" resultType="com.bean.student" parameterType="int"> SELECT * FROM student WHERE id = #{id} </select> 插入功能的标签 <insert id="insert" parameterType="student"> INSERT INTO student VALUES (#{id},#{name},#{age}) </insert> 修改功能的标签 <update id="update" parameterType="student"> UPDATE student SET name = #{name},age = #{age} WHERE id = #{id} </update> 删除功能的标签 <delete id="delete" parameterType="int"> DELETE FROM student WHERE id = #{id} </delete> </mapper>
2、查询功能
-
<select>:查询功能标签。
-
属性
id:唯一标识, 配合名称空间使用。
parameterType:指定参数映射的对象类型。
resultType:指定结果映射的对象类型。
-
SQL 获取参数: #{属性名}
- 示例
3、新增功能
-
<insert>:新增功能标签。
-
属性
id:唯一标识, 配合名称空间使用。
parameterType:指定参数映射的对象类型。
resultType:指定结果映射的对象类型。
-
SQL 获取参数: #{属性名}
- 示例
4、修改功能
-
<update>:修改功能标签。
-
属性
id:唯一标识, 配合名称空间使用。
parameterType:指定参数映射的对象类型。
resultType:指定结果映射的对象类型。
-
SQL 获取参数: #{属性名}
- 示例:
5、删除功能
-
<delete>:查询功能标签。
-
属性
id:唯一标识, 配合名称空间使用。
parameterType:指定参数映射的对象类型。
resultType:指定结果映射的对象类型。
-
SQL 获取参数: #{属性名}
- 示例
-
总结: 大家可以发现crud操作,除了标签名称以及sql语句不一样之外,其他属性参数基本一致。
6、测试代码页面
public class StudentTest01 {
/*
删除功能
*/
@Test
public void delete() throws IOException {
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession();
int result = sqlSession.delete("StudentMapper.delete", 8);
sqlSession.commit();
System.out.println(result);
sqlSession.close();
is.close();
}
/*
修改功能
*/
@Test
public void update() throws IOException {
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
Student stu = new Student(8, "Jack", 21);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
int result = sqlSession.update("StudentMapper.update", stu);
sqlSession.close();
is.close();
}
/*
新增功能
*/
@Test
public void insert() throws IOException {
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession();
// 为了方便演示,我就直接在这里创建Student对象为其赋值
Student stu = new Student(8, "TOM", 34);
int result = sqlSession.insert("StudentMapper.insert", stu);
// 提交事务
sqlSession.commit();
System.out.println(result);
sqlSession.close();
is.close();
}
/*
根据Sid查询
*/
@Test
public void selectById() throws IOException {
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession();
Student stu = sqlSession.selectOne("StudentMapper.selectById", 4);
System.out.println(stu);
sqlSession.close();
is.close();
}
/*
查询全部
*/
@Test
public void selectAll() throws Exception {
// 加载核心配置文件
InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml");
// 获取SqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
// 通过SqlSession工厂对象获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 执行映射配置文件中的sql语句,并接收结果
List<Student> list = sqlSession.selectList("StudentMapper.selectAll");
// 处理结果
for (Student stu : list) {
System.out.println(stu);
}
// 释放资源
sqlSession.close();
is.close();
}
}