MyBatis CRUD
按照MyBatis搭建过程进行项目搭建,
并在mybatis-config.xml中将按如下方式引入映射文件:
<!-- 引入映射文件 -->
<mappers>
<!-- <mapper resource="EmpMapper.xml" />
<mapper resource="DeptMapper.xml"></mapper> -->
<!-- 此种写法要求mapper接口和mapper映射文件在同一个包下 -->
<package name="com.atguigu.mapper"/>
</mappers>
CRUD 案例
1.项目目录
2.Emp.java
package com.atguigu.bean;
public class Emp {
private Integer eid;
private String ename;
private Integer age;
private String sex;
public Integer getEid() {
return eid;
}
public void setEid(Integer eid) {
this.eid = eid;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Emp [eid=" + eid + ", ename=" + ename + ", age=" + age + ", sex=" + sex + "]";
}
public Emp(Integer eid, String ename, Integer age, String sex) {
super();
this.eid = eid;
this.ename = ename;
this.age = age;
this.sex = sex;
}
public Emp() {
super();
// TODO Auto-generated constructor stub
}
}
3.EmpMapper.java
package com.atguigu.mapper;
import java.util.List;
import com.atguigu.bean.Emp;
public interface EmpMapper {
//根据eid查询员工信息
Emp getEmpByEid(String eid);
//获取所有的员工信息
List<Emp> getAllEmp();
//添加员工信息
void addEmp(Emp emp);
//修改员工信息
void updateEmp(Emp emp);
//删除员工信息
Integer deleteEmp(String id);
}
4.EmpMapper.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.atguigu.mapper.EmpMapper">
<!-- Emp getEmpByEid(String eid); -->
<select id="getEmpByEid" resultType="Emp">
select eid,ename,age,sex from emp where eid=#{eid}
</select>
<!-- List<Emp> getAllEmp(); -->
<select id="getAllEmp" resultType="Emp">
select eid,ename,age,sex from emp
</select>
<!-- void addEmp(Emp emp); -->
<insert id="addEmp">
insert into emp values(null, #{ename}, #{age}, #{sex})
</insert>
<!-- void updateEmp(Emp emp); -->
<update id="updateEmp" parameterType="Emp">
update emp set ename=#{ename},age=#{age},sex=#{sex} where eid=#{eid}
</update>
<!-- void deleteEmp(String id); -->
<delete id="deleteEmp">
delete from emp where eid=#{eid}
</delete>
</mapper>
5.TestCRUD.java
package com.atguigu.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 com.atguigu.bean.Emp;
import com.atguigu.mapper.EmpMapper;
public class TestCRUD {
@Test
public void testCRUD() throws IOException{
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
// SqlSession sqlSession = sqlSessionFactory.openSession();//需要手动处理事务
SqlSession sqlSession = sqlSessionFactory.openSession(true);//自动处理事务
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
//测试:根据eid获取员工信息
// Emp emp = empMapper.getEmpByEid("3");
// System.out.println(emp);
//测试:获取所有的员工信息
// List<Emp> list = empMapper.getAllEmp();
// System.out.println(list);
//测试:添加员工信息
// empMapper.addEmp(new Emp(null,"admin",23,"女"));
// sqlSession.commit();//提交事务
//测试:修改员工信息
empMapper.updateEmp(new Emp(2, "张二", 33, "女"));
//测试:删除员工信息
// Integer rowNum = empMapper.deleteEmp("5");
// System.out.println(rowNum);//返回值类型为Integer:返回受影响的行数 Boolean:·
}
}