【MyBatis系列】基础篇——ResultMap自定义映射
————————CURD语法————————
接口类
package com.mybatislearn.mapper;
import com.mybatislearn.entity.Employee;
public interface EmployeeMapper {
/**
* 根据id查询员工信息
* @param id
* @return
*/
public Employee getEmployeeById(int id);
/**
* 增加员工信息
* @param employee
* @return
*/
public Integer insertEmployee(Employee employee);
/**
* 修改员工信息
* @param employee
* @return
*/
public boolean updateEmployee(Employee employee);
/**
* 删除员工信息
* @param id
* @return
*/
public void deleteEmployee(Integer id);
}
实现类
package com.mybatislearn.test;
import com.mybatislearn.entity.Employee;
import com.mybatislearn.mapper.EmployeeMapper;
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.InputStream;
/**
* @program: mybatis01
* @description:mybatislearn
* @author: mybatis
* @create: 2021-08-11 17:07
**/
public class TestMyBatis {
@Test
public void test() throws Exception{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession(true);
try {
//Mapper接口:获取Mapper接口的 代理实现类对象
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
//1: 查询操作调用实际方法实现操作
Employee employee = mapper.getEmployeeById(1);
System.out.println(employee);
//2: 添加操作
Employee employee = new Employee();
employee.setLastname("tom");
employee.setEmail("tom@qq.com");
employee.setGender("1");
Integer rows = mapper.insertEmployee(employee);
System.out.println(rows);
//3:修改操作
Employee employee = new Employee();
employee.setLastname("tomm");
employee.setEmail("tom@163.com");
employee.setGender("1");
employee.setId(9);
boolean isupdate = mapper.updateEmployee(employee);
System.out.println(isupdate);
//4:删除操作
Employee employee = new Employee();
mapper.deleteEmployee(9);
} finally {
session.close();
}
}
}
mapper.xml 文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatislearn.mapper.EmployeeMapper">
<!--查询-->
<select id="getEmployeeById" resultType="com.mybatislearn.entity.Employee">
select * from tbl_employee where id = #{id}
</select>
<!--增加:useGeneratedKeys和keyProperty属性是设置自增长和自增长的字段的-->
<insert id="insertEmployee" parameterType="com.mybatislearn.entity.Employee" useGeneratedKeys="true" keyProperty="id>
INSERT INTO tbl_employee(lastname,email,gender) VALUES(#{lastname},#{email},#{gender})
</insert>
<!--修改-->
<update id="updateEmployee" parameterType="com.mybatislearn.entity.Employee">
UPDATE tbl_employee SET lastname=#{lastname},email=#{email},gender=#{gender} WHERE id=#{id}
</update>
<!--删除-->
<!--删除方法的返回值是基本类型,所以parameterType可以忽略不写-->
<delete id="deleteEmployee" parameterType="java.lang.Integer">
delete from tbl_employee where id=#{id}
</delete>
</mapper>