Mybatis
文章平均质量分 75
Nazarite_KakaLuoTo
我是一个性格比较内向,有点技术宅,热爱编程,读书,健身,泰拳等。
展开
-
Mybatis之主键的返回(6)
一、自增主键的返回Mysql自增主键,执行insert提交之前自动生成一个自增主键。通过MySQL函数获取到刚刚插入记录的主键:LAST_INSERT_ID()在insert之后调用此函数。1、修改User.xml中的代码 <!-- 添加用户 parameterType:指定输入参数类型是pojo(包括用户信息) #{}中指定pojo的属性名,接收到poj原创 2017-11-29 05:37:04 · 447 阅读 · 0 评论 -
Mybatis之#{}和${}(15)
一、#{}#{}:表示占位符,如果获取简单类型,#{}中可以使用value或其它名称。有效防止SQL注入。使用#{}设置参数无需考虑参数的类型,类型处理器会自动处理。如果使用#{}比较日期字段,select * from tablename where birthday >= #{birthday}如果使用like通配符进行配置,则SQL使用下面的方式进行编写: <select id=...原创 2018-04-17 23:50:27 · 223 阅读 · 0 评论 -
Mybatis之SqlMapConfig.xml配置(13)
Mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象) environment(环境子属性对象) ...原创 2018-04-13 00:17:53 · 269 阅读 · 0 评论 -
Mybatis之使用拦截器实现分页(plugin案例)(14)
一、使用拦截器需要注意的事项使用的Mybatis版本是3.4.5,不同的版本略微有不同。注意事项: 1、要拦截什么样的对象 2、拦截对象的什么行为 3、什么时候拦截分页拦截的原理: 在SQL预编译之前,将SQL修改,对SQL进行封装,加上分页的语句,再将修改过后的SQL语句塞回去。拦截的方法如下:该方法位于org.apache.ibatis.executor.statement二、MyBatis使...原创 2018-04-13 00:39:46 · 633 阅读 · 0 评论 -
Mybatis之使用HashMap传参(16)
parameterType指定HashMap传递输入参数,“#{}”和“${}”中引用Map的key。SQL映射文件定义如下:传入的参数类型是HashMap<!--传递HashMap综合查询用户信息 --><select id="selectUserByHashmap" parameterType="hashmap" resultType="user"> select...原创 2018-04-18 23:38:02 · 6105 阅读 · 0 评论 -
MyBatis中使用POJO包装对象做映射(17)
开发中使用POJO传递查询条件,查询条件时综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(是另外一个POJO),这个时候就可以使用包装对象传递输入参数。定义包装对象将查询条件(pojo)以类组合的方式包装起来。一、需求完成用户信息的综合查询,需要传入的查询条件很复杂(可能包括用户信息、其他信息,比如商品、订单的信息),针对这种需求,建议使用自定义的包装类型的pojo。二、编写代码进行测试...原创 2018-04-24 23:49:14 · 3022 阅读 · 0 评论 -
Mybatis之输出映射resultType(18)
一、resultType如果resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。只要查询出来的列名和pojo中的属性有一个一致,就会创建poo对象。二、输出简单类型1、需求用户信息的综合查询列表总数,通过查询总数和上边用户综合查询列表才可以实现分页。2、在UserMapper.xm...原创 2018-04-25 23:51:51 · 435 阅读 · 0 评论 -
Mybatisz之SQL片段(21)
一、需求将动态SQL判断代码块抽取出来,组成一个SQL片段。其它的statement中就可以引用SQL片段。二、定义SQL片段 <!-- 定义SQL片段 id:sql片段的唯一标识 经验:是基于单表来定义SQL片段,这样这个SQL片段的可重用性才高 在SQL片段中不要包括where --> <sql id="query_user_where"> <...原创 2018-05-16 23:47:54 · 401 阅读 · 0 评论 -
Mybatis之resultMap的使用(19)
Mybatis中使用resultMap完成高级输出结果映射。一、resultMap使用方法如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射。1、定义resultMap2、使用resultMap作为statement的输出映射类型二、将下边的SQL使用User进行映射select id id_, username username_ fr...原创 2018-05-04 23:55:18 · 330 阅读 · 0 评论 -
Mybatis之添加用户(5)
一、映射文件在User.xml中添加如下内容: <!-- 添加用户 parameterType:指定输入参数类型是pojo(包括用户信息) #{}中指定pojo的属性名,接收到pojo对象的属性值, mybatis也是通过OGNL获取对象的属性值 --> insert into user(username, birthday, sex, address)原创 2017-11-19 23:18:58 · 538 阅读 · 0 评论 -
Mybatis之根据用户名称模糊查询用户信息(4)
该系列博客是传智播客Mybatis教学视频学习笔记,自己有补充。一、User.xml映射文件使用User.xml,添加根据用户名称模糊查询用户信息的SQL语句。在User.xml中添加下面的SQL语句:<!-- 根据用户名称模糊查询用户信息,可能返回多条resultType:指定的就是单条记录所映射的java对象类型${}:表示拼接SQL串,将接收到参数的内容不加任何修饰拼原创 2017-11-19 23:11:34 · 2633 阅读 · 0 评论 -
Mybatis之Mybatis入门程序(3)
一、准备环境1、Mybatis运行环境从github上下载Mybatis-3.2.3Lib下:依赖包Mybatis-3.2.3.jar:Mybatis核心包Mybatis-3.2.3.pdf:操作指南2、Mybatis的依赖包:3、加入mysql的驱动包:4、执行下面的脚本,生成数据库:/*SQLyog v1原创 2017-11-19 22:44:14 · 287 阅读 · 0 评论 -
Mybatis之批量新增数据(7)
注意下面的语法是MySQL的批量插入语句,不同的数据库语法可能不一样。1、定义插入的SQL语句 insert into COMMAND_CONTENT(CONTENT,COMMAND_ID) values (#{item.content},#{item.commandId}) 2、定义Mapper接口的方法 /** * 批量新增 */ public原创 2017-11-29 05:43:05 · 332 阅读 · 0 评论 -
Mybatis之删除数据(8)
一、根据id删除用户注意:如果用户不存在,则执行删除操作也不会抛异常。1、在User.xml中配置如下SQL语句 <!—删除用户 根据id删除用户,需要输入id值 --> delete from user where id=#{id} 2、编写测试类进行测试 /** * 删除用户信息 */ @Test public void del原创 2017-11-29 06:06:00 · 4476 阅读 · 0 评论 -
Mybatis之更新数据(9)
一、根据id更新用户1、在User.xml中添加如下SQL <!-- 根据id更新用户 分析: 需要传入用户的id 需要传入用户的更新信息 parameterType:指定user对象,包括id和更新信息,注意:id必须存在 #{id}:从输入user对象中获取id --> update user set username=#原创 2017-11-29 06:11:26 · 695 阅读 · 0 评论 -
Mybatis之SqlSession的应用场合(10)
一、SqlSessionFactoryBuilder通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory。将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理。在需要创建SqlSessionFactory的时候,只需要new一次SqlSessionFactoryBuilder即可。二、 Sql原创 2017-11-29 06:16:58 · 354 阅读 · 0 评论 -
Mybatis之原始dao开发方法(程序员需要写dao接口和dao实现类)(11)
一、思路程序员需要写dao接口和dao实现类。需要向dao实现类中注入SqlSessionFactory,在方法体内通过SqlSessionFactory创建SqlSession。二、dao接口新建dao接口,代码如下:package cn.sunft.mybatis.dao;import cn.sunft.mybatis.po.User;/** * Dao接原创 2017-11-29 06:26:36 · 684 阅读 · 0 评论 -
Mybatis之使用mapper代理方法开发dao(程序员只需要写mapper接口(dao接口))(12)
一、思路(Mapper代理开发的规范)程序员还需要编写mapper.xml映射文件。程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象。开发规范:1、在mapper.xml中namespace等于mapper接口地址:接口类的全名2、mapper.java接口中的方法名和mapper.xml中statement的原创 2017-11-29 06:43:31 · 858 阅读 · 0 评论 -
Mybatis之Mybatis框架原理(2)
该系列博客是自己整理的传智播客的Mybatis学习笔记。一、Mybatis是什么?Mybatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到google code,并且改名为MyBatis。再后来托管到github下(http://github.com/mybatis/mybatis-3/releases)。原创 2017-11-19 22:29:00 · 365 阅读 · 0 评论 -
Mybatis之对原生态JDBC程序中问题总结(1)
一、环境JDK1.8、MyEclipse2014、MySQL5.6创建MySQL数据库。最终导入脚本内容如下:/*SQLyog v10.2 MySQL - 5.1.33-community : Database - mybatis******************************************************************原创 2017-11-19 22:14:53 · 337 阅读 · 0 评论 -
Mybatis动态SQL之if判断(20)
Mybatis动态SQL核心:对SQL语句进行灵活操作,通过表达式进行判断,对SQL进行灵活拼接、组装。一、if判断1.1、需求用户信息综合查询列表和用户信息查询列表总数这两个statement的定义使用动态SQL。1.2、修改UserMapper.xml中的SQL语句 <!-- 用户信息综合查询 #{userCustom.sex}:取出pojo包装对象中性别值 ${userCustom...原创 2018-05-07 23:56:06 · 537 阅读 · 0 评论