MyBatis-Plus使用小结】的更多相关文章

Mybatis Annotation使用小结 之前一直有看过mybatis的注解使用方式,但没有去看过它的原理.今天看springboot-mybatis-annotation使用的时候,debug了下看了它的加载过程. 先编写一个示例接口 @Mapper // 标志为 Mybatis 的 Mapper public interface CityDao { /** * 根据城市名称,查询城市信息 * * @param cityName 城市名 */ @Select("SELECT * FROM…
在这之前我们知道了MyBatis为我们提供了三种级联:一对一关系(assocation).一对多关系(collection).鉴别器(discriminator).在最后一个鉴别器例子中,看到了当层级关系比较负责时,我们似乎已经难以应对和维护各种级联关系,在对数据库进行查询是否应用MyBatis为我们提供的级联这需要在实际中去斟酌和取舍.在我们通过级联来查询信息时会发现有一个问题,当我们只想查询出学生的普通信息(姓名.性别),而不想查询出他的成绩.课程.体检表时,之前的三个例子不管你是否需要成绩…
6:用于实现动态sql的元素及其用法 if+set--完成更新操作 if+where --完成多条件查询 if+完成多条件查询(替代where)或完成更新操作(替代set) choose(when,otherwise)--完成条件查询,多条件下,选择其一 foreach--完成复杂查询,主要用于in条件查询中,迭代集合,其中最关键的就是collection, 根据入参的类型不同,该属性值也不同 (1):若入参类型为list,collection属性为list (2):若入参类型为数组,colle…
动态返回mysql某张表指定列的名字 <select id="queryColumns" resultType="map" parameterType="java.util.HashMap"> select column_name columnName, data_type dataType, column_comment columnComment from information_schema.columns where tabl…
前言 学MyBatis的原因 1.目前最主流的持久层框架为 Hibernate 与 MyBatis,而且国内公司目前使用 Mybatis 的要比 Hibernate 要多. 2.Hibernate 学习门槛不低,且精通门槛更高.门槛高在如何设计 O/R 映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好 Hibernate 缓存与数据加载策略方面需要经验和能力都很强才行. 3.SQL 优化方面,Hibernate 的查询会将表中的所有字段查询出来,这一点会有性能消耗.当然,Hibernat…
示例代码 之前的文章说过,对于MyBatis来说insert.update.delete是一组的,因为对于MyBatis来说它们都是update:select是一组的,因为对于MyBatis来说它就是select. 本文研究一下select的实现流程,示例代码为: public void testSelectOne() { System.out.println(mailDao.selectMailById(8)); } selectMailById方法的实现为: public Mail sele…
原文地址:https://www.cnblogs.com/zqr99/p/8094234.html 最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"",比如 select * from table where name = #{name} ,传入的name为小李,那么最后打印出来的就是 select * from table where name = ‘…
最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"",比如 select * from table where name = #{name} ,传入的name为小李,那么最后打印出来的就是 select * from table where name = ‘小李',就是会当成字符串来解析,这样相比于$的好处是比较明显对的吧,#{}传参能防止sql注入,如果…
Spring Boot + MyBatis + Druid + Redis + Thymeleaf 整合小结 这两天闲着没事想利用**Spring Boot**加上阿里的开源数据连接池**Druid**搭建个简单的框架,主要是想了解一下**Druid**的可视化数据监控,无奈水平受限只能一边 Google 一边 整合,后来发现网上的一些整合资源太差强人意,于是我想把我得一些整合思路分享出来,供大家浏览,哪里不合适希望可以提出来,一起进步! 特别感谢一下我的朋友 [@码农界的苦逼猿](https:…
1. MyBatis 1.1. 作用 MyBatis是持久层框架,它是支持JDBC的!简化了持久层开发! 使用MyBatis时,只需要通过接口指定数据操作的抽象方法,然后配置与之关联的SQL语句,即可完成! 持久化存储:在程序运行过程中,数据都是在内存(RAM,即内存条)中的,内存中的数据不是永久存储的,例如程序可以对这些数据进行销毁,或者由于断电也会导致内存中所有数据丢失!而把数据存储到硬盘中的某个文件中,会使得这些数据永久的存储下来,常见做法是存储到数据库中,当然,也可以使用其它技术把数据存…
2.3 方法二:resultMap 使用resultMap,定义专门的resultMap用于映射一对一查询结果. 2.3.1 sql语句 同resultType实现的sql SELECT orders.*, USER.username, USER.sex, USER.address FROM orders, USER WHERE orders.user_id = user.id 2.3.2 使用resultMap映射的思路 使用resultMap将查询结果中的订单信息映射到Orders对象中,在…
IntelliJ IDEA 目录结构的一些小问题 [Mybatis 之基础应用小结] 1.不管怎么样,先建立一个简单的MySQL数据表,如下所示 2.接下来要做的事情就是通过Mybatis对数据表进行基础的增删查改,写好bean以及打算实现的方法 import java.util.List; public class PersonDAO { public void savePerson(Person person) { } public void removePersonByName(Strin…
入门小结---查询 1.1.1.1.1 #{}和${} #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入. #{}可以接收简单类型值或pojo属性值. 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称. ${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型…
MyBatis在Spring中的配置 我们在Spring中写项目需要运用到数据库时,现在一般用的是MyBatis的框架来帮助我们书写代码,但是学习了SSM就要知道M指的就是MyBatis,在此,在Spring中如何去配置MyBatis环境小结. 准备环境 首先我们需要准备的就是相关Jar包: Mybatis相关Jar包: Spring核心Jar包以及整合MyBatis的Jar包: 其中mybatis-spring-1.2.1.jar包需要去官网下载. 配置环境 将上诉Jar包都导入lib下并添加…
一.多数据源问题 主要思路是把dataSource.sqlSesstionFactory.MapperScannerConfigurer在配置中区分开,各Mapper对应的包名.类名区分开 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://…
摘要 出于兴趣,想要搭建一个自己的小站点,目前正在积极的准备环境,利用Spring+SpringMVC+MyBatis+LogBack+C3P0+Maven+Git,这里总结下最近遇到的一些问题及解决办法,后续慢慢的继续补~ 目录[-] 一:建立一个Maven结构的Web工程 二:Spring.SpringMVC重复加载bean对象问题. 三:实现自个的数据缓存机制 2种缓存数据简介及其数据结构分析 2中缓存数据加载实现流程介绍 三:通过Spring自定义标签形式实现配置项类型数据的缓存数据结构…
mybatis是Apache的一个开源项目ibatis,后由Google管理,目前在github上.MyBatis 是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架. 一.mybatis解决的问题有: 1.对数据库进行封装,将sql语句从业务层中分离,要更新只需在配置文件中更改,方便程序员维护. 2.通过在配置文件中配置数据连接池,用数据连接池管理数据库(结束了以往数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能). 3.自动将java对象映Mybatis自动将sql执行结果映…
原创: 在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可.parameterType有基本数据类型和复杂的数据类型配置.1.基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是自己定的类类型.包括int,String,Integer,Date,如下: (1)根据id进行相应的删除:<delete id="…
第一次听闻MyBatis Generator插件很是惊讶,已经有这么便捷方式的工具通过数据库表来自动生成实体类,映射文件,接口以及帮助类,而且可以通过自己写方法来增加中文注释,遂来学习一波.首先先建一个Maven的java项目 项目的目录结构 1.首先是pom.xml中的配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins…
1 映射器配置文件和映射器接口 在 com.mybatis3.mappers 包中的 StudentMapper.xml 配置文件内,是如何配置 id 为”findStudentById”的 SQL 语句的 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http:/…
MyBatis 最关键的组成部分是 SqlSessionFactory,我们可以从中获取 SqlSession,并执行映射的 SQL 语句.SqlSessionFactory 对象可以通过基于 XML 的配置信息或者 Java API 创建. 1 mybatis环境,environments 配置默认的数据库环境 MyBatis 支持配置多个 dataSource 环境,可以将应用部署到不同的环境上,如 DEV(开发环境),TEST(测试换将),QA(质量评估环境),UAT(用户验收环境),PR…
数据持久层做的工作是1)将从数据库中查询到的数据生成需要的java对象:2)将 Java 对象中的数据通过 SQL 持久化到数据库中. MyBatis 通过抽象底层的 JDBC 代码,自动化 SQL 结果集产生 Java 对象.Java 对象的数据持久化数据库中的过程使得对 SQL 的使用变得容易. MyBatis 抽象了上述的这些相同的任务,如准备需要被执行的 SQL statement 对象并且将 Java 对象作为输入数据传递给 statement 对象的任务,进而开发人员可以专注于真正重…
代码不能直接copy运行,有些内容是为了说明知识点 1,sqlMqpConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <…
一款轻量级的ORM框架 全局配置文件 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configurat…
一.多数据源问题 主要思路是把dataSource.sqlSesstionFactory(用来产生sqlSession).MapperScannerConfigurer在配置中区分开,各Mapper对应的包名.类名区分开Tips:MapperScannerConfigurer的作用:通过AOP来完成Mapper接口文件,Mapper xml文件以及SqlSessionFactory之间的关联关系.这样SqlSessionTemplate就可以不用配置了 <?xml version="1.0…
MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能.但是由于它本身也有一些缓存.事务管理等功能,所以实际使用中还是会碰到一些问题——另外,最近接触了JFinal,其思想和Hibernate类似,但要更简洁,和MyBatis的设计思想不同,但有一点相同:都是想通过简洁的设计最大限度地简化开发和提升性能——说到性能,前段时间碰到两个问题: 在一个上层方法(DAO方法的上层)内删除一条记录,然后再插入一条相同主键的记录时,会报主键冲突的错误. 某些项目中的D…
近期在写系统报表API的时候遇到MyBatis中的一些特殊写法: 1. 传入两个参数(一般情况下我们更多的是传入一个对象或者map) public List<MarketVehicleModel> selectVehicleByMarketAndDealer(String marketActivityId,String dealerId); 其对应的xml写法不能想当然地写成: <select id="selectVehicleByMarketAndDealer" p…
1.JDBC是怎么访问数据库的?答:JDBC编程有6步,分别是1.加载sql驱动,2.使用DriverManager获取数据库连接,3.使用Connecttion来创建一个Statement对象 Statement对象用来执行SQL语句,4.执行SQL语句,5.操作结果集,6.回收数据库资源2.MyBatis是怎么访问数据库的?答:1导入架包:2创建实体类对象:3 创建mybatis的配置文件mybatis-config.xml:4创建上面的TuserMapper.xml(Sql映射文件):5…
mybatis的执行器有三种类型: ExecutorType.SIMPLE 这个类型不做特殊的事情,它只为每个语句创建一个PreparedStatement. ExecutorType.REUSE 这种类型将重复使用PreparedStatements. ExecutorType.BATCH 这个类型批量更新,且必要地区别开其中的select 语句,确保动作易于理解. 可以在配置sqlSession时指定相应的类型: <bean id="fsasSqlSession" class…
前言:最近再写一款视频播放器的后台,踩了很多坑,在此总结. 设计顺序: 前提:搭建配置完好的Spring-MyBatis项目 1.流程分析,数据库设计(看似无用,真正做起来真的需要这个东西帮忙整理下思路) 2.dao层,mapper层,pojo层(可以自动生成),service层,impl层的编写 3.controll层的编写 流程图: 搭建Spring-Mybatis项目框架:(GitHub地址:https://github.com/XaiverHai/mybatis_spring) 项目结构…