7 码农建

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 10w+

MyBatis_MyBatis之逆向工程

1.引入 我们在编写数据库的持久化操作的时候,我们先知道数据库的数据表内容,然后我们会根据数据库表的字段信息去编写对应的javaBean内容,然后根据这一些内容写出查询所需的sql,然后我们会在根据javaBean内容去编写映射文件内容。那么这一个过程在使用java和MyBatis的时候基本上每一个数据库表都需要进行的操作。那么如果有一个技术能够做到把这一个过程直接实现出来。那么就可以把我们需要做的功能内容就会节省下来很多。那么下面我们一起来看一下MyBatis提供的逆向过程操作。2.MyB..

2020-08-22 12:17:19

MyBatis_MyBatis之缓存

1.引入 我们知道持久化技术中的缓存是一个非常重要的内容。缓存可以有效的解决后台和数据库之间的数据交互的性能问题。MyBatis 包含一个非常强大的查询缓存特性,它可以非 常方便地配置和定制。缓存可以极大的提升查询效率。2.MyBatis缓存 MyBatis中分为一级缓存和二级缓存。 (1).一级缓存:(本地缓存):sqlSession级别的缓存。一级缓存是一直开启的;SqlSession级别的一个Map 与数据库同一次会话期间查询到的数据会放在本地缓存中...

2020-08-13 18:47:10

MyBatis_MyBatis之动态SQL之抽取可重用的SQL片段

1.引入 我们在编写基本的增删改查的时候会经常重复的使用到相同的SQL语句。那么为了方便操作以及减少编写代码的工作量。MyBatis为我们提供了可以重复使用SQL片段。2.取相关sql片段以及使用注意事项抽取可重用的sql片段。方便后面引用(1)、sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用(2)、include来引用已经抽取的sql:(3)、include还可以自定义一些property,sql标签内部就能使用自定义的属性 ...

2020-08-10 23:46:36

MyBatis_MyBatis之动态SQL之内置参数

1.引入 在映射文件中,我们可以通过传递参数给我们自己写的sql语句进行参数的传递,同时MyBatis自己也提供了俩个内置的参数。也就是说我们使用ONGL判断传递的参数,内置的参数也可以进行判断和取值操作。2.MyBatis俩个内置参数(1)._parameter:代表整个参数 单个参数:_parameter就是这个参数。 多个参数:参数会被封装为一个map;_parameter就是代表这个map。(2)._databaseId:如果配置了da...

2020-08-10 23:33:06

MyBatis_MyBatis之动态SQL之常用OGNL表达式

1.引入 我们知道

2020-08-09 21:25:30

MyBatis_MyBatis之查询结果映射resultMap_discriminator(鉴别器)

1.引入 上面我们分别说了对单个对象、Colection的一个封装,那么下面,我们说一个对参数传递的一个分类discriminator。mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为。2.使用测试功能需求:封装Employee:如果查出的是女生:就把部门信息查询出来,否则不查询;如果是男生,把last_name这一列的值赋值给email;(1).映射文件信息配置<!-- <discriminator javaType=""&...

2020-08-02 21:51:28

MyBatis_MyBatis之查询结果映射resultMap_Collection封装

1.引入 通过上一个内容,我们对resultMap有了一个基本的认识。同时我们封装的情况是属于一对一的一个情况。但是呢,有时候我们也会遇到一对多的情况。那么接下来我们一起来看一下如何处理一对多的情况。2.使用resultMap处理一对多的情况(1).定义相关的实体对象//部门实体对象:一个部门对应多个员工public class Department { private Integer id; private String departmentName; private ...

2020-08-02 21:35:22

MyBatis_MyBatis之查询结果映射resultMap_单个实体或者单个嵌套实体封装

1.引入 我们之前把查询的结果按照对象、对象集合进行了一个加载。但是呢,这一个过程是怎么实现的呢?如果说我们的查询结果和我们的封装对象之间无法进行连接。那么这一个时候又怎么处理?那么下面我们就一起来看看MyBatis的一个强大的功能:resultMap,实现高级结果集映射。2.自定义结果映射规则...

2020-08-02 11:31:55

MyBatis_MyBatis之查询返回对象集合

1.引入 通过前面几节课程,我们了解了使用MyBatis实现基本的增删查改的操作,然后我们又说了一下载增删查改中的参数传递问题。我们之前的操作主要是针对一个对象进行的操作。那么当我们的返回值是一个集合的时候该如何进行处理呢?那么现在我们较为详细的了解一下查询操作。2.实现返回值是一个对象集合(List<Object>)的操作(1).在接口中定义编写查询的方法public List<Employee> getEmpsByLastNameLike(String ..

2020-08-01 11:08:59

MyBatis_MyBatis之参数传递

1.引入 我们通过上一节课实现了对一个实体对象的基本的增删查改操作,其中,我们在映射文件和测试的代码中添加了一下参数。那么接下来我们就一起来看看MyBatis中参数是如何传递的。2....

2020-07-29 22:49:06

MyBatis_MyBatis映射文件之实现基本的CURD

1.引入

2020-07-29 00:10:47

MyBatis_MyBatis之全局配置文件

1.引入 我们呢按照MyBatis官方给的示例,完成了我们的第一个MyBatis的HelloWorld。那么我们完成这一个动作是把那些配置文件等相关内容直接进行了复制粘贴,那么下面呢我们就一起来看一下这一些配置文件的详细内容。2.开发环境绑定dtd约束,为了方便消息提示(略)3.配置文件内容信息详解(可以参考官方文档)(1).propertis(引入外部配置文件) 功能:mybatis可以使用properties来引入外部properties配置文件的内容;...

2020-07-26 23:30:14

MyBatis_MyBatis之HelloWorld代码改进

1.引入 上一节课,我们使用MyBatis实现了对数据的查找功能。但是呢这里面有一个问题。什么问题呢,就是我们的这一个代码:Admin Admin = openSession.selectOne("com.cn.entity.AdminMapper.getAdmById", 1);//参数给的是Object类型的参数,也就是说可以传递任何形式的参数,如何我们传入了一个和数据库字段中类型不一致的参数。那么它不会报错。但是没有查询的结果。为了解决这一个问题。MyBatis给我们提供了一个接..

2020-07-04 17:19:46

MyBatis_MyBatis之HelloWorld

1.引入 上一次课,我们和大家说了一下MyBatis的优点以及MyBatis需要下载的内容。下面我们就和大家一起进入MyBatis的学习。2.HelloWord创建过程(1).创建一个数据库表adminDROP TABLE IF EXISTS `admin`;CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password`...

2020-06-28 23:29:40

MyBatis_MyBatis简介

1.引入 我们在学完MySQL数据库的基础内容之后,我们就开始学习一下数据库持久化操作的相关内容,那么我们之前也学习过一些相关的内容,如:最基础的JDBC,之后的Dbutils,在之后的JdbcTemplate等这些内容。但是呢我们学习这一些操作在实际的项目开发中对于我们的需求还是不够好。那么下面呢我们就一起来学习一下数据库持久化操作框架MyBatis相关的一下内容。2.数据库持久化操作对比(1).Jdbc(Dbutils/JdbcTemplate)进行数据持久化的过程(2)....

2020-06-28 16:32:21

MySQL_MySQL锁机制之间隙锁

1.引入 我们接下来的话针对一种比较特殊的数据记录来进行一个操作,那么就是如果在一个情况下,要求我们的数据记录是连续的。那么当我们的数据出现了缺失,也就是产生了间隙。那么这一个时候又会出现什么样子的问题呢?,我们一起来看看。2.间隙锁案例测试(1).创建测试数据库表DROP TABLE IF EXISTS `admin`;CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` var...

2020-06-27 12:16:08

MySQL_MySQL锁机制之行锁理论

1.引入 我们在之前的课程中,和大家说了一下数据库锁的相关分类,上几节课程中,我们说了Myisam存储引擎的读锁和写锁,那么接下来呢,我们就一起来看一下行锁。2.行锁的特点 行锁偏向于InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定的粒度最小,发生锁冲突的概率最小,并发度也最高。3.行锁的一个基本案例(1).创建测试数据库表boysDROP TABLE IF EXISTS `boys`;CREATE TABLE `boys` ( `id` int(1...

2020-06-25 17:12:55

MySQL_MySQL锁机制之写锁操作

1.引入 上一节课,我们呢,查看了在对一个表添加读锁,然后在不同的会话中查看对数据的不同操作,可以发现,它可以

2020-06-25 11:43:34

MySQL_MySQL锁机制之读锁操作

1.引入 我们在之前的线程中,已经初步接触到了锁的一些相关的内容。那么当时的我们使用售票为例子,列举了在只剩一张票的时候计算机程序在实现购票中不加锁出现的各种问题。当我们再线程中加了锁以后,就可以保证计算机对这一个数据的争抢一个有序的处理。那么在MySQL数据库中。我们同样需要学习数据库的锁机制来解决一些相关的问题。2.MySQL数据库锁概述3.数据库锁的分类 按照对数据的操作类型来分,可以分为读锁和写锁。 读锁:所谓的读锁,也叫共享锁, 按照对数...

2020-06-21 23:44:20

MySQL_MySQL查询截取分析之全局查询日志

1.引入 一般的情况下,我们还可以使用全局查询日志来分析我们的系统中存在的问题,但是值得注意的值,在使用全局查询日志的时候不能够在生产的环境下使用这一个功能。我们只能够在测试的环境下使用这一个功能。能够把所有的SQL的操作都可抓取出来看看其效果以及执行的流程内容。2.使用讲解以及测试(1).在配置文件中配置然后使用,主要的配置信息如下:在MySQL的配置文件下加入如下的配置信息:#开启general_log = 1#记录日志的文件路径general_log_file = /..

2020-06-19 00:11:21

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 分享达人
    分享达人
    成功上传6个资源即可获取