Mybatis DAO开发--Mapper动态代理开发方式
Mybatis DAO开发–Mapper动态代理开发方式
第一步:jar包
创建lib目录,引入相应的jar包,本节课用到的案例引入的jar包就是spring整合mybatis要用到的全部jar包。
第二步:配置文件
第一个:是SqlMapConfig.xml配置文件。它是mybatis的入口,也就是核心配置文件。
第二个:映射配置文件。
第三个:数据库配置文件。
第四个:log4j日志配置文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 配置属性 先加载内部属性,再加载外部属性,如果有同名属性会覆盖。--><properties resource="db.properties"><property name="jdbc.driver" value="com.mysql.jdbc.Driver"/><property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"/><property name="jdbc.username" value="hello"/></properties><!-- 配置pojo别名 --><typeAliases><!-- <typeAlias type="cn.nwtxxb.mybatis.po.User" alias="user"/> --><!-- 扫描包的形式创建别名,别名就是类名,不区分大小写 --><package name="com.nwtxxb.po"/></typeAliases><!-- 和spring整合后 environments配置将废除--><environments default="development"><environment id="development"><!-- 使用jdbc事务管理--><transactionManager type="JDBC" /><!-- 数据库连接池--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><!-- 加载mapper文件 --><mappers><!-- resource基于classpath查找 --><!--<mapper resource="sqlmap/user.xml"/>--><!-- <mapper resource="mapper/mapper.xml"/> --><!-- 根据接口名称加载mapper文件要求:1、mapper映射文件和接口在同一个目录下2、mapper映射文件的名称和接口名称一致。3、class就是接口的权限定名--><!-- <mapper class="cn.nwtxxb.mybatis.mapper.UserMapper"/> --><!-- 使用扫描包的形式加载mapper文件 --><package name="com.nwtxxb.mapper"/></mappers>
</configuration>
第三步:编写PO类及数据库建库建表
public class User {private int id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址public int getId() {return id;}
}
第四步:进行Mapper接口开发
public interface UserMapper {User getUserById(int id);List<User> getUserByName(String username);void insertUser(User user);
}
第五步:编写Mapper映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace是命名空间,作用sql语句的隔离,后面还有重要作用
#{}作用就是占位符,相当于jdbc的“?”
parameterType:查询的参数类型
resultType:查询结果的数据类型,如果是pojo应该给全路径。
-->
<!-- mapper代理的开发规则:1、namespace必须是接口的全限定名com.nwtxxb.mapper.UserMapper2、Statementid必须和接口的方法名称一致getUserById3、接口方法的参数类型要和parameterType要一致4、接口方法的返回值类型要和resultType一致-->
<mapper namespace="com.nwtxxb.mapper.UserMapper"><!-- 别名不区分大小写 --><select id="getUserById" parameterType="int" resultType="USer">SELECT * FROM `user` WHERE id=#{id};</select><!-- 如果查询结果返回list, resultType设置为list中一个元素的数据类型${}字符串拼接指令--><select id="getUserByName" parameterType="string" resultType="com.nwtxxb.po.User">SELECT * FROM `user` WHERE username LIKE '%${value}%'</select><!-- 参数时候pojo时,#{}中的名称就是pojo的属性 --><insert id="insertUser" parameterType="com.nwtxxb.po.User"><!-- keyProperty:对于pojo的主键属性 resultType:对应主键的数据类型order:是在insert语句执行之前或者之后。如果使用uuid做主键,应该先生成主键然后插入数据,此时应该使用Before--><selectKey keyProperty="id" resultType="int" order="AFTER">SELECT LAST_INSERT_ID()</selectKey>INSERT into user (username,birthday,sex,address)values (#{username}, #{birthday}, #{sex}, #{address})</insert>
</mapper>
Mybatis DAO开发--Mapper动态代理开发方式相关推荐
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
1.原始Dao开发方式 原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 1.映射文件:(user.xml) <?xml version="1.0" encodin ...
- MyBatis DAO层开发——Mapper动态代理方式
SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...
- 【Java】Mybatis mapper动态代理方式
前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...
- MyBatis之Mapper动态代理开发
MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...
- Mybaits之Mapper动态代理开发
Mybaits之Mapper动态代理开发 开发规范: Mapper接口开发方法只需要程序员与Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法 ...
- 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项
如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...
- Spring 整合Mybatis Mapper动态代理方法
先看项目目录结构 很清爽了 最重要的Spring的核心配置文件,看一下 <?xml version="1.0" encoding="UTF-8"?> ...
- 【MyBatis笔记】06-Mapper动态代理
Mppaer 动态代理 创建 Mapper 工程 定义接口的要求 测试类 Mapper 中参数传递 单个参数 多个参数 @param命名参数 多个参数封装成 Map 多个参数之 POJO 参数处理源码 ...
- Mybatis源码学习-动态代理
Mybatis源码学习-动态代理 binding包下面是mybatis的mapper动态代理 // Mybatis官方手册建议通过mapper对象访问mybatis,因为使用mapper看起来更优雅 ...
最新文章
- node.js实现国标GB28181流媒体点播(即实时预览)服务解决方案
- 构建工具Gradle
- pc站转手机站的首页(扫二维码)
- 西亚斯vs2010敏捷开发分享
- centos7.2下安装mysql5.7数据库
- JQuery:JQuery添加元素
- 网络安全泡沫是否即将破灭?
- Session.run() Tensor.eval()
- 三、Python-列表
- 谈谈.NET Core IServiceProvider
- 华为eudemon 200E的hrp双心跳热备配置
- MIP ACCESS细节剖析
- Spring Boot————BeanCreationNotAllowedException异常分析
- Python学习 5day__基础知识
- 基于RV1126平台imx291分析 --- mipi-csi-phy注册
- 小程序分类图标提取_微信全国垃圾分类小程序上线,一键搜索轻松分类垃圾
- 前程无忧解密 + 推送
- STM32F103C8T6开发环境的搭建
- 光纤收发器tx和rx的区别?
- 复活Java 前言
热门文章
- 免费直播公开课 | 图卷积神经网络, BERT, 对话生成,知识图谱
- Facebook 最新力作 FBNetV3来了!相比 ResNeSt 提速 5 倍,精度不输 EfficientNet
- 聊聊WebRTC网关服务器2:如何选择PeerConnection方案?
- Android端的短视频开发技术
- LeetCode_每日一题今日份_410.分割数组的最大值
- Algs4-1.5.1使用quick-find算法处理序列
- HTML5 WebSockets学习
- Daily Scrum4 11.6
- Quick-Cocos2d-x 集成 Google protobuf 方法
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)