[mybatis]Example的用法-转】的更多相关文章

转自:https://blog.csdn.net/zhemeban/article/details/71901759 Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生成一个几乎无限的where子句. Example类包含一个内部静态类 Criteria 包含一个用 anded 组合在where子句中的条件列表. Example类包含一个 List…
Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生成一个几乎无限的where子句. Example类包含一个内部静态类 Criteria 包含一个用 anded 组合在where子句中的条件列表. Example类包含一个 List 属性,所有内部类Criteria中的子句会用 ored组合在一起. 使用不同属性的 Criteria 类允许您生成无…
resultMap 的用法 <resultMap id="唯一标识" type="映射的pojo类"> <id column = "表的主键或者主键的别名" jdbcType = "字段的类型,可以省略" property = "映射的pojo字段的名称"></id> <result column = "表的主键或者主键的别名" jdbcType…
From<MyBatis从入门到精通> <!-- 4.7 OGNL用法 MyBatis常用的OGNL表达式: e1 or e2: e1 and e2 e1 == e2; e1 != e2 !e e1 lt e2 :小于 e1 lte e2 :小于等于 e1 gt e2 :大于 e1 gt2 e2 :大于等于 e1+e2 e1-e2 e1*e2 e1/e2 e1%e2 e1[e2]:按索引取值(List.数组.Map) e.property :对象属性值 e.method(args):调用…
Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式. Example类可以用来生成一个几乎无限的where子句. Example类包含一个内部静态类 Criteria 包含一个用 anded 组合在where子句中的条件列表. Example类包含一个 List 属性,所有内部类Criteria中的子句会用 ored组合在一起. 使用不同属性的 Criteria 类允许您生成无…
JAVA: TC_ENTR_FLOW selectFlowForUpdate(String ENTR_ID); XML: <select id="selectFlowForUpdate" resultMap="BaseResultMap" parameterType="java.lang.String"> <bind name="ENTR_ID" value="'%' + _parameter&qu…
MyBatis我们这篇文章主要记录一些经常使用的操作方法.这样在开发和使用的过程中这篇文章能够当做工具书来使用. MyBatis的数据源配置 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.dr…
本文为博主原创,未经允许不得转载: 由于在应用过程中,发现namespace在配置文件中的重要性,以及配置的影响,在网上看了很多博客,发现很多人对namespace存在误解, 所以总结一下namespace的用以及个人的理解: 官网(http://www.mybatis.org/mybatis-3/zh/getting-started.html)的解释如下: namespace即空间命名名称,用于区分实现数据持久化的方式.namespace一般绑定对应的文件的全路径, 有三种全路径:namesp…
Mybatis使用bind元素进行模糊查询,不用在乎数据库是mysql还是oracle从而提高可移植性 使用bind元素传递多个参数 public List<Student> findStudents(@Param("studentName")String studentName,@Param("note")String note) <select id="getStudent" resultMap="studentM…
在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item,index,collection,open,separator,close. item:集合中元素迭代时的别名,该参数为必选. index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选 open:foreach代码的开始符号,一般是(和close=")…
当Mybatis传过来的值是map类型的时候,有两种处理方法 1.将数值装入类封装起来 public interface IStudentDao { // 根据姓名和年龄查询 List<Student> selectStudentsByCondition(Map<String, Object> map); // 根据姓名和年龄查询 List<Student> selectStudentsByCondition2(String name,int age); } 2.map…
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 我们先来看Mapper接口中的@Select方法 package Mapper; public interface Mapper { @Select("select s_id id,s_name name,class_id classid from student where s_name= #{aaaa} and class_id = #{bbbb}")…
1 自动生成代码 配置数据库 自动生成三个文件: 第一,java bean文件: 第二,java bean对应的dao文件,但是这里的dao只是一个接口: 第三,mybatis需要的Mapper文件: 2 利用自动生成的代码访问数据库 2.1 org.mybatis.spring.mapper.MapperScannerConfigurer类 自动生成的dao只是一个接口,在自动注入的时候,通过该类生成对应的实体类对象. 这个类是mybatis generator和spring之间的黏合剂. 2…
新建学生表和学生证表 --学生表 CREATE TABLE student( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'id', `name` VARCHAR(20) NOT NULL COMMENT '姓名', `age` INT NOT NULL COMMENT '年龄', sex INT NOT NULL COMMENT '性别 1 男 0 女', cid INT NOT NULL COMMENT '班级id', cardId…
一.创建部门表和员工表: 创建部门信息表`t_department`,其中包括`id`, `name` CREATE TABLE t_department (         id INT AUTO_INCREMENT,         name VARCHAR(20) UNIQUE NOT NULL,         PRIMARY KEY(id)     ) DEFAULT CHARSET=UTF8; 往部门表中插入数据: INSERT INTO t_department (name) VA…
深入Mapper XML映射文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码.MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好. SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):select – 映射查询语句insert – 映射插入语句update – 映射更新语句delete – 映射删除语句s…
深入mybatis的配置文件(mybatis-config.xml)   MyBatis的配置文档结构 顶层configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 environments 环境 |-environment 环境变量 |-transactionManager 事务管理器 |-dataSource 数据源 database…
MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. jar包和配置 1.jar包必须包含mybatis(我用的mybatis-3.4.6.jar)还有数据库链接jar包(我用的m…
在mybatis的xml文件中构建动态sql语句时,经常会用到标签遍历查询条件.特此记录下不同情况下书写方式!-------仅供大家参考------ 1. foreach元素的属性 collection: 需做foreach(遍历)的对象,作为入参时,list.array对象时,collection属性值分别默认用"list"."array"代替,Map对象没有默认的属性值.但是,在作为入参时可以使用@Param("keyName")注解来设置自…
private String deptLevel; <when test='deptLevel=="3"'> 正确 <when test="deptLevel=='3'"> 错误 mybatis 配置…
本文援引:https://www.cnblogs.com/fnlingnzb-learner/p/10566452.html 在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了 foreach元素的属性主要有item,index,collection,open,separator,close. item:集合中元素迭代时的别名,该参数为必选. index:在list和数组中,index是元…
#可以防止SQL注入 $用在一些特殊的SQL语句例如 order by ${...} , desc/asc PS:大部分用#,一些特殊情况用$…
oracle数据库: SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 SELECT * FROM user WHERE name like '%'||#{name}||'%' SQLServer数据库: SELECT * FROM user WHERE name like '%'+#{name}+'%' mysql数据库: SELECT * FROM user WHERE name like CONCAT('%',#{na…
### 背景查询广州每个景点的总流量,和每个景点每日流量 #### 数据表 t_广州|唯一标识id|地点place|流量counts|日期date||:---:|:---:|:---:|:---:||1|动物园|100|'2018-11-11'||2|动物园|200|'2018-11-12'||3|植物园|100|'2018-11-11'| ### 需求统计每个地点的总流量,和每天的流量结果示意结构如下:````json{ place: '动物园', allCounts: 300, perDay…
@Test public void test3(){ CaseSmallListExample caseSmallListExample = new CaseSmallListExample(); caseSmallListExample.or().andDeptNumberEqualTo(1); caseSmallListExample.or().andDeptNumberEqualTo(2); List<CaseSmallList> smallLists = caseSmallListMa…
SqlProvider使用 public class MemberRewardSqlProvider { private static final Logger log = LoggerFactory.getLogger(EappShpstoreSqlProvider.class); public String selectByPage(MemberReward memberReward) { StringBuffer sb = new StringBuffer(); sb.append("se…
学习了hibernate这个持久层框架之后,在来学习Mybatis简直是无压力,因为Mybatis入门门栏很低,如果学习过了hibernate的话,对于Mybatis的学习很简单了,如果没学习过hibernate直接学习Mybatis也没关系,也很好理解. 写Mybatis这一章节博客,大致分为这样一种思路 mybatis入门  -->  全局配置文件和映射文件详解  --> 高级映射(一对一,一对多,多对多) -->延迟加载机制  -->一级缓存,二级缓存(整合ehcache)…
技术发展日新月异,许多曾经拥有霸主地位的流行技术短短几年间已被新兴技术所取代. 在Java的世界中,框架之争可能比语言本身的改变更让人关注.近几年,SpringMVC凭借简单轻便.开发效率高.与spring框架无缝整合等特点,逐渐击败前辈Struts/Struts2,成为最常用的Web框架.而Mybatis相对于hibernate,同样具有开发简单.效率高的优势,而且对SQL的可控性更好,有利于性能调优,逐渐也积累了挑战Hibernate的实力和人气. 当前SpringMVC+Mybatis已经…
主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主键回填在 MyBatis 中的两种实现思路. 原生写法 框架来源于我们学过的基础知识,主键回填实际上是一个在 JDBC 中就被支持的写法,有的小伙伴可能不知道这一点,因此这里我先来说说在 JDBC 中如何实现主键回填. JDBC 中实现主键回填其实非常容易,主要是在构造 Prepar…
学习了hibernate这个持久层框架之后,在来学习Mybatis简直是无压力,因为Mybatis入门门栏很低,如果学习过了hibernate的话,对于Mybatis的学习很简单了,如果没学习过hibernate直接学习Mybatis也没关系,也很好理解. 写Mybatis这一章节博客,大致分为这样一种思路 mybatis入门  -->  全局配置文件和映射文件详解  --> 高级映射(一对一,一对多,多对多) -->延迟加载机制  -->一级缓存,二级缓存(整合ehcache)…