科技D人生
金融科技领域技术 & 云基础设施 & 云原生微服务 & 云原生时代标准交付 & PAAS 技术研发 & Kubernetes & 项目与技术管理
展开
-
MyBatis学习总结(27)——Mybatis-Plus使用小技巧
1、条件查询(QueryWrapper)如果说,我们需要查询的 SQL 语句如下:SELECT * FROM user_info WHERE age = 20那么对应的代码可以为:QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();queryWrapper.eq("age", 20);List<UserInfo> list = userInfoMapper.selectList(qu转载 2020-10-22 18:28:14 · 916 阅读 · 0 评论 -
MyBatis学习总结(26)——Mybatis源码中使用了哪些设计模式?
分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFa...转载 2019-04-15 11:29:49 · 632 阅读 · 0 评论 -
MyBatis学习总结(25)——Mybatis Generator generatorConfig.xml配置文件详细说明
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_...原创 2018-08-01 18:31:37 · 5795 阅读 · 0 评论 -
MyBatis学习总结(24)——Mybatis常见问题汇总
1. #{}和${}的区别是什么?#{}是预编译处理,${}是字符串替换。Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。2. 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么...原创 2018-06-07 09:24:50 · 9376 阅读 · 8 评论 -
MyBatis学习总结(23)——Mybatis打印Sql语句配置
一、现在spring-mybatis.xml中配置: 如下图二、mybatis-config.xml中配置settings如下图三、总结:当然打印mybatis的日志方式比较多,SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING,可以根据自己的需要进行配置原创 2017-12-29 11:05:47 · 1227 阅读 · 0 评论 -
MyBatis学习总结(22)——Mybatis自增长ID获取
在使用Mybatis作为ORM的项目中,如果多个关联数据在同一个事物中时,第一个表插入数据时其主键为自增的id,第二个表插入数据时需要关联插入的第一个表数据的id作为外键,并且第一表中的数据除了主键id外都其余项目都不具有唯一性。此时可以使用如下的方法在第一表插入数据后将其分配的自增id赋值给插入的对象。1、mybatis中mapping文件的配置配置对于表的mapping的xml文件,在原创 2017-09-15 15:31:45 · 2519 阅读 · 1 评论 -
MyBatis学习总结(21)——自定义MyBatis Generator插件
一些自定义的mybatis-generator 代码生成器部分的插件: 1、自定义的序列化 类文件 插件 ;2、mysql oracle 两种数据源的分页配置插件 根据 _databaseId 的区别来区分当前数据源是oracle还是mysql,方便数据迁移过程中的分页逻辑不报错; 3、取消 Example 类文件的生成,在进行代码生成器的过程中,生成 selectCoun原创 2017-09-11 14:31:07 · 2502 阅读 · 0 评论 -
MyBatis学习总结(20)——MyBatis完全使用指南
MyBatis作为一个轻量的SQL映射框架,确实很简单,但是知识点挺多,实际使用中还是会有时想不起来某个标签该怎么写,所以整理了这篇文章,以备查询。由于MyBatis如此简单,使得这一篇文章基本把实际使用中常碰到的事情都涵盖了,包括:MyBatis中的一些概念MyBatis包含的内容SQL映射动态SQL一、 MyBatis中的一些概念MyBatis的架构1.原创 2017-01-20 09:48:19 · 882 阅读 · 0 评论 -
MyBatis学习总结(19)——Mybatis传多个参数(三种解决方案)
据我目前接触到的传多个参数的方案有三种。第一种方案 DAO层的函数方法 Public User selectUser(String name,String area);对应的Mapper.xml select * from user_user_t where user_name = #{0} and user_area=#{1}其中,#{0}代表接收的是dao层中原创 2016-08-25 16:42:58 · 2458 阅读 · 0 评论 -
MyBatis学习总结(18)——MyBatis与Hibernate详细比较
也用了这么久的Hibernate和MyBatis了,一直打算做一个总结,就他们之间的优缺点说说我自己的理解:首先,Hibernate是一个ORM的持久层框架,它使用对象和我们的数据库建立关系,在Hibernate中,操作数据库实际上时通过对象状态的改变来改变数据中对应表的值,此时就是通过hql来操作数据库的,就不在通过sql来直接操作我们的数据库。我认为,最能体原创 2016-08-22 09:30:38 · 2429 阅读 · 0 评论 -
MyBatis学习总结(17)——Mybatis分页插件PageHelper
如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。想要使用分页插件?请看如何使用分页插件。物理分页该插件目前支持以下数据库的物理分页:OracleMysqlMariaDBSQLiteHsqldbPostgreSQLDB2SqlServer(2005,2008)InformixH2SqlServer2012配...原创 2016-07-06 14:41:34 · 25038 阅读 · 9 评论 -
MyBatis学习总结(16)——Mybatis使用的几个建议
1.Mapper层参数为Map,由Service层负责重载。 Mapper由于机制的问题,不能重载,参数一般设置成Map,但这样会使参数变得模糊,如果想要使代码变得清晰,可以通过service层来实现重载的目的,对外提供的Service层是重载的,但这些重载的Service方法其实是调同一个Mapper,只不过相应的参数并不一致。 也许有人会想,为什么不在Service原创 2016-05-20 14:42:39 · 16077 阅读 · 1 评论 -
MyBatis学习总结(15)——定制Mybatis自动代码生成的maven插件
======================================================================================================================================================================================================原创 2016-04-28 14:37:34 · 2334 阅读 · 0 评论 -
MyBatis学习总结(14)——Mybatis使用技巧总结
1、 区分 #{} 和 ${}的不同应用场景1)#{} 会生成预编译SQL,会正确的处理数据的类型,而${}仅仅是文本替换。对于SQL: select * from student where xCode = ‘S123456’;如果使用#{}那么生成的SQL为:select * from student where xCode = ? 传的值为’S123456’;如果使用原创 2016-01-15 10:57:41 · 2955 阅读 · 0 评论 -
MyBatis学习总结(13)——Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,将数据库中列数据复制到对象的相应属性上,可以用于复制查询,两者不能同时用。1、resultType返回单个实例sel原创 2016-01-15 10:37:04 · 5299 阅读 · 2 评论 -
MyBatis学习总结(12)——Mybatis+Mysql分页查询
分页插件package cn.tsjinrong.fastfile.util;/** * @ClassName: Page * @Description: TODO(分页组件的父类,用来封装分页的 通用内容和逻辑) * @author zhanghaiyang * @date 2016年1月14日 下午12:37:55 * @Copyright © 2016上海通善互联网金融信息服务原创 2016-01-14 13:02:08 · 2872 阅读 · 0 评论 -
MyBatis学习总结(11)——MyBatis动态Sql语句
MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法MyBatis中用于实现动态SQL的元素主要有:ifchoose(when,otherwise)trimwheresetforeach 1、if对属性进行判断,如果不为空则执行判断条件原创 2016-01-05 11:23:44 · 4924 阅读 · 1 评论 -
MyBatis学习总结(10)——批量操作
一、mybatis中的批量操作 批量操作核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个其他的也不成问题1、最新在做的短信平台,要批量插入群发的短信记录:当然批量操作还有:批量删除,更新,插入,更新。批量删除: delete from 表名 where groupon_id in原创 2015-12-29 12:49:54 · 2112 阅读 · 0 评论 -
MyBatis学习总结(9)——使用MyBatis Generator自动创建代码
由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。 使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单原创 2015-12-17 14:39:54 · 9262 阅读 · 2 评论 -
MyBatis学习总结(8)——Mybatis3.x与Spring4.x整合
一、搭建开发环境1.1、使用Maven创建Web项目 执行如下命令:mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-mybatis3 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 如下图所示:原创 2015-12-25 14:49:11 · 2271 阅读 · 0 评论 -
MyBatis学习总结(7)——Mybatis缓存
一、MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 2. 二级缓存与一级缓存其机制相同,默认也是采用 Pe原创 2015-12-25 14:47:39 · 2012 阅读 · 0 评论 -
MyBatis学习总结(6)——调用存储过程
一、提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert i原创 2015-12-25 14:46:47 · 2169 阅读 · 0 评论 -
MyBatis学习总结(5)——实现关联表查询
一、一对一关联 1.1、提出需求 根据班级id查询班级信息(带老师的信息)1.2、创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。 1 CREATE TABLE teacher( 2 t_id INT PRIMARY KEY AUTO_INCREMENT, 3原创 2015-12-25 14:45:56 · 2287 阅读 · 0 评论 -
MyBatis学习总结(4)——解决字段名与实体类属性名不相同的冲突
一、准备演示需要使用的表和数据CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT);INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23);原创 2015-12-25 14:44:30 · 2119 阅读 · 0 评论 -
MyBatis学习总结(3)——优化MyBatis配置文件中的配置
一、连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 xml version="1.0" encoding="UTF-8"?> 2 DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http原创 2015-12-25 14:43:31 · 2093 阅读 · 0 评论 -
MyBatis学习总结(2)——使用MyBatis对表执行CRUD操作
一、使用MyBatis对表执行CRUD操作——基于XML的实现1、定义sql映射xml文件 userMapper.xml文件的内容如下: 1 xml version="1.0" encoding="UTF-8" ?> 2 DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybati原创 2015-12-25 14:42:27 · 2293 阅读 · 0 评论 -
MyBatis学习总结(1)——MyBatis快速入门
一、Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。二、my原创 2015-12-25 14:40:38 · 2736 阅读 · 0 评论