程序执行顺序:
1.Mybatis Generator
作用:根据数据库中的表自动生成实体类(类中属性与表的字段一一对应),映射文件等文件
2.Example类
作用: 拼接sql语句,方便灵活
3. and or联合查询如何使用Example?
例如:
select count(*) from user Where (Id=1 and name="jack") or (id=2 and Name="Tom")
代码:
UserExample userExample=new UserExample();
UserExample.Criteria criteria=example.createCriteria();
Criteria.andIdEqualTo(1); //给查询条件1赋值
Criteria.andNameEqualTo("jack"); //给查询条件1赋值
UserExample.Criteria criteria2=example.createCriteria();
Criteria2.andIdEqualTo(2); //给查询条件2赋值
Criteria2.andNameEqualTo("Tom"); //给查询条件2赋值
example.or(criteria2); //or映射
userPadMapper.countByExample(userPadExample); //执行查询
4.每个数据库字段,mybatis Generator会自动产生一堆Example方法
4.1方法名的格式与含义
以andIdIsNull() 为例
方法名的格式: and + 属性名+含义
方法名的含义: 判断Id是否为空
4.2属性不同,但是自动产生的方法都相似的
,以属性id为例,看看自动产生的方法一般都有哪些
andIdIsNull() //判断是否为空
andIdIsNotNull() //判断是否不为空
andIdEqualTo(Integer value) //判断Id是否与value相等
andIdNotEqualTo(Integer value) //判断Id是否与value不相等
andIdGreaterThan(Integer value) //判断Id是否大于value
andIdGreaterThanOrEqualTo(Integer value) //判断Id是否大于等于value
andIdLessThan(Integer value) //判断Id是否小于value
andIdLessThanOrEqualTo(Integer value) //判断Id是否小于等于value
andIdIn(List<Integer> values) //判断Id是否和List中某个值相等
andIdNotIn(List<Integer> values) //判断Id的值是否与List中任何一个值都不相等
andIdBetween(Integer value1, Integer value2) //判断Id是否在2个值中间
andIdNotBetween(Integer value1, Integer value2) //判断Id是否不在2个值中间
5.criteria查询是mybatis提供的一种更加面向对象的查询方式
Criterion是最基本,最底层的Where条件
Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系。
Example内有一个成员叫oredCriteria,是Criteria的集合,就想其名字所预示的一样,这个集合中的Criteria是由OR连接的,是逻辑或关系。oredCriteria就是ORed Criteria。
6.Mybatis的动态sql本质就是拼接sql语句,满足条件就加在sql语句上,不满足条件就不加
看个实际例子:
用户查询的时候,有很多查询条件
select * from user
select * from user where id=1;
select * from user where name="张三"
select * from user where name="张三" and id=2
select * from user where name="张三" and id=2 and age=19
........
........
不可能针对每一种情况,程序员都自己写对应的sql语句,需要一种更便捷的方法,就是动态sql
代码:
selec* from user <where>
<if test="id!=null">
and id=#{id} </if>
<if test="name!=null">
and name=#{name} </if>
<if test="age!=null">
and age=#{age} </if>
<if test="sex!=null">
and sex=#{sex} </if>
....
</where>
解释: 1. <where>标签,如果后面有查询条件,那么会在selec* from user 后面添加一个where 变成 selec* from user where
2. if标签中的test是判断条件,如果满足条件,就将标签中的内容添加到
selec* from user where后面,不满足就不添加,因此,用户输入哪种查询条件,就会自动生成相应的sql语句
注意:where语句会自动省略第一个and
相关推荐
MyBatis入门到精通,PDF,新手不错的学习资料。完整版的文档。
Mybatis入门
mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例mybatis入门案例...
MyBatis入门到精通配套资源,MyBatis入门到精通配套资源,MyBatis入门到精通配套资源
Mybatis入门程序实现,实现简单的数据库中的增删改查,适合小伙伴学习用,如果喜欢,或者觉得有用,请关注我的微信公众号:从小白到架构师。
mybatis入门示例项目,包括数据库sql语句,映射文件配置,配置文件加载和Junit测试,log4j打印日志等功能。
本次博客主要记载了使用IDEA创建Mybatis项目的操作步骤,希望可以给想要自学Mybatis框架的技术员提供一些帮助,由于我在别的博客里搜查详细的Mybatis入门案例,用在最新版上的IDEA报错信息出现的比较多,让我怀疑我...
mybatis入门程序开始进入SSM框架学习,文件仅仅实现MyBatis环境查询1.idea创建简单maven给出 2.pom.xml导入依赖
mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: ① :原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) ② :mybaits的mapper(代理)接口(相当于dao接口)代理开发方法(掌握)第二...
Mybatis入门项目实例,笔记,内含单独mybatis jar包
MyBatis 入门
MyBatis简单入门的一些介绍内容
Mybatis 入门到理解篇,Mybatis 入门到精通,基础知识
MyBatis入门
Mybatis 入门小例子
一个简单的Mybatis入门案例,其中有如何配置,dao层注解方式的举例和XML配置方式的举例
mybatis 入门代码示例
mybatis入门实战之简单的增删改查,方便初学者学习,包含了log,Maven等等
最简单的mybatis入门程序,连接mysql数据库的。容易看懂,新手可以参考!
MyBatis入门实例源码