MyBatis的Dao层实现方式
MyBatis的Dao层实现方式
MyBatis的Dao层实现
1.1 传统开发方式
1. 编写UserDao接口
public interface UserDao {
List<User> findAll() throws IOException;
}
1.1 传统开发方式
2. 编写UserDaoImpl实现
public class UserDaoImpl implements UserDao{
public List<User> findAll() throws IOException{
InputStreamresourceAsStream= Resources. getResourceAsStream ( "SqlMapConfig.xml" );
SqlSessionFactorysqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSessionsqlSession= sqlSessionFactory.openSe ssion();
List<User> userList= sqlSession.selectList( "userMapper.findAll" );
sqlSession.close();
return userList;
}
}
1.1 传统开发方式
3. 测试传统方式
@Test
public void testTraditionDao() throws IOException{
UserDaouserDao= new UserDaoImpl();
List<User> all = userDao.findAll();
System. out .println(all);
}
1.2 代理开发方式
1. 代理开发方式介绍
采用Mybatis的代理开发方式实现DAO 层的开发,这种方式是我们后面进入企业的主流。
Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis框架根据接口定义创建接
口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。
Mapper 接口开发需要遵循以下规范:
1 、Mapper.xml文件中的namespace与mapper接口的全限定名相同
2 、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
3 、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
4 、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
1.2 代理开发方式
2. 编写UserMapper接口
public interface UserDao {
User findById( int id);
}
< mapper namespace="com.itheima.mapper.UserMapper" >
< select id="findById" parameterType="int" resultType="user" >
select * from User where id=#{id}
</ select >
</ mapper >
1.2 代理开发方式
3. 测试代理方式
@Test
public void testProxyDao() throws IOException{
InputStreamresourceAsStream= Resources. getResourceAsStream ( "SqlMapConfig.xml" );
SqlSessionFactorysqlSessionFactory= new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSessionsqlSession= sqlSessionFactory.openSession();
// 获得 MyBatis 框架生成的 UserMapper 接口的实现类
UserMapperuserMapper= sqlSession.getMapper(UserMapper. class );
User user= userMapper.findById( 1 );
System. out .println(user);
sqlSession.close();
}
1.3 知识小结
MyBatis的Dao层实现的两种方式:
手动对Dao进行实现:传统开发方式
代理方式对Dao进行实现:
UserMapper userMapper = sqlSession.getMapper(UserMapper. class );
MyBatis的Dao层实现方式相关推荐
- MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- Spring整合Mybatis之DAO层、Service层开发
3. Spring整合Mybatis编程DAO层开发 1. 项目引入相关依赖spring mybatis mysql mybatis-spring druid2. 编写spring.xml整合:spr ...
- Mybatis的Dao层实现
Mybatis的Dao层实现 1.传统方式实现 创建接口com.dao.UserMapper package com.dao;import com.domain.User;import java.io ...
- 详解MyBatis的Dao层实现和配置文件深入
这篇文章主要为大家详细介绍了MyBatis的Dao层实现和配置文件深入,文中的示例代码讲解详细,感兴趣的小伙伴快来跟随小编一起学习一下 目录 [Mybatis的Dao层实现] [传统开发方式] [代理 ...
- MyBatis之Dao层实现
文章目录 1.传统开发方式 2.代理开发方式 我们在了解 MyBatis 的映射文件和配置文件时,所举例的实例都是通过单元测试的方式实现.但在实际开发中,我们需要将 MyBatis 的实现写到 Dao ...
- IDEA项目搭建四——使用Mybatis实现Dao层
一.引入mybatis及mysql的jar包 可以从阿里云上面查找版本,db操作放在dao层所以打开该层的pom.xml文件,找到<dependencies>节点增加两个引入 <de ...
- Mybatis 原始Dao层开发
对Mybatis进行原始Dao层开发的举例子: 定义获取session工具类: package com.langsin.unit;import java.io.InputStream;import o ...
- SpringBoot+MyBatis项目Dao层最简单写法
前言 DAO(Data Access Object) 是数据访问层,说白了就是跟数据库打交道的,而数据库都有哪几种操作呢?没错,就是增删改查.这就意味着Dao层要提供增删改查操作. 不知道大家是怎么写 ...
- Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的...
参考mybatis入门基础(二)----原始dao的开发和mapper代理开发 其实也就是通过接口名与mapper的id绑定在一起,通过SQL去写实现类,返回数据. 转载于:https://www.c ...
最新文章
- R语言可视化分面图、多变量分组多水平t检验、可视化多变量分组多水平分面条形图(faceting bar plot)并添加显著性水平、在标签和绘图上边框之间添加15%的空格、添加抖动数据点
- 信号与系统2021春季课程小论文批改
- opencv获取摄像头帧率分辨率
- 二维数组的查找 java_二维数组中的查找
- BSP(BUSINESS SERVER PAGES)完整主机名设置及实现
- JZOJ 5662. 【GDOI2018Day1模拟4.17】尺树寸泓
- Linux下静态库的创立与使用
- Ubuntu 14.04 16.04 安装最新的 docker
- asp.net 移除Server, X-Powered-By, 和X-AspNet-Version头
- 【NOIP2017Day1T3】【洛谷P3953】逛公园
- Origin 2017去除水印的方法
- ASP.NET20003人事薪资管理系统
- Apache域名跳转----配置rewrite模块
- OpenGL Frame Buffer Object (FBO)
- 跨考计算机日程记录01
- Dreamweaver CS 5 快捷键大全
- 移远EC200 EC20 EC600 EC800连接MQTT服务器
- Android Studio模拟器的创建和SDK的安装
- 不可或缺的ASP.NET内置对象
- Linux FFmpeg依赖库编译