★学习目标:
1、了解@Select注解的基本使用方法
2、掌握@Select注解,能够熟练将该注解运用于映射查询语句中
★思考任务:
1、@Select注解和XML配置文件中的<select>元素的区别?
2、如何使用@Select注解,实现数据表的查询?
★任务学习
★知识要点:
@Select注解用于映射查询语句,其作用等同于XML配置文件中的<select>元素。
下面通过一个案例演示@Select注解的使用,该案例要求根据员工的id查找员工信息,案例具体实现步骤如下。
(1)创建数据表。
在mybatis数据库中创建名为tb_worker的数据表,同时预先插入几条测试数据。
CREATE TABLE tb_worker(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32), age INT, sex VARCHAR(8),
worker_id INT UNIQUE
);
INSERT INTO tb_worker(name,age,sex,worker_id)VALUES('张三',32,'女',1001);
...
(2)创建持久化类Worker。
在项目的com.itheima.pojo包下创建持久化类Worker,在Worker类中定义id、员工姓名、年龄、性别、工号等属性以及属性对应的getter/setter方法。
public class Worker {
private Integer id; private String name; private Integer age;
private String sex;
private String worker_id;
// 省略getter/setter方法
@Override
public String toString() {
return "Worker{" + "id=" + id + ", name=" + name +
", age=" + age + ", sex=" + sex + ", worker_id=" + worker_id + '}';
}}
(3)创建WorkerMapper接口。
在项目的src/main/java目录下创建com.itheima.dao包,并在com.itheima.dao包下创建WorkerMapper接口,用于编写@Select注解映射的select查询方法。
package com.itheima.dao;
import com.itheima.pojo.Worker;
import org.apache.ibatis.annotations.Select;
public interface WorkerMapper {
@Select("select * from tb_worker where id = #{id}")
Worker selectWorker(int id);
}
(4)编写配置文件。
在核心配置文件mybatis-config.xml中的<mappers>元素下引入WorkerMapper接口,将WorkerMapper.java接口加载到核心配置文件中。
<mapper class="com.itheima.dao.WorkerMapper"/>
(5)编写测试类。
为了验证上述配置,可以在测试类MyBatisTest中,编写测试方法findWorkerByIdTest()。
public void findWorkerByIdTest() {
// 1.获取SqlSession对象
SqlSession session = MyBatisUtils.getSession();
WorkerMapper mapper = session.getMapper(WorkerMapper.class);
// 2.查询id为1的员工信息
Worker worker = mapper.selectWorker(1);
System.out.println(worker.toString());
// 3.关闭SqlSession
session.close();
}

