MyBatis mapper代理方式
3. mapper代理方式(程序员只需mapper接口(相当于Dao的接口))
3.1 思路:1.程序员只需要写mapper接口(相当于Dao接口),mybatis可以自动生成mapper接口实现类的代理对象
2.程序员需要编写mapper.xml映射文件
3.开发规范:1.在mapper.xml中namespace等于mapper接口的地址
<!-- namespace命名空间 ,作用对sql进行分类化管理,理解sql隔离,namespace等于mapper接口地址
注意:使用mapper代理的方法进行开发,namespace具有特殊的意义
-->
<mapper namespace="top.haoyeyin.mapper.StudentMapper">
2.mapper接口中方法名和mapper.xml中的statement中的id一致
3.mapper.java接口中的输入参数类型和mapper.xml中statement的parameterType的指定 类型一致
4.mapper.java接口中方法的返回类型和mapper.xml中resultType指定的类型一致
public Student findStudentById(int id) throws Exception;
总结:1.mapper.java public interface StudentMapper {
//根据ID查询学生信息
public Student findStudentById(int id) throws Exception;
2.mapper.xml <mapper namespace="top.haoyeyin.mapper.StudentMapper">
<!-- 映射文件中配置多种sql语句 -->
<!-- 通过select语句查询,id用于标识映射文件中的sql,所以id为statement的ID
将来sql语句封装到mapperstatement对象中
paramterType:指定输入参数类型,这里ID指定int型
#{}:占位符
#{id}:id表示输入的参数,id是参数名称,如果输入是简单类型#{}中的参数名可以任意,可以是
value或其名称
resultType:指定sql输出结果对应映射java对象,select指定的 resulType表示单条记录
所映射的Java对象
-->
<select id="findStudentById" parameterType="int" resultType="top.haoyeyin.pojo.Student">
select * from student where id=#{id}
</select>
3.测试方法
package top.haoyeyin.mapper;
import java.io.InputStream;
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.apache.log4j.BasicConfigurator;
import org.junit.Before;
import org.junit.Test;
public class StudentMapperTest {
private SqlSessionFactory sqlSessionFactory;
@Before
public void setup() throws Exception{
BasicConfigurator.configure();
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂sessionFactory,传入SqlMapConfig.xml配置信息
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
}
@Test
public void testFindStudentById() {
SqlSession sqlSession=sqlSessionFactory.openSession();
//创建StudentMapper对象
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
//调用studentMapper的方法
try {
studentMapper.findStudentById(4);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
MyBatis mapper代理方式相关推荐
- Mybatis mapper代理SqlMapConfig.xml配置详解
SqlMapConfig.xml是mybatis的全局配置文件: 1.mapper映射配置 >配置mapper的另外一种方式: <mappers> <mapper resour ...
- mybatis--开发Dao--原始dao方式和Mapper代理方式
Mybatis开发dao Mybatis在项目中主要使用的地方就是开发dao(数据访问层), 有两种方式:原始dao开发方式.mapper代理开发方式(推荐). 需求: 1. 根据用户ID来查询用户信 ...
- MyBatis中Mapper代理方式
Mapper 的动态代理作用 目前使用sqlsession进行增删改查的缺点: [1]没有办法实现多参数的传递 [2]书写的时候没有接口,后期的维护就比较的低 解决的方案: Mapper的代理方式实现 ...
- Mybatis mapper代理Dao开发
mapper代理的方式,将原始Dao开发中,Dao层接口的实现类中重复的代码提取出来,进一步封装. 使用mybatis实现mapper接口的代理,同样需要编写mapper.xml配置文件. 而且map ...
- mybatis教程--原始方式和mapper方式开发dao详解
mybatis开发dao的两种方式 一.原始的dao开发方式 所谓的原始的dao的开发方式,其实就是和hibernate的开发方式类似的,需要dao的接口和dao的实现类,这个就是原始的开发方式,而m ...
- SSM21:Mapper代理开发
目录 创建数据库 连接数据库 导入坐标pom.xml 编写mybatis.xml配置文件 编写日志配置文件 编写sql映射文件UserMapper.xml 创建UserMapper接口 创建pojo类 ...
- 初识 My Batis一 什么是My Batis,JDBC缺点,My Batis简化,Mapper 代理开发,My Batis 核心配置文件
文章目录 MyBatis 什么是MyBatis? 持久层 框架 JDBC缺点 Mybatis简化 MyBatis快速入门 查询 user 表中所有数据 解决 SQL 映射文件的警告提示 Mapper代 ...
- 【Java】Mybatis mapper动态代理方式
前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...
- Mybatis中Mapper动态代理方式
文章目录 开发规范 Mapper接口开发需要遵循以下规范 Mapper.xml(映射文件) UserMapper(接口文件) 加载UserMapper.xml文件 总结 selectOne和selec ...
最新文章
- 柳进军 | 城市大脑的逻辑模型
- 结合jenkins以及PTP平台的性能回归测试
- 参数处理:#{}与${}取值的区别
- LeetCode419罗马数字转整数python
- 译 | 在 Azure SQL 上节约成本的八种方法
- python 图像处理_Python中的十大图像处理工具
- ​全网首发,TensorFlow 2.0 中文视频教程来啦
- 毛谦解读“Pb/s级光传输”:技术的恩惠远不止于此
- Python爬虫之(四)urllib库的高级用法
- 面试题系列(三)-socket
- Anaconda离线安装pkgs
- 【转】VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(上)
- Oracle简单操作总结
- linux数据库备份到windows
- 物联网中常用的方法,16进制二进制之间的转换
- U8导入根据Excel导入BOM
- java滚动条_java swing:文本框添加滚动条
- Echarts环形图使用和设置(内外大小、颜色、指示线、圆圈中心字展示)
- div 位于屏幕正中间_div定位在屏幕中间
- js实现禁止网页缩放(Ctrl+鼠标、+、-缩放有效亲测)
热门文章
- webstorm 设置jsp支持
- 神马是敏捷?(4)——敏捷不能当饭吃
- Delphi匿名方法(三):扩展本地变量的生命周期
- mojoportal学习——文章翻译之多行横排菜单
- [翻译] 构建完美的WPF开发工作站
- java扫描包内所有类_第20天|Java入门有野,修饰符
- mysql例题_mysql练习题1
- python好多模块和c相识_快速实现python c扩展模块
- 理科大学二本计算机系,大学最好就业的二本专业:高校男生女生二本理科比较好的专业...
- mongodb php 安装配置,MongoDB 基本安装配置