Mybaits
文章平均质量分 65
苍鹰蛟龙
这个作者很懒,什么都没留下…
展开
-
18、动态SQL之<choose><when><otherwise>标签
在mybatis中使用<choose><when><otherwise>标签的作用,类似于Java 的 switch 语句的作用,其中只有一个判断满足条件。 <select id="getPerson" resultType="com.lzj.bean.Employee"> select * from PERSON <!--<where>标签起到了where的原创 2018-01-21 11:54:51 · 1629 阅读 · 0 评论 -
2、Mybatis之增、删、改、查
一、Mybaits之增、删、改、查上一节已经介绍了Mybaits的搭建环境,下面演示Mybaits的增、删、改、查。以数据库中的users表为例,表中有id、name、age三个字段。 1、首先建立表对应的beanpackage com.lzj.mybaits.test1;public class User { private int id; private St原创 2018-01-04 22:30:28 · 273 阅读 · 0 评论 -
8、Mybatis中<environments>标签的应用
在Mybatis中配置数据源的环境如下<configuration> <!--default可以选择运用哪一个数据源,是开发环境的数据源,还是测试环境的数据源--> <environments default="dev_mysql"> <environment id="dev_mysql"> <transactionManager type="翻译 2018-01-08 22:38:57 · 1078 阅读 · 0 评论 -
14、Mybatis之一对一关联查询
例如一个人有一部手机,每个品牌手机的价格不同,下面通过两个表来表示这个时间,PERSON表和PHONE表。PERSON表: PHONE表: 两个表中通过phone_brand字段对应,首先在PERSON表中通过id查询出某人拥有的手机品牌phone_brand,然后在PHONE表中通过手机品牌phone_brand查出价格。实现两个表的一对一关联查询。下面演示如何用mybatis实现此两个表一对原创 2018-01-17 23:41:41 · 1284 阅读 · 0 评论 -
7、Mybatis实现缓存
Mybatis提供了一级缓存和二级缓存。 一级缓存:一级缓存的存储作用域为一个SqlSession会话,当SqlSession会话被flush或close之后,该session会话中的所有catch数据就会被清空。 二级缓存:二级缓存与一级缓存的实现机制相同,但其作用域为一个mapper文件(即一个namespace空间中的sql语句)。 不管一级缓存还是二级缓存,当某一个作用域执行了C/U原创 2018-01-07 23:07:24 · 259 阅读 · 0 评论 -
9、Mybatis获取表的自增主键
例如user表中有3个字段:id,name,age。其中id为自增字段。当插入一条数据后,id会自动加1,插入数据后,可以通过mybatis获取自动增加的id的值。Mybatis的sql映射如下: <insert id="insertUser" parameterType="com.lzj.mybatis.User" useGeneratedKeys="true" keyPro原创 2018-01-09 22:33:40 · 526 阅读 · 0 评论 -
Mybatis的逆向工程
在一般应用mybatis框架时,一般先手动创建数据库表对应的bean,然后手动创建DAO接口,然后手动写mapper文件,最后在应用中调用mapper接口。本篇博客中介绍如何自动创建bean、DAO、mapper文件,以上三种不用手动创建,只需要自动生成,然后在应用中直接调用即可,这就是Mybatis的逆向工程(MyBatis Generator,简称MBG)。MBG是一个专门为MyBatis框架原创 2018-01-27 15:57:08 · 278 阅读 · 0 评论 -
Mybatis之批量执行SQL语句
之前做批量插入SQL时都是用的<foreach>标签,但有时需要插入成千上万条语句,此时用<foreach>标签拼接的SQL就会非常大,有时数据库识别不了。<foreach> 标签作用组成一个非常大的批量插入SQL语句,让不同数据库去支持执行非常大的SQL语句;而mybatis本身设计了批量执行SQL的方法,让数据库一条一条的SQL语句执行,但不是每执行一条连接一次数据库,而是连接一次数据库,然后依原创 2018-01-28 16:04:01 · 13791 阅读 · 0 评论 -
15、Mybatis之一对多级联查询
<1>通过一个表的一个字段去查询另一个表的多条记录一对多的级联查询表示一个表中一条记录对应另一个表中多条记录,例如一种型号的手机有多个人使用。 手机对应的表为PHONE: 人对应的表PERSON: 建立PHONE表对应的实体类,一个品牌的手机有多个人在使用package com.lzj.mybaits.bean;public class Phone { private S原创 2018-01-20 18:40:23 · 851 阅读 · 0 评论 -
MyBatis中的OGNL教程
有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL。如果我们搜索OGNL相关的内容,通常的结果都是和Struts有关的,你肯定搜不到和MyBatis有关的,虽然和Struts中的用法类似但是换种方式理解起来就有难度。MyBatis常用OGNL表达式e1 or e2e1 and e2e1 == e转载 2018-01-20 21:15:33 · 467 阅读 · 0 评论 -
16、动态SQL之<where>、<if>条件判断
错误方式一: 在mybatis的动态sql语句中使用标签可以判断sql中的条件是否成立。 select id="getPerson" resultType="com.lzj.bean.Employee"> select * from tbl_employee where if test="id!=null">原创 2018-01-20 21:34:34 · 41707 阅读 · 6 评论 -
17、动态SQL之<trim>
在上一节中,像下面写法<select id="getPerson" resultType="com.lzj.bean.Person"> select * from person <where> <if test="id!=null"> id=#{id} and </if> <if test="lastName!=原创 2018-01-20 23:56:25 · 972 阅读 · 0 评论 -
13、Mybatis把返回结果封装成map类型
一、Mybatis把返回结果封装成map类型,表的字段名对应map中的key,字段所属的值对应map中的value例如接口为:public interface UserDao { public Map getMapUser(int id);}接口在mybatis中的实现为:mapper namespace="com.lzj.mybatis.dao.UserDao原创 2018-01-15 22:25:37 · 53569 阅读 · 3 评论 -
1、Mybatis之hello world——记踩过的坑
一、搭建Mybaits环境的步骤下面首先介绍创建mybaits环境的基本步骤,以从数据库中取一条数据为例,数据库中数据如下,数据库为mysql数据库。1、首先创建一个java工程,并创建lib目录,在lib目录下导入mybaits和mysql的jar包,并加入环境中。mybatis-3.1.1.jarmysql-connector-java-5.1.7-bin.jar2、原创 2018-01-03 22:03:35 · 472 阅读 · 0 评论 -
19、动态SQL之<set><if>标签的使用
当更新表时,只更新值不为空的字段。需要用<if>判断传入的值是否不为空,然后更新值不为空对应的字段。 <update id="updatePerson"> <!-- Set标签的使用 --> update PERSON set <if test="lastName!=null"> las原创 2018-01-21 12:29:28 · 5601 阅读 · 1 评论 -
10、mybatis的接口编程
在应用中,操作数据库时,我们可以定义操作数据库的接口,然后让mybatis的sql的映射文件动态实现接口中的方法,在程序中只需要调用接口的方法就可以操作数据库。示例如下1、首先导入mybaits的jar包和数据库的jar包,此地用的是mybatis-3.1.1.jarmysql-connector-java-5.1.7-bin.jar2、创建对应数据库表users的实体类User原创 2018-01-13 17:36:35 · 342 阅读 · 0 评论 -
11、Mybatis处理传入多个参数
一、当传入一个参数时,mybatis直接把输入的参数绑定到#{} 中的变量中。但是mybatis如何处理传入多个参数的情况呢? 例如一个库表users,有id、name、age三个字段,现在通过传入id、name两个参数来查询整条记录。对应的接口如下:public interface UserDao { /*接口中出入两个参数,mybatis要处理两个输入参数*/原创 2018-01-13 21:57:46 · 2142 阅读 · 0 评论 -
12、Mybatis中用#{}和${}获取输入参数的区别
#{}和${} 都可以从接口输入中的map对象或者pojo对象中获取输入的参数值。例如:<mapper namespace="com.lzj.mybatis.dao.UserDao"> <select id="getUser" resultType="com.lzj.mybaits.bean.User"> select * from users where name=#{na原创 2018-01-14 10:13:43 · 1917 阅读 · 1 评论 -
20、动态SQL之<foreach>标签
有时传入SQL语句中的参数为一个集合,在SQL语句中就需要遍历集合中的每一个参数,此时就需要用到了<foreach>标签。下面以具体情况演示一、查询查询PERSON表中id={1,2,3}的记录,SQL语句为:select * from PERSON where id in (1,2,3)下面在mybatis中实现该SQL语句,首先定义对应的DAO接口:public interface Person原创 2018-01-23 00:06:33 · 671 阅读 · 0 评论 -
21、动态SQL之内置参数_parameter的使用
_parameter表示传入SQL中整体参数。下面以查询为例示例一: 假设用name查PERSON表,定义对应的DAO接口为:package com.lzj.mybatis.dao;import java.util.List;import com.lzj.mybaits.bean.Person;public interface PersonDao { public List<Pers原创 2018-01-23 23:52:33 · 1243 阅读 · 0 评论 -
22、动态SQL之<bind>标签使用
假设PERSON表中有id、name、age三个字段,现在要查询name中含有”x”的记录,通常做法如下方式一(推荐);首先定义DAO接口:public List<Person> getPersons(@Param("pattern")String pattern);定义dao接口对应的mapper文件: <select id="getPersons" resultType="com.lzj.原创 2018-01-24 00:17:38 · 4572 阅读 · 0 评论 -
6.1 Mybatis实现动态SQL——<if></if>使用
当我们用模糊匹配某字段时,在mybaits可以通过动态sql来实现。 例如users表如下: 下面在mybaits中实现SELECT * FROM users WHERE name LIKE '%z%' AND age>15 AND age<301、建立users表对应的User类package com.lzj.mybaits.test1;public class User { pri原创 2018-01-07 18:05:59 · 450 阅读 · 0 评论 -
5、Mybatis实现一对一关联表查询
本章节主要实现两个一对一关联表的查询,例如表PERSON 表PHONE 上述两个表一对一关联,一个人只能有一部手机。例如查询id为1的那个人的手机价格,sql 查询语句为:SELECT * FROM person p1, phone p2 WHERE p1.phone_brand = p2.phone_brand AND p1.id=1下面通过Mybaits实现此一对一关联原创 2018-01-06 18:29:33 · 435 阅读 · 0 评论 -
4、Mybatis中实体类bean的属性名与数据库表中对应字段名不同
例如一个USER表中一个字段为name,在工程中创建的USER表对应的bean为User,其中一个属性为user_name,在Mybaits中的sql映射文件中一定要映射字段,否则会操作sql不正确。下面以两种方式为示例: 表如下: 一、在sql语句中进行映射1、创建表对应的实体类User,类中的属性名与表USER中的字段名不一致。package com.lzj.mybai原创 2018-01-06 15:30:32 · 15312 阅读 · 0 评论 -
3、Mybatis通过注解的形式实现增、删、改、查
上一节介绍了通过XML配置的形式实现增、删、该、查,本节介绍通过注解的形式实现增、删、该、查。还是以数据库中的users表为例 1、首先建立users表对应的beanpackage com.lzj.mybaits.test1;public class User { private int id; private String name; private int原创 2018-01-04 23:53:32 · 408 阅读 · 0 评论 -
整合spring boot + quartz + spring batch + mybatis
quartz负责定时,spring batch负责批量,mybatis负责持久化数据库,具体每个框架的介绍请参考其它文章,本节主要做spring boot + quartz + spring batch + mybatis的整合。案例:指定距当前时间5s后,每隔3s时间执行一次批处理任务,批处理任务是读取数据库表记录并打印出来。 数据库采用DB2数据库,库表为users,记录为: ...原创 2018-04-13 20:13:53 · 10948 阅读 · 2 评论