
mybatis
wulitaot
这个作者很懒,什么都没留下…
展开
-
1~对原生态jdbc程序(单独使用jdbc开发)问题总结
1.1 环境java环境:jdk1.7.0_72eclipse:indigomysql:5.1 1.2 创建mysql数据导入下边的脚本: sql_table.sql:记录表结构sql_data.sql:记录测试数据,在实际企业开发中,最后提供一个初始化数据脚本 1.3 jdbc程序使用jdbc查询mysql数据库中用户表的记录。 创建java工程,加入jar包: 数据库驱动包(...转载 2018-03-29 11:29:28 · 180 阅读 · 0 评论 -
18~mybatis逆向工程
1.1 什么是逆向工程mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..)企业实际开发中,常用的逆向工程方式:由于数据库的表生成java代码。1.2 下载逆向工程 1.3 使用方法(会用) 1.3.1 运行...原创 2018-07-16 16:47:32 · 111 阅读 · 0 评论 -
17~spring和mybatis整合
1.1 整合思路 需要spring通过单例方式管理SqlSessionFactory。spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成)持久层的mapper都需要由spring进行管理。1.2 整合环境创建一个新的java工程(接近实际开发的工程结构)ja...原创 2018-07-16 16:47:45 · 235 阅读 · 0 评论 -
16~mybatis查询缓存之二级缓存
ehcache是一个分布式缓存框架分布缓存我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群部署方式)不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统开发。所以要使用分布式缓存对缓存数据进行集中管理。mybatis无法实现分布式缓存,需要和其它分布式缓存框架进行整合。整合方法(掌握)mybatis提供了一个cache接口,如果要实现自己的缓存逻辑,实...原创 2018-07-16 16:48:22 · 268 阅读 · 0 评论 -
15~mybatis查询缓存之二级缓存
本文主要讲mybatis的二级缓存,二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。二级缓存原理首先开启mybatis的二级缓存.sqlSession1去查询用户id为1的用户信息,查询到用户信息会将查询数据存储到二级缓存中。如果SqlSession3去...原创 2018-07-16 16:49:09 · 166 阅读 · 0 评论 -
14~mybatis查询缓存之一级缓存
本文主要讲mybatis的一级缓存,一级缓存是SqlSession级别的缓存。查询缓存mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。mybaits提供一级缓存,和二级缓存。一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域...原创 2018-07-16 16:49:45 · 106 阅读 · 0 评论 -
13~mybatis延迟加载
1.1 什么是延迟加载resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。需求:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。延迟加载:先从单表查询、需要时再从...原创 2018-07-16 16:50:09 · 115 阅读 · 0 评论 -
12~高级结果集映射之多对多查询
本文实现多对多查询,查询用户及用户购买商品信息。示例查询主表是:用户表关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表:orders、orderdetail、itemssqlSELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdet...原创 2018-07-16 16:50:41 · 211 阅读 · 0 评论 -
11~高级结果集映射之一对多查询
本文实现一对多查询,查询订单及订单明细的信息示例sql确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可。SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdetail_id, orderdetail.it...原创 2018-07-16 16:47:13 · 151 阅读 · 0 评论 -
10~高级结果集映射之一对一查询
1.1 需求 查询订单信息,关联查询创建订单的用户信息 1.2 resultType 1.2.1 sql语句 确定查询的主表:订单表确定查询的关联表:用户表 关联查询使用内连接?还是外连接?由于orders表中有一个外键(user_id),通过外键关联查询用户表只能查询出一条记录,可以使用内连接。SELECT orders.*, USER.username...转载 2018-03-29 14:26:08 · 164 阅读 · 0 评论 -
9~demo实例-订单商品数据模型
本文对接下来几篇博客中用到的数据模型进行分析,并附上建表sql文件和测试数据文件数据模型分析思路每张表记录的数据内容分模块对每张表记录的内容进行熟悉,相当于你学习系统需求(功能)的过程。每张表重要的字段设置非空字段、外键字段数据库级别表与表之间的关系外键关系表与表之间的业务关系在分析表与表之间的业务关系时一定要建立在某个业务意义基础上去分析。数据模型分析用户表user:记录了购买商品的用户信息订单...转载 2018-03-29 14:18:08 · 2138 阅读 · 0 评论 -
8~mybatis的动态sql
1.1 什么是动态sqlmybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。 1.2 需求 用户信息综合查询列表和用户信息查询列表总数这两个statement的定义使用动态sql。 对查询条件进行判断,如果输入参数不为空才进行查询条件拼接。 1.3 mapper.xml<!-- 用户信息综合查询 #{userCustom.s...转载 2018-03-29 14:10:16 · 200 阅读 · 0 评论 -
7~mybatis核心 之 输出映射
1.1 resultType使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。 1.1.1 输出简单类型1.1.1.1 需求用户信息的综合查询...转载 2018-03-29 14:00:13 · 162 阅读 · 0 评论 -
6~mybatis核心 之 输入映射
通过parameterType指定输入参数的类型,类型可以是简单类型hashmappojo的包装类型1.1 传递pojo的包装对象1.1.1 需求完成用户信息的综合查询,需要传入查询条件很复杂(可能包括用户信息、其它信息,比如商品、订单的)1.1.2 定义包装类型pojo针对上边需求,建议使用自定义的包装类型的pojo。在包装类型的pojo中将复杂的查询条件包装进去。 其中,Us...转载 2018-03-29 13:52:16 · 122 阅读 · 0 评论 -
5~mybatis配置文件SqlMapConfig.xml
mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象)transactionManager(事务管理...转载 2018-03-29 13:47:01 · 137 阅读 · 0 评论 -
4~mybatis开发dao两种方法
1.1 SqlSession使用范围 1.1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder。在需要创建SqlSessionFactory时候...转载 2018-03-29 12:02:59 · 138 阅读 · 0 评论 -
3~mybatis入门程序
1.1 需求根据用户id(主键)查询用户信息根据用户名称模糊查询用户信息添加用户删除用户更新用户 1.1 环境java环境:jdk1.7.0_72eclipse:indigomysql:5.1 mybatis运行环境(jar包):从https://github.com/mybatis/mybatis-3/releases下载,3.2.7版本 lib下:依赖包mybatis-3.2.7....转载 2018-03-29 11:58:34 · 241 阅读 · 0 评论 -
2~mybatis框架原理
1.1 mybatis是什么? mybatis是一个持久层的框架,是apache下的顶级项目。mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/mybatis-3/releases)。mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需...转载 2018-03-29 11:34:43 · 153 阅读 · 0 评论 -
mybatis知识点总结
一 使用jdbc开发时,和mybatis相比的不足 1,数据库连接,使用时就创建,不使用就释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库的性能 解决:使用数据库连接池管理数据库的连接 2,sql语句使用硬编码在Java程序中,修改sql语句,就需要重新编译java代码,不利于系统维护 解决:把sql语句放在xml配置文件中,修改sql语句也不需要重新编译jav...原创 2017-03-22 20:14:52 · 193 阅读 · 0 评论