![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis框架
文章平均质量分 62
chenhui_Sun
编程是爱好,日常学习,点滴记录。
展开
-
spring整合Mybatis(Mybatis-Spring)
什么是 MyBatis-Spring?MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。准备工作导入maven依赖<原创 2021-03-01 15:41:16 · 91 阅读 · 2 评论 -
Mybatis缓存原理图
Mybatis缓存原理测试:@org.junit.Test public void test(){ //通过封装好的工具类获取SqlSession会话 SqlSession sqlSession = MyBatisUtils.getSqlSession(); //获取另一个SqlSession会话 SqlSession sqlSession1 = MyBatisUtils.getSqlSession(); //通过原创 2021-02-13 09:28:19 · 151 阅读 · 2 评论 -
Mybatis之缓存
什么是缓存?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题为什么要使用缓存?减少与数据库的交互次数,减少系统开销,防止资源浪费,提高系统效率什么样的数据才能使用缓存?经常查询并且不经常改变的数据Mybatis缓存机制MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率MyBatis中默认定义了两级缓存:一原创 2021-02-12 11:16:15 · 189 阅读 · 1 评论 -
Mybatis动态sql之foreach
foreach标签是对集合进行遍历(尤其是在构建 IN 条件语句的时候)注意事项:属性中collection是声明遍历集合的名字,当使用可迭代对象或者数组时,index 属性是当前迭代的序号,item 属性的值是本次迭代获取到的元素。当使用 Map 对象(或者 Map.Entry 对象的集合)时,index 是键,item 是值。open属性是起始拼接的值,separator是中间需要分割的值,close是结束拼接时的值foreach标签使用接口类://根据条件查询 List<Bl原创 2021-02-11 10:18:59 · 963 阅读 · 0 评论 -
Mybatis动态sql之sql元素
有时候可能某个 sql 语句我们用的特别多,为了增加代码的重用性,简化代码,我们需要将这些代码抽取出来,然后使用时直接调用即可。使用sql标签提取公共的部分<sql id="selectBlog"> select id,title,author,create_time,views from blog </sql>在需要使用的地方使用include标签引用即可<select id="query" parameterType="blog"原创 2021-02-10 08:37:31 · 209 阅读 · 0 评论 -
Mybatis动态sql之trim、where、set
trim元素trim元素包含prefix(添加前缀)、prefixOverrides(自动忽略前缀)、suffix(添加后缀)、suffixOverrides(自动忽略后缀)需求:更新一条数据接口类://更新一条数据 int updateBlog(Map map);Mapper.xml文件<update id="updateBlog" parameterType="map"> update blog <trim prefix="原创 2021-02-09 11:27:21 · 1280 阅读 · 1 评论 -
Mybatis动态sql之choose、when、otherwise
有时候,我们不想使用所有的条件,而只是想从多个条件中选择一个使用,它有点像 Java 中的 switch 语句。接口类//按照不同的需求查询 List<Blog> queryBlogChoose(Map map);Mapper.xml配置文件<select id="queryBlogChoose" parameterType="map" resultType="Blog"> select * from blog <whe原创 2021-02-08 10:21:16 · 695 阅读 · 0 评论 -
MyBatis动态sql之if
什么是动态sql?动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.我们之前写的 SQL 语句都比较简单,如果有比较复杂的业务,我们需要写复杂的 SQL 语句,往往需要拼接,而拼接 SQL ,稍微不注意,由于引号,空格等缺失可能都会导致错误。那么怎么去解决这个问题呢?这就要使用 mybatis 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签,可组合成非常灵活的SQL语句,从而在提高 SQL 语句的准确性的同时原创 2021-02-07 19:57:13 · 726 阅读 · 0 评论 -
Mybatis之resultMap结果集映射
解决属性名和字段名不一致的问题当实体类中的属性与数据库中的字段名不匹配时,结果不会将数据存入实体类中解决方法一:select * from t_user将原来的SQL语句改成(起别名):select id,username,password as pwd,gender,regist_time from t_user解决方式二:通过resultMap结果集映射:<!-- select查询语句--> <resultMap id="userMap" t原创 2021-02-06 21:35:19 · 2270 阅读 · 3 评论 -
Mybatis使用注解开发
Mybatis注解主要分成:@select ()@update ()@Insert ()@delete ()注意:利用注解开发就可以不需要mapper.xml映射文件了在接口中的方法中添加注解@Select("select * from t_user") List<User> query();在mybatis核心配置文件中注册mapper<!-- 注册接口Mapper映射--> <mappers><!--原创 2021-02-05 16:57:01 · 344 阅读 · 0 评论 -
Mybatis详细的执行流程
将Mybatis核心配置文件加载至内存中String resource="mybatis-config.xml";//将mybatis核心配置文件加载到内存中InputStream resourceAsStream = Resources.getResourceAsStream(resource);//实例化一个SqlSessionFactoryBuilder构造器并调用build方法new SqlSessionFactoryBuilder().build(resourceAsStream)..原创 2021-02-05 12:04:04 · 301 阅读 · 0 评论 -
Mybatis实现分页查询
使用limit分页接口类//分页查询 List<User> selectLimit(Map<String,Object> map);Mapper.xml文件<select id="selectLimit" parameterType="map" resultType="user"> select * from t_user limit #{startIndex},#{pageSize} </select>测试类:原创 2021-02-04 19:59:27 · 3348 阅读 · 0 评论 -
Mybatis框架之日志
日志工厂如果执行操作数据库时出现了异常,我们需要寻找错误进行排错,日志就是最好的助手以前我们可以通过System.out.println、debug来进行寻找错误,现在可以通过日志工厂进行实现在mybatis-config.xml核心配置文件中设置<settings><!-- 标准的日志工厂--> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings&g原创 2021-02-03 20:47:47 · 245 阅读 · 0 评论 -
Mybatis操作流程以及作用域
执行流程作用域与生命周期不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题SqlSessionFactoryBuilder一旦创建了 SqlSessionFactory,就不再需要它了局部方法变量SqlSessionFactory相当于数据库连接池一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例最简单的就是使用单例模式或者静态单例模式SqlSession连接到连接池的一个请求SqlSession 的实例不是线程安全原创 2021-02-02 21:36:19 · 105 阅读 · 0 评论 -
Mybatis入门基础(四)
Map集合传参假设我们的实体类,或者数据库中的表,字段或者参数过多,我们可以考虑使用Map接口类://插入一条数据 void addUser(Map<String,Object> map);<insert id="addUser" parameterType="map" > insert into t_user values(#{user_id},#{user_name},#{user_password},#{user_gender},#{regis原创 2021-02-02 16:51:29 · 139 阅读 · 0 评论 -
Mybatis入门基础CRUD(三)
CRUD操作步骤编写接口类编写接口对应的mapper.xml文件通过SqlSession来获取接口进而调用接口中方法执行(注意事务处理)查询语句接口中的方法:public interface UserDao { //查询所有的用户 List<User> selectUsers(); //根据id查询用户 User queryById(int id); }UserMapper.xml中查询的SQL语句:<?xml version=原创 2021-02-02 10:13:48 · 126 阅读 · 2 评论 -
Mybatis入门基础----实现第一个程序(二)
创建一个Mybatis程序详细可参考官网https://mybatis.org/mybatis-3/zh/getting-started.html在idea中建立一个maven工程添加mybatis、数据库驱动的jar包或者依赖创建一个mybatis-confi.xml文件,并进行配置信息<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org原创 2021-02-01 16:34:45 · 90 阅读 · 0 评论 -
MyBatis框架入门(一)
什么是MyBatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。2013年1原创 2021-02-01 11:56:13 · 123 阅读 · 0 评论