mybatis
文章平均质量分 70
宫城诗
这个作者很懒,什么都没留下…
展开
-
初始化与销毁
spring初始化顺序原创 2022-08-04 14:33:28 · 133 阅读 · 0 评论 -
20210105——mybatis(下)
Lombok 偷懒神器 安装 在settings里面Plugins搜索lombok 在项目中导入lombok的jar包 <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>原创 2021-02-03 21:48:13 · 119 阅读 · 0 评论 -
20201224——Mybatis(上)
简介 mybatis是一个持久层框架,支持定制化的sql,存储过程以及高级映射,避免了所有jdbc代码和手动参数集以及获取结果集,mybatis可以使用简单的xml或者注解来配置和映射原生类型,接口和java中的pojo 持久层 数据持久化,就是将程序的数据在持久状态和瞬时状态转化的过程。 内存:数据断电就丢失了 数据库(jdbc),io文件持久化 第一个mybatis程序 环境搭建 在navicat中创建数据库 CREATE DATABASE `mybatismmz`; 创建表 CREATE TABLE原创 2021-01-05 21:57:06 · 233 阅读 · 1 评论 -
20200701——mybatis #与$
个人认知 #可以减少sql注入,因为实际上先会进行预编译,会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,所以传入的参数会被当成字符串进行处理 而$只是字符串的拼接原创 2020-07-01 23:16:16 · 161 阅读 · 0 评论 -
20200506——mybatis 缓存
缓存 存在于内存中的临时数据 为什么使用缓存 减少和数据库交互次数,提高执行效率 适用于缓存 经常查询,不经常改变 数据的正确与否最终结果影响不大的(商品库存) mybatis一级缓存 指的是SqlSession的对象的缓存 当我们执行查询之后,查询的结果会同时存入到SqlSession中, 该区域的结构是一个map,当我们查询同样的数据,mybatis先去sqlsession是否有,有的话直接命...原创 2020-05-07 00:23:51 · 97 阅读 · 0 评论 -
20200506——mybatis的延迟加载
问题 在一对多中,有100个账户,在查询用户中,要不要把关联的账户查询出来,在查询账户中,要不要把关联的用户查询出来。 在查询用户时,用的账户的信息应该是什么时候使用就什么时候查询 在查询账户时,账户的所属用户信息应该随着账户查询,一起查询出来 延迟加载 符合第一种查询用户。 在真正使用数据才发起查询,也叫按需加载,懒加载 一对多,多对多,都是采用延迟加载 立即加载 只要一调用方法,马上发起查询。...原创 2020-05-06 22:12:42 · 91 阅读 · 0 评论 -
20200506——mybatis 多表查询
表之间的关系基本也就三种 一对一 一对多 多对多 举例: 一个用户可以下多个订单 一对多 多个订单可以属于同一个用户 多对一 一个人只能有一个身份证号 一个身份证号只能对应一个人 一对一 一个学生可以被多个老师教过 老师可以教多个学生 多对多 mybatis多表查询 采用的实例 用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户) 步骤: 建立两张表:用户表和账户表 让...原创 2020-05-06 21:10:06 · 170 阅读 · 0 评论 -
20200506——mybatis 动态sql
if标签 在一个用户查询条件中,无法判断哪一项不为空,怎么根据传入的值去进行查询。 <select id="findUserByCondition" resultType="com.mmz.pojo.User" parameterType="com.mmz.pojo.User"> select * from user where 1=1 <if t...原创 2020-05-06 14:44:40 · 107 阅读 · 1 评论 -
20200505——mybatis的连接池
连接池 我们在实际开发中都会使用连接池。 减少我们获取连接所消耗的时间。 连接池就是用于存储连接的容器,容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到同一个。 该集合还必须实现队列的特性。 mybatis连接池 mybatis连接池提供了三种方式的配置 配置的文件是主配置文件,SqlMapConfig.xml中的dataSource标签,type属性,就是采用何种连接池方式 t...原创 2020-05-06 13:39:48 · 130 阅读 · 0 评论 -
20200505——mybatis 数据库与对象中的属性名
当数据库的属性与对象中的属性名不一致怎么办 第一种 起别名,很简单,效率高 select id as userId,username as userName ... 从sql语句层面上解决了问题 第二种 配置ResultMap 配置查询结果的列名和实体类属性的类名 <resultMap id="userMap" type="com.mmz.pojo.User"> ...原创 2020-05-05 01:19:01 · 315 阅读 · 0 评论 -
20200505——mybatis 主键自增
在主键自增的情况下,我们怎么去获取自增的主键。 有一个sql语句可以得到 select last_insert_id(); 在userdao.xml中用到了selectKey的标签 <insert id="saveUser" parameterType="com.mmz.pojo.User"> <selectKey order="AFTER" resultTy...原创 2020-05-05 00:51:41 · 102 阅读 · 0 评论 -
20200504——mybatis crud
基础的搭建环境完毕,测试findAll方法即可。 完成插入操作 void saveUser(User user); userdao.xml <insert id="saveUser" parameterType="com.mmz.pojo.User"> insert into user(username,address,sex,birthday) val...原创 2020-05-04 23:58:34 · 103 阅读 · 0 评论 -
20200430——mybatis自定义
mybatis在使用代理dao的方式实现增删改查时做了什么 第一:创建代理对象 第二:在代理对象中执行了selectList方法 分析mybatis 在SqlMapConfig.xml中配置了 相当于有了connection 有这个相当于有了配置信息 有了这个,相当于有了sql语句,获取PreparedStatement,还有封装的实体类全限定类名 解析配置文件:用到的技术就是用XML的技术...原创 2020-04-30 23:04:57 · 194 阅读 · 0 评论 -
20200430——mybatis 注解开发
首先不需要dao.xml这个文件了。 添加注解 修改一下SqlMapConfig中的mappers标签 <mappers> <mapper class="com.mmz.dao.UserDao"></mapper> </mappers> 依然可以查询得到 注解 有局限性。 mybatis注解开发 github ...原创 2020-04-30 10:24:22 · 114 阅读 · 0 评论 -
20200430——mybatis xml开发
mybatis概述 mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。 mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中sql 的动态参数进行映射生成最终执行的...原创 2020-04-30 10:01:55 · 313 阅读 · 0 评论 -
20200229——复习mybatis 二 后六章
连接池 我们在实际开发中都会使用连接池 因为它可以减少我们获取连接所消耗的时间 连接池就是用于存储连接的一个容器 容器其实就一个集合对象,该集合必须是线程安全的,不能两个线程拿到统一连接 该集合必须实现先进先出 **mybatis的连接池 ** 配置的位置在主配置文件中,SqlMapConfig.xml中的dataSource标签中配置的,type属性就表示以何种方式连接池方式 type属性的取值...原创 2020-02-29 06:17:08 · 114 阅读 · 0 评论 -
20200228——复习mybatis 一 前六章
最原始的方法。 一开始学习的时候,需要写dao接口和dao实现类 后来可以用到注解或者mapper.xml配置的方式 最简单的程序 获取inputStream流,Resource的getResource方法获取文件流 然后用SqlsessionFactoryBuilder去构建 factory工厂 通过工厂的openSession方法生产sqlSession 然后调用sqlSession方法 进阶...原创 2020-02-28 19:54:40 · 135 阅读 · 0 评论 -
20200126——mybatis注解
<?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"> <configuration&...原创 2020-01-27 22:14:29 · 72 阅读 · 0 评论 -
20200125——mybatis整合复习
jdbc Connection PreparedStatement ResultSet dao data access object 数据访问对象 maven配置文件 groupId artifactId SqlMapConfig.xml mybatis的主配置文件 最上面是规范 <configuration> <!--配置环境--> <envi...原创 2020-01-26 19:22:25 · 244 阅读 · 0 评论 -
20200109——mybatis最后一天
mybatis的延迟加载 什么延迟加载 什么是立即加载 如果实现 mybatis的缓存 什么是缓存 为什么使用缓存 什么样的数据可以使用缓存 什么样的数据不能使用 mbatis一级缓存 二级缓存 mybatis中的延迟加载 问题:在一对多,我们有一个用户,它有100个账户 查询用户的时候,关联的账户是否查询出来 查询账户,要不要把关联的用户查出来 在查询用户时,用户下的账户信息应该是,什么时候使用...原创 2020-01-09 15:11:04 · 205 阅读 · 0 评论 -
20200108——mybatis day03 余下的部分
if 查询的条件,有可能是用户名,有可能是性别,也有可能是地址,也有可能都没有 测试方法 @Test public void testFindUserByCondition() throws Exception{ User user = new User(); user.setUsername("老王"); List<User> ...原创 2020-01-08 23:29:26 · 125 阅读 · 0 评论 -
20200107——关于事务
什么是事务 事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元) 事务的四大特性 1 、原子性 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 2 、一致性 事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事...原创 2020-01-07 23:04:39 · 88 阅读 · 0 评论 -
20200107——mybatis day03 连接池与事务控制
mybatis的连接池以及事务控制 mybatis基于xml动态sql语句使用 mappers配置文件中有几个标签 if where foreach sql mybatis多表操作 一对多 多对一 多对多 连接池 我们在实际开发中都会使用连接池 因为它可以减少我们和获取连接所消耗的时间 连接池就是用于存储连接的一个容器 容器就是一个集合对象,该集合必须是线程安全的,不能两个线程同时拿到统一连接 该...原创 2020-01-07 22:59:30 · 204 阅读 · 0 评论 -
20200107——day02 mybatis
总结 sqlsessionfactorybuild接受sqlmapconfig.xml文件流,构建出sqlsessionfactory对象 sqlsessionfactory读取sqlmapconfig.xml连接数据库和mapper映射信息,用来生产真正操作数据库的sqlsession对象 sqlsession对象有两大作用 1)生成接口代理对象 2)定义通用增删改查 在sqlsessionIm...原创 2020-01-07 16:25:38 · 97 阅读 · 0 评论 -
20200107——mybatis另一个学习项目day01
mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao接口 第三步:创建Mybatis的主配置文件SqlMapConfig.xml 第四步:创建映射配置文件 UserDao.xml 环境搭建的注意事项 第一个:创建UserDao.xml 和UserDao.java时,名称是为了和我们之前的知识保持一致,在mybatis中它把持久成的操作接口名称和映射文件也叫Ma...原创 2020-01-07 14:01:18 · 109 阅读 · 0 评论 -
20200105——mybatis 第二天
订单商品模型分析 对于数据模型分析思路 1)搞清楚每张表的数据内容 分模块对每张表的内容进行熟悉, 相当于你学习系统,需求功能的过程 2)每张表重要的字段设置 非空、外键字段 3)数据库级别,表与表之间的关系 外键关系 4)表与表之间的业务关系 在分析表与表之间的业务关系时,一定要建立在某个业务意义的基础之上 数据模型分析 用户表user 记录了购买商品的用户信息 id:自增主键 订单表orde...原创 2020-01-05 23:49:00 · 108 阅读 · 0 评论 -
20200105——复习第一天全部的学习内容mybatis
mybatis第二天 高级映射 缓存(查询) 与spring整合 课程复习 mybatis是什么?是一个持久层框架,是一个不完全的orm框架,sql语句需要程序员自己去编写 但是mybatis也有映射(输入参数的映射和输出结果映射) mybatis入门门坎不高,学习成本低,因为他灵活好用,让程序员精力放在sql语句上。 mybatis执行过程 1)配置SqlMapConfig文件,名称不固定 2)...原创 2020-01-05 09:48:42 · 120 阅读 · 0 评论 -
20200104——复习mapper的配置文件
SqlMapConfig.xml mybatis的全局文件 SqlMapConfig.xml中配置的内容和顺序如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属...原创 2020-01-04 17:37:45 · 332 阅读 · 0 评论 -
20200103——继续复习mybatis
mybatis与hibernate区别 hibernate是一个标准的orm框架(对象关系映射)不需要写sql语言。 但是如果需要对sql语句进行优化,比较困难 应用场景:适用于需求变化不多的小中型项目,比如后台管理系统 mybatis:专注于sql本身,需要程序员自己编写sql语句,优化比较方便 应用场景:需求变化较多的,互联网项目 mybatis开发dao方法 sqlsession使用范围 通...原创 2020-01-04 09:18:08 · 179 阅读 · 0 评论 -
20200101——mybatis第一天 接着上面复习
根据用户名称模糊查询 xml <select id="findUserByName" parameterType="string" resultType="cn.mmz.mybatis.pojo.User"> select * from user where username like #{value} </select> java ...原创 2020-01-03 18:54:41 · 131 阅读 · 0 评论 -
20191231——mybatis复习第一天
jdbc的程序 运行jdbc程序,需要加入jar包 数据库驱动包(mysql) idea中的jar包引入 在项目文件夹下新建一个lib文件夹,专门存放jar包 然后再file ->project structure中寻找modules,找到dependencies,添加整个lib进去,就可以发现我们导入的jar包可以进行双击点开了,那么说明这个jar包就是导入正确了。 简单的命名规范 项目名...原创 2020-01-01 00:16:06 · 135 阅读 · 1 评论 -
20191231——动态sql
什么是动态sql mybatis核心对SQL语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装,生成sql 需求 用户信息综合查询和用户信息综合查询总数 对查询条件进行判断,如果输入参数不为空才进行查询条件拼接 <select id="findUserList" parameterType="cn.itcast.mybatis.pojo.UserQueryVo" result...原创 2019-12-31 16:03:52 · 97 阅读 · 1 评论 -
20191231——输出映射
resultType 使用resulttype进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功 如果查询出来的列名与pojo中的属性全部不一致,那么没有创建pojo对象 只有查询出来的有一个一致,那么会创建出来一个pojo对象 还可以输出简单类型 需求: 用户信息综合查询的列表总数,通过查询总数和上边用户查询列表才可以实现分页。 mapper.xml与.java @Te...原创 2019-12-31 05:02:53 · 129 阅读 · 0 评论 -
20191230——输入映射
输入映射 通过输入parameterType指定输入参数的类型,类型可以是简单类型,hashmap,pojo类型 主要讲pojo的包装对象 需求:完成用户综合查询,需要传入查询条件(可能包括用户信息,也可能包括其他信息,比如商品的、订单的) 针对上边需求,使用自定义的包装类的包装类 自定义包装类型pojo 在包装类型中pojo中复杂的查血条件包装进去。 package cn.itcast.myba...原创 2019-12-31 04:32:04 · 185 阅读 · 0 评论 -
20191230——mybatis全局配置文件SqlMapperConfig文件
properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源) mappers(映射器) ...原创 2019-12-30 21:44:52 · 179 阅读 · 0 评论 -
20191229——mapper代理方法
思路 程序员只需要mapper接口,相当于(dao接口),还需要编写mapper.xml映射文件 mybatis可以自动将,生成mapper接口实现类的代理对象 mapper接口需要遵循一些接口规范 开发规范: 1.在mapper中namespace等于mapper接口的地址 2.mapper.java接口中方法名和mapper.xml中的statement的id一致 3.mapper接口输入参...原创 2019-12-29 11:55:07 · 133 阅读 · 1 评论 -
20191229——mybatis开发dao
SqlSession使用范围 SqlSessionFactory 通过sqlsessionfactory创建sqlsession,使用单例模式管理sqlsessionfactory,工厂模式一旦创建,一直使用一个实例。 将来和spring整合后, 使用单例模式管理sqlsessionfactory sqlsessionfactorybuilder创建会话工厂 通过上面这个创建工厂,将sqlsess...原创 2019-12-29 08:33:22 · 116 阅读 · 0 评论 -
20191229——mybatis 与hibernate
hibernate与maybatis的本质区别和应用场景 hibernate入门门槛高,标准的orm框架 对象关系映射,本质使程序员不需要写sql 对sql语句进行优化,修改比较困难的 应用场景:适用与需求变化不多的,中小型项目,后台管理系统, mybatis:专注于本身,程序员需要自己去写sql语句,sql修改,优化比较方法 一个不完全的orm框架 虽然程序员自己写sql,mybatis可以实现...原创 2019-12-29 07:18:10 · 101 阅读 · 0 评论 -
20191229——mybatis 添加用户
映射文件 在User.xml来配置添加用户的sql(Statement) <insert id="insertUser" parameterType="cn.itcast.mybatis.pojo.User"> insert into user(id,username,birthday,sex,address) value(#{id},#{username},#{...原创 2019-12-29 07:07:38 · 193 阅读 · 0 评论 -
20191228——mybatis下一个程序
根据用户名称模糊查询用户信息 创建映射文件 添加到User里面 这是MybatisFirst另一个逻辑的代码 public void findUserByName() throws IOException { //mybatis配置文件 String resource = "SqlMapConfig.xml"; //得到配置文件流 ...原创 2019-12-29 00:59:10 · 90 阅读 · 0 评论