Mybatis的Dao层使用代理开发模式
前言
一、namespace
与mapper的全限定名相同
<?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.itheima.dao.UserMapper" >
<!--查寻所有操作-->
<select id="findAll" resultType="com.itheima.domain.User" >
select * from user
</select>
二、mapper接口
public interface UserMapper {
public List<User> findAll() throws IOException;
}
三.核心配置文件引入mapping配置
代码如下(示例):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapping.xml" ></mapper>
</mappers>
</configuration>
测试
@Test
public void text6() throws IOException {
//加载映射文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapconfig.xml");
//创建会话工厂对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//建立会话对象
SqlSession sqlSession = sessionFactory.openSession();
//获得mapper代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//调用对应接口方法
List<User> userList = mapper.findAll();
//提交事务
sqlSession.commit();
//打印结果
System.out.printf(String.valueOf(userList));
//关闭会话对象
sqlSession.close();
}
总结
Mybatis的Dao层使用代理开发模式
mapper接口无具体实现,mybatis框架对mapper进行了实现