
mybatis
RB_VER
这个作者很懒,什么都没留下…
展开
-
Mybatis中通过注解使用二级缓存
在Mybatis中使用注解开发一对多的查询配置的基础上进行修改:SqlMapConfig.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.or...原创 2020-04-10 16:41:29 · 439 阅读 · 0 评论 -
Mybatis中使用注解开发一对多的查询配置
在Mybatis中使用注解开发一对一的查询配置的基础上进行修改:User类:package com.qublog.domain;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { private ...原创 2020-04-10 16:26:00 · 312 阅读 · 0 评论 -
Mybatis中使用注解开发一对一的查询配置
SqlMapConfig.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">&...原创 2020-04-10 16:09:55 · 294 阅读 · 0 评论 -
Mybatis中使用注解建立实体类属性和数据库表中列的关系
UserDao接口:package com.qublog.dao;import com.qublog.domain.User;import org.apache.ibatis.annotations.*;import java.util.List;//在mybatis中针对crud一共有四个注解//@Select @Insert @Update @Deletepublic in...原创 2020-04-10 15:24:06 · 951 阅读 · 0 评论 -
Mybatis中使用注解实现CRUD
pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h...原创 2020-04-10 09:11:15 · 214 阅读 · 0 评论 -
Mybatis中的缓存
什么是缓存?操作系统和计算机组成原理等课程都有详细介绍,简单来说就是存在于内存中的临时数据。为什么使用缓存?减少和数据库的交互次数,提高执行效率。什么样的数据能使用缓存,什么样的不能用?适用于缓存:经常查询并且不经常改变。数据的正确与否对最终结果影响不大的。不适用于缓存:经常改变的数据。数据的正确与否对最终结果影响很大的。例如:商品的库存、银行的汇率、股市的牌价。Myb...原创 2020-04-09 09:51:14 · 101 阅读 · 0 评论 -
Mybatis中二级缓存的使用
二级缓存指的是mybatis中SqlSessionFactory对象的缓存,由同一个SqlSessionFactory对象创建的SqlSession共享其缓存二级缓存的使用步骤:让mybatis框架支持二级缓存(在SqlMapConfig.xml中配置)。让当前的映射文件支持二级缓存(在UserDao.xml中配置)。让当前的操作支持二级缓存(在select标签中配置)。SqlMap...原创 2020-04-09 09:49:58 · 478 阅读 · 0 评论 -
Mybatis中触发清空一级缓存的情况
在Mybatis中一级缓存的使用的基础上进行修改:UserDao类:package com.qublog.dao;import com.qublog.domain.User;import java.util.List;//用户的持久层接口public interface UserDao { //查询所有用户,同时获取到用户下所有账户的信息 List<Us...原创 2020-04-09 09:14:39 · 2394 阅读 · 0 评论 -
Mybatis中一级缓存的使用
User类:package com.qublog.domain;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { private Integer id; private String us...原创 2020-04-08 17:09:31 · 342 阅读 · 0 评论 -
Mybatis中的延迟加载
先提出一个问题:在一对多中,有一个用户,他有100个账户。在查询用户的时候,要不要把关联的账户查出来?在查询账户的时候,要不要把关联的用户查出来?第一种情况,在查询用户时,用户下的账户信息应该是什么时候使用什么时候查询。第二种情况,在查询账户时,账户所属用户信息应该是随着账户查询时一起查询出来。什么是延迟加载?在真正使用数据时才发起查询,不用的时候不查询,也叫按需加载(懒加载)。什么是立...原创 2020-04-08 15:33:23 · 113 阅读 · 0 评论 -
Mybatis中一对多查询实现延迟加载
基于Mybatis中一对一查询实现延迟加载的基础上进行修改:AccountDao接口:package com.qublog.dao;import com.qublog.domain.Account;import java.util.List;public interface AccountDao { //查询所有账户,同时还要获取到当前账户的所属用户信息 List&...原创 2020-04-08 15:31:06 · 351 阅读 · 0 评论 -
Mybatis中一对一查询实现延迟加载
User类:package com.qublog.domain;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { private Integer id; private String us...原创 2020-04-08 14:58:52 · 281 阅读 · 0 评论 -
Mybatis中多表查询
表之间的关系有一对多、多对一、一对一、多对多。举例:一个用户可以下多个订单,多个订单属于同一用户,用户和订单就是一对多,订单和用户就是多对一。一个人只能有一个身份证号,人和身份证号就是一对一。一个学生可以被多个老师教过,一个老师可以教多个学生,老师和学生之间就是多对多。特例:如果拿出一个订单,它都只能属于一个用户,所以mybatis就把多对一看成了一对一。多对一(等同于一对一)和一对...原创 2020-04-07 16:39:50 · 139 阅读 · 0 评论 -
Mybatis中用户到角色的多对多操作
基于Mybatis中从角色到用户的多对多操作修改。User类:package com.qublog.domain;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { private Integer...原创 2020-04-07 16:37:52 · 442 阅读 · 0 评论 -
Mybatis中从角色到用户的多对多操作
role表:User表:user_role表:Role类:package com.qublog.domain;import java.io.Serializable;import java.util.List;public class Role implements Serializable { private Integer roleId; private...原创 2020-04-07 16:06:07 · 330 阅读 · 0 评论 -
Mybatis中一对多查询的实现
User类:package com.qublog.domain;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable { private Integer id; private String us...原创 2020-04-07 11:40:36 · 139 阅读 · 0 评论 -
Mybatis中通过建立实体类关系进行一对一查询
Account类:package com.qublog.domain;import java.io.Serializable;public class Account implements Serializable { private Integer id; private Integer uid; private Double money; //从表实...原创 2020-04-07 10:50:45 · 449 阅读 · 0 评论 -
Mybatis中通过实现子类方式进行一对一查询
这种方式并不常用。account表,其中uid是外键:user表:User类:package com.qublog.domain;import java.io.Serializable;import java.util.Date;public class User implements Serializable { private Integer id; pr...原创 2020-04-07 10:23:13 · 575 阅读 · 1 评论 -
Mybatis中sql标签的使用
sql标签的作用是抽取重复sql语句。在UserDao.xml中添加下面语句:<!-- 抽取重复sql语句 --> <sql id="defaultUser"> select * from user; </sql>并修改部分代码:<!-- 配置查询所有 --> <select id="findA...原创 2020-04-07 08:15:41 · 909 阅读 · 1 评论 -
Mybatis中动态SQL的使用
一般情况:UserDao.java中加入://根据传入的参数条件查询 List<User> findUserByCondition(User user);UserDao.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org/...原创 2020-04-07 08:05:40 · 134 阅读 · 0 评论 -
Mybatis中事务的分析
首先需要了解下面问题:什么是事务?百度百科所给出的定义:数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。事务的四大特性?原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在...原创 2020-04-06 11:17:42 · 247 阅读 · 0 评论 -
Mybatis中连接池的分析
一般在实际开发中都会使用连接池(即POOLED),因为它可以减少获取连接的次数。连接池就是用于存储连接的一个容器,容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到同一个连接,该集合必须使用队列的特性:先进先出。mybatis的连接池提供了三种方式的配置,配置的位置:主配置文件中dataSource标签,type属性就是表示采用何种连接池方式。type属性的取值:POOL...原创 2020-04-06 10:23:11 · 412 阅读 · 0 评论 -
Mybatis中的typeAliases和package标签
SqlMapConfig.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">&...原创 2020-04-04 16:37:57 · 806 阅读 · 0 评论 -
Mybatis中properties标签
SqlMapConfig.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">&...原创 2020-04-04 16:19:07 · 520 阅读 · 0 评论 -
Mybatis中使用代理dao的执行过程分析
首先基于Mybatis的CRUD实现,我们分析如下:找到SqlSession的实现类DefaultSqlSession并找到它的getMapper方法:继续进入Configuration类中找到它的getMapper方法:继续进入mapperRegistry类中找到getMapper方法:接着进入MapperProxyFactory类中找到newInstance方法:这里可以看...原创 2020-04-04 15:26:37 · 198 阅读 · 0 评论 -
Mybatis中使用dao实现类的执行过程分析
在Mybatis实现CRUD(基于dao实现类)的基础上,我们设置断点并进行观察。运行调试时,我们可以看出这里session是DefaultSqlSession对象:我们进入DefaultSqlSession类进一步分析:可以看出我们最终调用的selectList函数是第三个,我们继续打断点:通过调试我们可以看出这里Executor的实现类是CachingExecutor,接着进...原创 2020-04-04 14:09:07 · 544 阅读 · 0 评论 -
Mybatis实现CRUD(基于dao实现类)
之前的文章都是使用代理dao的方式进行开发,这篇文章将介绍自己实现dao实现类的方式。pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch...原创 2020-04-03 14:17:15 · 273 阅读 · 0 评论 -
Mybatis返回值的深入
首先给出一个重要前提:mysql数据库在windows下不区分大小写,而在linux中严格区分大小!当POJO中的属性名和数据库中表的列名不一致时,查询结果与POJO就无法匹配,从而导致出错。解决以上问题最直接的方法就是起别名,同时这种方式执行效率也是最高的,因为在SQL语句层面,具体实施如下:POJO:package com.qublog.domain;import java.io....原创 2020-04-02 16:58:45 · 180 阅读 · 0 评论 -
Mybatis参数的深入(OGNL表达式)
首先介绍一下OGNL表达式(Object Graphic Navigation Language),它是通过对象的取值方法来获取数据,在写法上把get给省略了。例如:类中的写法:user.getName();OGNL的写法:user.usernamemybatis中之所以可以直接写username,而不用加.user,是因为在parameterType中已经提供了属性所属的类。下面以M...原创 2020-04-02 15:46:34 · 805 阅读 · 0 评论 -
Mybatis的CRUD实现
首先导入依赖:pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc...原创 2020-04-02 11:02:49 · 250 阅读 · 0 评论 -
Mybatis入门使用【5】(简单分析mybatis执行查询的过程-基于注解)
在Mybatis入门使用【4】(简单分析mybatis执行查询的过程-基于XML)基础上进行修改:整个过程思路与基于xml时一样。首先将SqlMapConfig.xml修改如下:<?xml version="1.0" encoding="UTF-8"?><!-- mybatis的主配置文件 --><configuration> <!-- ...原创 2020-04-01 10:48:50 · 188 阅读 · 0 评论 -
Mybatis入门使用【4】(简单分析mybatis执行查询的过程-基于XML)
import com.qublog.dao.UserDao;import com.qublog.domain.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;im...原创 2020-04-01 09:34:05 · 184 阅读 · 0 评论 -
Mybatis入门使用【2】(注解方式)
用注解方式使用mybatis只需(在【1】Mybatis入门使用(XML方式)基础上):把UserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句。在SqlMapConfig.xml中的mapper配置中,使用class属性指定dao接口的全限定类名。SqlMapConfig.xml<?xml version="1.0" encoding="UT...原创 2020-03-31 10:08:58 · 115 阅读 · 0 评论 -
Mybatis入门使用【3】(实现DAO接口)
在Mybatis入门使用【1】(XML方式)的基础上:在dao目录下新建impl包并实现UserDaoImpl类,并完成相应的查询函数功能;package com.qublog.dao.impl;import com.qublog.dao.UserDao;import com.qublog.domain.User;import org.apache.ibatis.session.S...原创 2020-03-31 10:49:10 · 183 阅读 · 0 评论 -
Mybatis入门使用【1】(XML方式)
Mybatis入门Mybatis的环境搭建创建maven工程并导入相应依赖(在pom.xml文件中);<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM...原创 2020-03-31 09:43:23 · 223 阅读 · 0 评论