MyBatis Day02(2021-09-26)

封装持久层

一.原始dao方法

1.创建config代码文件夹
  • 写入全局配置文件(SqlMapConfig.xml)
  • 日志文件(log4j.properties)
  • 映射文件(DeptMapper.xml)

MyBatis Day02(2021-09-26)

2.准备javabean文件

MyBatis Day02(2021-09-26)

3.编写dao层接口

MyBatis Day02(2021-09-26)

public interface DeptDao {
	
	//通过deptno查找dept部门信息
	Dept findDeptById(int deptno) throws IOException;
	
	//插入一条部门记录
	void insertDept(Dept dept) throws IOException;

}
4.编写dao层实现类

MyBatis Day02(2021-09-26)

public class DeptDaoImpl implements DeptDao {

	// 注入sqlSessionFactory
	private SqlSessionFactory sqlSessionFactory;

	public DeptDaoImpl(SqlSessionFactory sqlSessionFactory) {
		this.sqlSessionFactory = sqlSessionFactory;
	}

	@Override
	public Dept findDeptById(int deptno) throws IOException {

		// 通过工厂创建sqlSession
		SqlSession sqlSession = sqlSessionFactory.openSession();
		// 通过sqlSession操作数据库
		Dept dept = sqlSession.selectOne("test.findDeptByid", 10);
		System.out.println(dept);
		// 释放资源
		sqlSession.close();
		
		return dept;
	}

	@Override
	public void insertDept(Dept dept) throws IOException {
		// 通过工厂创建sqlSession
		SqlSession sqlSession = sqlSessionFactory.openSession();
		// 通过sqlSession操作数据库
		sqlSession.insert("test.insertDept", dept);
		// 提交事务,修改表数据时需要提交事务
		sqlSession.commit();
		// 关闭资源
		sqlSession.close();
	}

}
5.编写测试类
public class Test01 {
	
	private SqlSessionFactory sqlSessionFactory;
	
	@Before//junit注解,使该方法在test方法前执行
	public void setup() throws IOException {
		// 定义mybaties的配置文件路径
		String resource = "SqlMapConfig.xml";
		// 得到配置文件流
		InputStream inputStream = Resources.getResourceAsStream(resource);
		// 创建会话工厂,传入mybaties的配置文件流
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	}
	
	@Test
	public void selectTest() throws IOException {
		// 创建dao对象
		DeptDaoImpl dao = new DeptDaoImpl(sqlSessionFactory);
		dao.findDeptById(10);
	}
	
	@Test
	public void insertTest() throws IOException {
		// 创建dao对象
		DeptDaoImpl dao = new DeptDaoImpl(sqlSessionFactory);
		
		Dept dept = new Dept();
		dept.setDname("后勤保障");
		dept.setLoc("大连");
		dao.insertDept(dept);
	}
	
}

MyBatis Day02(2021-09-26)

二.mapper代理方式

1.创建xxxMapper.java接口

MyBatis Day02(2021-09-26)

public interface DeptMapper {	
	//根据id查询部门信息
	Dept findDeptById(int deptno);
	//插入部门信息
	void insertDept(Dept dept);	
}
2.创建xxxMapper.xml映射文件

MyBatis Day02(2021-09-26)

<!-- namespace值为xxxMapper接口全路径 -->
<mapper namespace="com.neuedu.mapper.DeptMapper">
	<!-- id值为xxxMapper接口中的方法名须一致 -->
	<select id="findDeptById" parameterType="int" resultType="com.neudeu.pojo.Dept">
		select * from dept where deptno = #{deptno}
	</select>
</mapper>
上一篇:MyBatis-生命周期


下一篇:mybatis的配置步骤