mybatis的动态代理
2018-02-07 22:51
113 查看
如果使用的方式开发DAO,但是这样存在以下问题:原始DAO存在的问题-Dao方法体存在重复代码:每个方法都要通过SqlSessionFactory创建SqlSession: SqlSession session = sqlSessionFactory.openSession(); - 通过session调用数据库操作方法时需要指定id,这里存在硬编码,不得于后期的开发维护: session.insert(“com.mybatis.mapping.userMapper.insertUser”, user);
Mapper动态代理方式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的类型相同根据以上规范: 一、首先将所需jar包复制新建的lib文件夹下,全选之后buildpath
二、新建一个Source Folder 用于存放配置文件,这样使工程显得更加简洁明了
三、在src下创建根包一般是三层,采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
四、将所需配置文件复制到config下:其中db.properties为数据库连接相关的参数的配置文件log4j.properties为日志相关的配置文件、SqlMapConfig.xml为mybatis的核心配置文件
五、修改数据的链接数据
在mysql创建数据库的时候指定字符集,防止乱码
六、将数据导入数据库,生成两张表
七、SqlMapConfig.xml配置文件的修改1、导入数据库相关链接的参数
2、配置pojo别名
3、数据库链接的配置
4、加载mapper配置文件
八、添加一个测试包:
最后呈现的工程目录如下:
UserMapper.xml中
SqlMapConfig.xml中
UserMapper.java中
测试:
测试结果如下:根据id查询:
根据用户名模糊查询:
增加用户:
更新用户:
数据库查看
------>
删除用户:
数据库查看:
------>
Mapper动态代理方式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的类型相同根据以上规范: 一、首先将所需jar包复制新建的lib文件夹下,全选之后buildpath
二、新建一个Source Folder 用于存放配置文件,这样使工程显得更加简洁明了
三、在src下创建根包一般是三层,采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
四、将所需配置文件复制到config下:其中db.properties为数据库连接相关的参数的配置文件log4j.properties为日志相关的配置文件、SqlMapConfig.xml为mybatis的核心配置文件
五、修改数据的链接数据
在mysql创建数据库的时候指定字符集,防止乱码
六、将数据导入数据库,生成两张表
七、SqlMapConfig.xml配置文件的修改1、导入数据库相关链接的参数
2、配置pojo别名
3、数据库链接的配置
4、加载mapper配置文件
八、添加一个测试包:
最后呈现的工程目录如下:
UserMapper.xml中
SqlMapConfig.xml中
UserMapper.java中
测试:
测试结果如下:根据id查询:
根据用户名模糊查询:
增加用户:
更新用户:
数据库查看
------>
删除用户:
数据库查看:
------>
相关文章推荐
- Mybatis实现Mapper动态代理方式
- 关于Mybatis的Dao动态代理多种传参方式
- 由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
- mybatis3整合spring4-采用mapper动态代理的方式开发Dao
- Java EE开发平台随手记5——Mybatis动态代理接口方式的原生用法
- mybatis中接口没有实现类的动态代理探究
- Mybatis3源码分析(21)-Mapper实现-动态代理
- Mybatis之Mapper动态代理方式
- MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)
- mybatis动态代理剖析
- Mybatis中Mapper动态代理的实现原理
- MyBatis源码解析(二)——动态代理实现函数调用
- Mybatis之Mapper动态代理
- 由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
- JDK动态代理、责任链在mybatis中的应用
- mybatis plugin 和动态代理
- MyBatis笔记——Mapper动态代理
- 由浅入深分析mybatis通过动态代理实现拦截器(插件)的原理
- SpringBoot+Mybatis中使用动态代理方式动态切换datasource
- Mybatis Mapper动态代理方法 即 只写Dao接口 不谢Dao的实现类