MyBatis

MyBatis(3)

自作多情 提交于 2020-03-17 03:29:32
1.MyBatis的逆向工程 MyBatis逆向工程可以根据表创建对应的POJO类、Mapper接口、SQL映射文件。MyBatis是通过MyBatis Generator【MyBatis生成器:简称MBG】来实现逆向工程的。 MyBatis逆向工程缺点:只能处理单表! 2.MyBatis基于注解的增删改查 MyBatis支持基于xml的SQL语句,也支持基于注解的SQL语句。 基于xml标签 Insert:往数据表中插入数据 Select:从数据表中查询数据 Delete:删除数据表的数据 Update:更新数据表中的数据 关联查询 resultMap标签 result标签:普通字段映射 association标签:处理对一的关联关系 collection标签:处理对多的关联关系 常用注解: @insert: 代替insert标签 @Select:代替原来select标签 @delete:代替原来的delete标签 @update:代替原来的update标签 关联查询 @results:代替原来的resultMap标签 @Result:代替result标签 @one:代替原来的association标签 @Many:代替原来的collection标签 关联查询: X对一的关联关系【2种解决方案】 需求:在查询员工信息的时候,顺带着将员工所属的部门信息也查询出来。 第一种方式:

mybatis 生成Domain,Dao,xml文件

耗尽温柔 提交于 2020-03-17 01:05:07
mybatis Generaor 官网: http://www.mybatis.org/generator/index.html mybatis Generator 教程: http://blog.csdn.net/testcs_dn/article/details/77881776 myBatis Plus 官网:http://mp.baomidou.com/#/ mybatis Plus 官网: http://mp.baomidou.com/#/quick-start 案例: <!--mybatis 生成Mapper和POJO 依赖包--> <!--<dependency>--> <!--<groupId>org.mybatis.generator</groupId>--> <!--<artifactId>mybatis-generator-core</artifactId>--> <!--<version>1.3.7</version>--> <!--</dependency>--> <!--<dependency>--> <!--<groupId>org.mybatis</groupId>--> <!--<artifactId>mybatis</artifactId>--> <!--<version>3.5.0</version>--> <!--</dependency>-

Mybatis - XML配置

痴心易碎 提交于 2020-03-16 17:52:43
< ? 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" > < configuration > < ! -- 全局变量 -- > < properties > < property name = "driver" value = "com.mysql.jdbc.Driver" / > < property name = "url" value = "jdbc:mysql://localhost:3306/db_mybatis" / > < property name = "username" value = "root" / > < property name = "password" value = "123456" / > < / properties > < ! -- 配置环境 -- > < environments default = "development" > < environment id = "development" > < ! -- 配置事务类型 -- > <

springboot之简洁集成mybatis

偶尔善良 提交于 2020-03-16 15:03:47
某厂面试归来,发现自己落伍了!>>> orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的hibernate,一个是可以灵活调试动态sql的mybatis,两者各有特点,在企业级系统开发中可以根据需求灵活使用。发现一个有趣的现象:传统企业大都喜欢使用hibernate,互联网行业通常使用mybatis。 hibernate特点就是所有的sql都用Java代码来生成,不用跳出程序去写(看)sql,有着编程的完整性,发展到最顶端就是spring data jpa这种模式了,基本上根据方法名就可以生成对应的sql了。 mybatis初期使用比较麻烦,需要各种配置文件、实体类、dao层映射关联、还有一大推其它配置。当然mybatis也发现了这种弊端,初期开发了 generator 可以根据表结果自动生产实体类、配置文件和dao层代码,可以减轻一部分开发量;后期也进行了大量的优化可以使用注解了,自动管理dao层和配置文件等,发展到最顶端就是springboot+mybatis可以完全注解,不用配置文件,也可以简单配置轻松上手。 mybatis-spring-boot-starter 官方说明: MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot

MyBatis 的 DAO 接口跟 XML 文件里面的 SQL 是如何建立关系的

与世无争的帅哥 提交于 2020-03-16 12:49:22
MyBatis 会先 解析这些 XML 文件 ,通过 XML 文件里面的 命名空间 (namespace)跟 DAO 建立关系 ;然后 XML 中的每段 SQL 会有一个id 跟 DAO 中的接口进行关联。 首先我们要知道每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的, SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。 但 SqlSessionFactory 是一个接口,它里面其实就两个方法: openSession 、 getConfiguration 其中, openSession 方法是为了获取一个 SqlSession 对象,完成必要数据库增删改查功能。但是, SqlSessionFactory 属性太少了,所以需要 getConfiguration 的配合;来配置 mapper 映射文件、SQL 参数、返回值类型、缓存等属性。 /** * Creates an {@link SqlSession} out of a connection or a DataSource * * @author Clinton Begin */ public interface SqlSessionFactory { SqlSession openSession();

其乐后台管理系统SSM(二)--简单教会你如何配置(spring+springmvc+mybatis)环境

偶尔善良 提交于 2020-03-16 10:24:13
项目目录 项目简介(一) https://my.oschina.net/u/4115134/blog/3193902 简单教会你如何配置环境(二): https://my.oschina.net/u/4115134/blog/3195801 1. 项目环境搭建(SSM整合) 1.1 项目环境搭建 该项目已经是我已经完结的一个后台管理系统,我已将其发布在了github上 如若感兴趣,希望多指教: https://github.com/XINGGou/qile 1.创建Maven的简单web工程 刚刚创建成功时,pom文件会报错,是因为缺少WEN-INF和web.xml的原因故无需担心,若创建后依旧报错可以右键项目选择maven》》点击update project 2.添加WEB-INF目录并再下方添加web.xml文件和pages文件夹 ==pages中是前端内容请到我的github上进行下载:== https://github.com/XINGGou/qile 3.创建包路径和目录 4.再pom.xml文件中引入junit、log4j、servlet等必备依赖包 <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10

mybatis分页插件

若如初见. 提交于 2020-03-15 19:06:59
如果你也在用 Mybatis ,建议尝试该分页插件,这个一定是 最方便 使用的分页插件。 该插件目前支持 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库分页。 点击提交 BUG 1. 版本说明 1.1. 最新版本为 3.4.2 PageInfo 中的 judgePageBoudary 方法修改: isLastPage = pageNum == pages && pageNum != 1; // 改为 isLastPage = pageNum == pages; 1.2. 版本 3.4.1 重大 bug 修复, SqlParser 解析 sql 失败的时候返回了不带 count(*) 的 sql ,导致查询失败。 产生原因,由于 SqlParser 在系统中出现的位置修改后,导致这里出现错误。 强烈推荐各位更新到最新版本。 增加了对 @SelectProvider 注解方法的支持,不使用这种方式的不影响 对基本逻辑进行修改,减少反射调用和获取 BoundSql 次数 对支持的数据库全部通过完整测试 虽然变化大,但是影响范围小,不特殊通知各位了。 1.3. 版本 3.4.0 2. 使用方法 分页插件项目中的正式代码一共有个 5 个 Java 文件,这 5 个文件的说明如下: Page<E>[ 必须 ] :分页参数类,该类继承

崛起于Springboot2.X + Mybatis:Provider方式(5)

主宰稳场 提交于 2020-03-15 17:15:13
《SpringBoot2.X心法总纲》 1、 公共方法抽象类 import java.lang.reflect.ParameterizedType; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.mapper.MapperFactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; public abstract class SqlMapperBasedServiceBase<MapperClass> implements InitializingBean { protected MapperClass _mapper; @Autowired SqlSessionFactory _sqlSessionFactory; public void afterPropertiesSet() throws Exception { MapperFactoryBean factory = new MapperFactoryBean(); factory

从零开始学SpringBoot之Mybatis-注解

大兔子大兔子 提交于 2020-03-15 17:11:48
需求来源: 在视频中,有一条消息:“SpringBoot会将mybaits配置文件sqlmapconfig.xml的视频与mapper.xml集成吗?看到直接支付的集成,结果是快速开发模式,SQL是在类中编写的,想看看配置模式之神创建一个吗?”粉丝需要,这才是真正的需要。好吧,胡说太多了,不好,不好。让我们直说重点。 本节概述: (1) 关于mybatis (2) 注解思想 (3) 新建项目并添加依赖项包 (4) 创建启动类App.java (5) 编写实体类演示 (6) 写映射接口DemoMapper (7) 编写服务类DemoService (8) 写控制类DemoController (9) 配置数据库连接池 (10) 测试 让我们来看看这个部分: (1) 关于mybatis 资料来源:mybatis是Apache和iBatis的一个开源项目。2010年,这个项目从Apache软件基金会迁移到Google代码中,并重命名为mybatis。2013年11月搬到GitHub。 简介:mybatis是一个优秀的持久层框架,支持常见的SQL查询、存储过程和高级映射。Mybatis几乎消除了JDBC代码和参数的所有手动设置以及结果集的检索。Mybatis使用简单的XML或注释进行配置和原始映射,将Java的接口和POJOs(普通Java对象)映射到数据库中的记录。 (2) 注解思想

mybatis中使用<if>标签test判断字符串中出现的问题

十年热恋 提交于 2020-03-15 12:20:46
今天调试一个非常简单的test判断字符串查询语句,怎么调试都是不好用,后来百度才发现,是我写的test标签写错了,我写成: <if test="record.current != null and record.current=='1' " > 注意:1旁边是单引号 正确写法: <if test="record.current != null and record.current=='1'.toString()" > 或者: <if test = 'record.current != null and record.current=="1" '> 注意:1 旁边是双引号 因为mybatis会把'1'解析为字符,java是强类型语言,所以不能这样写,需要双引号 来源: https://www.cnblogs.com/XtsLife/p/12496720.html