![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis
代码是Code
不太会编程
展开
-
MyBatis中的事务
MyBatis中的事务 什么是事务 事务主要用于处理操作量大,复杂度高的数据 事务必须满足的条件 **原子性:**一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 **一致性:**在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。原创 2020-09-30 17:28:27 · 256 阅读 · 0 评论 -
MyBatis连接池
MyBatis连接池 使用连接池可以减少获取连接所消耗的时间 MyBatis的3种连接池配置方式 配置位置:SqlMapConfig.xml中的dataSource标签, type属性表示了采用何种连接池方式. type属性的取值: POOLED : 采用传统的javax.sql.DataSource规范中的连接池, MyBatis中针对规范的实现. UNPOOLED : 采用传统的获取连接的方式, 虽然实现类javax.sql.DataSource接口, 但没有使用池的思想. JNDI : 采用服务器提原创 2020-09-30 17:27:17 · 122 阅读 · 0 评论 -
properties标签和typeAliases标签
properties引用标签 可用于引用jdbcConfig.properties外部配置信息 resource属性(常用): 用于指定配置文件的位置,也可以通过属性引用外部配置文件信息 url属性: 要求按照url的写法来写地址 协议+主机+端口+URI jdbcConfig.properties文件 jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC jd原创 2020-09-30 17:26:36 · 233 阅读 · 0 评论 -
MyBatis分页插件PageHelper
MyBatis分页插件PageHelper PageHelper 是国内非常优秀的一款开源的mybatis分页插件, 它支持基本主流与常用的数据库, 例如mysql, oracle, mariaDB, DB2, SQLite, Hsqldb等 GitHub项目地址: GitHub GitOSC项目地址: GitOSC PageHelper使用 1. 导入插件方式(两种) 1.1 引入jar包 从下列地址下载最新的jar包: https://oss.sonatype.org/content/rep原创 2020-09-23 09:46:27 · 116 阅读 · 0 评论 -
MyBatis中的注解开发
MyBatis中的注解开发 注解的使用 在MyBatis种如果使用注解开发, 则不需要编写Mapper.xml配置文件 并且在SqlMapConfig.xml中 <mappers>标签中的标签需使用<package> 或 <mapper class="">, 不能使用<mapper resource="">配置(指定配置文件配置) 在使用注解时, Mapper.xml配置文件不能同时存在, 否则报错 CRUD注解 MyBatis中的CRUD注解有4种: @Se原创 2020-08-12 22:36:18 · 137 阅读 · 0 评论 -
MyBatis中的缓存
MyBatis中的缓存 什么是缓存 存在于内存中的临时数据. 使用缓存可以减少和数据库交互次数, 提高执行效率 什么数据适用缓存 经常查询的数据并且不经常改变的 数据的正确与否对最终结果影响不大的 不适用于缓存的数据: 经常改变的数据 数据的正确与否对最终结果影响很大 一级缓存 MyBatis中的一级缓存指SqlSession对象的缓存. 一级缓存中存放的是对象 当我们执行查询后, 查询的结果会同时存入到SqlSession为我们提供的一块区域中 该区域的结构是一个Map, 当我们在次查询同样的数据,原创 2020-08-12 17:40:22 · 109 阅读 · 0 评论 -
MyBatis的延迟加载
MyBatis的延迟加载 查询中存在的问题 前提: 在一对多的关系中, 有一个用户, 对应100个账户 在查询用户的时候, 是否需要把关联的账户查询出来? 在查询账户的时候, 是否需要把关联的用户查询出来? 如何查询 在查询用户时, 用户下的账户应该什么时候使用, 什么时候查询 (按照需求加载) 在查询账户时, 账户的所属用户信息应该时随着账户查询时一起查询出来(立即加载) 在查询用户时, 是按照需求查询该用户下的账户信息, 体现了延迟加载. 两种查询的模式因为查询数据的时机而不同. 延迟加载&a原创 2020-08-12 14:51:11 · 236 阅读 · 0 评论 -
JNDI数据源
JNDI数据源 JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。 JNDI数据结构 – Map结构 (模仿Windows 注册表结构) Windows注册表结构 key: 路径原创 2020-08-08 19:50:07 · 217 阅读 · 0 评论 -
MyBatis的多表查询
MyBatis中的多表查询 表中的关系 一对一: 一个人只有一张身份证 一对多:一个人可以有N张信用卡 多对一:N张信用卡属于一个人 多对多:一个学生可以被多个老师教过 && 一个老师教过多个学生 MyBatis中把多对一处理为一对一 多对一 (一对一) 用户和账户的示例: 一个用户可以有多个账户 一个账户只能属于一个用户 (多个账户也可以属于同一个用户) 建立两张表: 用户表 — 账户表 ,让两张表之间具有一对多的关系: 需要使用外键在账户表中添加 建立两个实体类: 用户实原创 2020-08-08 16:21:47 · 100 阅读 · 0 评论 -
MyBatis的动态SQL
映射文件的SQL深入 动态SQL语句 可根据条件判断动态生成SQL if标签 语句格式 <if test=" 条件判断 "> SQL语句 </if> test属性为: 判断的条件, 当条件为true时, 添加标签中的语句 示例(判断user的属性值 是否为空) <!-- 根据条件查询 --> <select id="findUserByCondition" parameterType="user" resultType="user"> SELEC原创 2020-08-06 11:34:32 · 74 阅读 · 0 评论 -
MyBatis中的CRUD
MyBatis中的CRUD parameterType(输入类型) 1.传递简单类型 <select id="findUserById" resultType="com.study.mybatis.domain.User" parameterType="java.lang.Integer"> SELECT * FROM user WHERE id=#{id}; </select> 2.传递poji对象 MyBatis使用ognl表达式解析对象的字段, #{原创 2020-08-05 12:01:55 · 132 阅读 · 0 评论 -
MyBatis入门案例
MyBatis 基于Java的持久层框架, 内部封装了jdbc, 使开发者止血药关注sql语句本身, 而不需要花费精力区处理加载驱动, 创建连接, 创建statement等发杂的过程, 使用了ORM思想 ORM: Object Relational Mappging - 对象关系映射 把数据库表和实体类及实体类的属性对应起来 MyBatis入门 1.环境搭建 创建maven工程和数据库 CREATE TABLE `user` ( `id` int(11) NOT NULL auto_inc原创 2020-08-04 14:22:11 · 81 阅读 · 0 评论