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动态代理开发方式相关推荐

  1. 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)

    1.原始Dao开发方式 原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 1.映射文件:(user.xml) <?xml version="1.0" encodin ...

  2. MyBatis DAO层开发——Mapper动态代理方式

    SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...

  3. 【Java】Mybatis mapper动态代理方式

    前言 我们在使用Mybatis的时候,获取需要执行的SQL语句的时候,都是通过调用xml文件来获取,例如:User user = (User) sqlSession.selectOne("c ...

  4. MyBatis之Mapper动态代理开发

    MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...

  5. Mybaits之Mapper动态代理开发

    Mybaits之Mapper动态代理开发 开发规范: Mapper接口开发方法只需要程序员与Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法 ...

  6. 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项

    如果使用原始的DAO,要自己对其进行实现,而如果使用Mybatis的Mapper动态代理,就可以让Mybatis自动帮你实现DAO接口. Mapper动态代理的四项原则 1.接口方法名需要与Mappe ...

  7. Spring 整合Mybatis Mapper动态代理方法

    先看项目目录结构 很清爽了 最重要的Spring的核心配置文件,看一下 <?xml version="1.0" encoding="UTF-8"?> ...

  8. 【MyBatis笔记】06-Mapper动态代理

    Mppaer 动态代理 创建 Mapper 工程 定义接口的要求 测试类 Mapper 中参数传递 单个参数 多个参数 @param命名参数 多个参数封装成 Map 多个参数之 POJO 参数处理源码 ...

  9. Mybatis源码学习-动态代理

    Mybatis源码学习-动态代理 binding包下面是mybatis的mapper动态代理 // Mybatis官方手册建议通过mapper对象访问mybatis,因为使用mapper看起来更优雅 ...

最新文章

  1. node.js实现国标GB28181流媒体点播(即实时预览)服务解决方案
  2. 构建工具Gradle
  3. pc站转手机站的首页(扫二维码)
  4. 西亚斯vs2010敏捷开发分享
  5. centos7.2下安装mysql5.7数据库
  6. JQuery:JQuery添加元素
  7. 网络安全泡沫是否即将破灭?
  8. Session.run() Tensor.eval()
  9. 三、Python-列表
  10. 谈谈.NET Core IServiceProvider
  11. 华为eudemon 200E的hrp双心跳热备配置
  12. MIP ACCESS细节剖析
  13. Spring Boot————BeanCreationNotAllowedException异常分析
  14. Python学习 5day__基础知识
  15. 基于RV1126平台imx291分析 --- mipi-csi-phy注册
  16. 小程序分类图标提取_微信全国垃圾分类小程序上线,一键搜索轻松分类垃圾
  17. 前程无忧解密 + 推送
  18. STM32F103C8T6开发环境的搭建
  19. 光纤收发器tx和rx的区别?
  20. 复活Java 前言

热门文章

  1. 免费直播公开课 | 图卷积神经网络, BERT, 对话生成,知识图谱
  2. Facebook 最新力作 FBNetV3来了!相比 ResNeSt 提速 5 倍,精度不输 EfficientNet
  3. 聊聊WebRTC网关服务器2:如何选择PeerConnection方案?
  4. Android端的短视频开发技术
  5. LeetCode_每日一题今日份_410.分割数组的最大值
  6. Algs4-1.5.1使用quick-find算法处理序列
  7. HTML5 WebSockets学习
  8. Daily Scrum4 11.6
  9. Quick-Cocos2d-x 集成 Google protobuf 方法
  10. 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)