
MyBatis
代码是Code
不太会编程
展开
-
MyBatis中的事务
MyBatis中的事务什么是事务事务主要用于处理操作量大,复杂度高的数据事务必须满足的条件**原子性:**一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。**一致性:**在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。原创 2020-09-30 17:28:27 · 290 阅读 · 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 · 168 阅读 · 0 评论 -
properties标签和typeAliases标签
properties引用标签可用于引用jdbcConfig.properties外部配置信息resource属性(常用): 用于指定配置文件的位置,也可以通过属性引用外部配置文件信息url属性: 要求按照url的写法来写地址 协议+主机+端口+URIjdbcConfig.properties文件jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTCjd原创 2020-09-30 17:26:36 · 272 阅读 · 0 评论 -
MyBatis分页插件PageHelper
MyBatis分页插件PageHelperPageHelper 是国内非常优秀的一款开源的mybatis分页插件, 它支持基本主流与常用的数据库, 例如mysql, oracle, mariaDB, DB2, SQLite, Hsqldb等GitHub项目地址: GitHubGitOSC项目地址: GitOSCPageHelper使用1. 导入插件方式(两种)1.1 引入jar包从下列地址下载最新的jar包:https://oss.sonatype.org/content/rep原创 2020-09-23 09:46:27 · 147 阅读 · 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 · 170 阅读 · 0 评论 -
MyBatis中的缓存
MyBatis中的缓存什么是缓存存在于内存中的临时数据. 使用缓存可以减少和数据库交互次数, 提高执行效率什么数据适用缓存经常查询的数据并且不经常改变的数据的正确与否对最终结果影响不大的不适用于缓存的数据:经常改变的数据数据的正确与否对最终结果影响很大一级缓存MyBatis中的一级缓存指SqlSession对象的缓存.一级缓存中存放的是对象当我们执行查询后, 查询的结果会同时存入到SqlSession为我们提供的一块区域中该区域的结构是一个Map, 当我们在次查询同样的数据,原创 2020-08-12 17:40:22 · 138 阅读 · 0 评论 -
MyBatis的延迟加载
MyBatis的延迟加载查询中存在的问题前提: 在一对多的关系中, 有一个用户, 对应100个账户在查询用户的时候, 是否需要把关联的账户查询出来?在查询账户的时候, 是否需要把关联的用户查询出来?如何查询在查询用户时, 用户下的账户应该什么时候使用, 什么时候查询 (按照需求加载)在查询账户时, 账户的所属用户信息应该时随着账户查询时一起查询出来(立即加载)在查询用户时, 是按照需求查询该用户下的账户信息, 体现了延迟加载.两种查询的模式因为查询数据的时机而不同.延迟加载&a原创 2020-08-12 14:51:11 · 275 阅读 · 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 · 254 阅读 · 0 评论 -
MyBatis的多表查询
MyBatis中的多表查询表中的关系一对一: 一个人只有一张身份证一对多:一个人可以有N张信用卡多对一:N张信用卡属于一个人多对多:一个学生可以被多个老师教过 && 一个老师教过多个学生MyBatis中把多对一处理为一对一多对一 (一对一)用户和账户的示例:一个用户可以有多个账户一个账户只能属于一个用户 (多个账户也可以属于同一个用户)建立两张表: 用户表 — 账户表 ,让两张表之间具有一对多的关系: 需要使用外键在账户表中添加建立两个实体类: 用户实原创 2020-08-08 16:21:47 · 123 阅读 · 0 评论 -
MyBatis的动态SQL
映射文件的SQL深入动态SQL语句可根据条件判断动态生成SQLif标签语句格式<if test=" 条件判断 "> SQL语句</if>test属性为: 判断的条件, 当条件为true时, 添加标签中的语句示例(判断user的属性值 是否为空)<!-- 根据条件查询 --><select id="findUserByCondition" parameterType="user" resultType="user"> SELEC原创 2020-08-06 11:34:32 · 101 阅读 · 0 评论 -
MyBatis中的CRUD
MyBatis中的CRUDparameterType(输入类型)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 · 163 阅读 · 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 · 105 阅读 · 0 评论