package db.Domain;
import org.springframework.stereotype.Component;
import java.sql.Date;
@Component(value = "employee")
public class Employee {
private String emplId;
private String name;
private String gender;
private Date hireDate;
private int salary;
public String getEmplId() {
return emplId;
}
public void setEmplId(String emplId) {
this.emplId = emplId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getHireDate() {
return hireDate;
}
public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee{" +
"emplId='" + emplId + '\'' +
", name='" + name + '\'' +
", gender=" + gender +
", hireDate=" + hireDate +
", salary=" + salary +
'}';
}
}
3.2、数据接口类
根据业务需求定义所需要的相关数据操作方法
package db.Dao;
import db.Domain.Employee;
import org.apache.ibatis.annotations.Param;
import java.util.List;
//数据访问接口
public interface EmployeeDao {
//查询单个对象,单个参数时@Param可以省略
public Employee queryByEmplId(@Param("emplId") String empId);
//查询多个对象,多个参数时需要通过@Param声明
public List queryListBySalary(@Param("start") int start,@Param("end") int end);
//新增数据
public int insert(Employee emp);
//更新数据
public int update(Employee emp);
//删除数据
public void delete(@Param("emplId") String empId);
}
3.3、Mapper文件
文件保存在main/Resources/db/Mapper/目录内
右击:Resource选择创建目录,输入“db/Mapper”即可。
根据接口类内部的方法定义Mapper内的相关操作映射
<?xml version="1.0" encoding="UTF-8" ?>
namespace="db.Dao.EmployeeDao">
insert into employee(emplId,`name`,gender,hireDate,salary) values(#{emplId},#{name},#{gender},#{hireDate},#{salary})
update employee set `name`=#{name},gender=#{gender},salary=#{salary} where emplId=#{emplId}
delete from employee where emplId=#{emplId}
3.4、主配置文件引用Mapper文件
通过resource属性指向表的Mapper文件
见2内红色标注代码:
3.5、测试代码
import db.Dao.EmployeeDao;
import db.Domain.Employee;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Date;
import java.util.List;
public class myTest {
@Test
public void TestMyBaisc() throws IOException {
//1 读取配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//2 构建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//3 构建SqlSession,并执行mapper内操作
try (SqlSession session = sqlSessionFactory.openSession()) {
//获取接口代理实现
EmployeeDao dao = session.getMapper(EmployeeDao.class);
//单数据查询
{
System.out.println("==单数据查询");
Employee empl = dao.queryByEmplId("001");
System.out.println(empl.toString());
}
//数据删除
{
dao.delete("004");
session.commit();
}
//数据新增
{
System.out.println("==数据新增");
Employee empl = new Employee();
empl.setEmplId("004");
empl.setName("李晓明");
empl.setGender("男");
empl.setHireDate(new Date(2020,10,10));
empl.setSalary(2000);
int result = dao.insert(empl);
session.commit();
System.out.println("行数:"+result);
}
//多数据查询
{
System.out.println("==多数据查询 - 新增后");
List list = dao.queryListBySalary(20,5000);
for (Employee item : list) {
System.out.println(item.toString());
}
}
//数据修改
{
System.out.println("==数据修改");
Employee empl = new Employee();
empl.setEmplId("003");
empl.setName("刘超");
empl.setGender("男");
empl.setHireDate(new Date(2020,10,10));
empl.setSalary(2000);
int result = dao.update(empl);
session.commit();
System.out.println("行数:"+result);
}
//多数据查询
{
System.out.println("==多数据查询 - 修改后");
List list = dao.queryListBySalary(20,5000);
for (Employee item : list) {
System.out.println(item.toString());
}
}
}
System.out.println("测试完成1");
}
}