MyBatis学习

mybatis学习总结 文章目录注意点入门安装从 XML 中构建 SqlSessionFactory不使用 XML 构建 SqlSessionFactorySqlSessionFactory 中获取 SqlSession探究已映射的 SQL 语句作用域(Scope)和生命周期XML配置属性(properties) mybatis-02设置(settings)类型别名(typeAliases)环境配置(environments)映射器(mappers)XML 映射文件参数结果映射 (解决数据库中的字段名和实体类中的属性名不匹 阅读详情

流程

1.导入mybatis和mysql驱动的依赖

2.mybatis核心配置文件mybatis-config.xml

配置dataSource(驱动类型账号密码)+ 注册每个mapper

3.编写mybatis工具类,从 mybatis-config.xml 中构建 SqlSessionFactory类

类为静态私有,给出静态方法获取 SqlSession实例

4.写实体类+对应dao接口+对应mapper.xml(绑定dao接口)

5.获取 SqlSession,从而获取接口类及其方法,然后调用

Tips

1. xml的头不能写utf-8, mysql只有utf8

2.修改数据库时,需要提交事务,sqlSession.commit()  或  sqlSessionFactory.openSession(true)

3.多个参数可用对象传参,更推荐用map传参,sql语句中根据key值获取

4.模糊查询,在sql中拼接通配符  或   直接传递通配符%

select * from user where name like "%"#{value}"%"
List<User> userList = mapper.getUserLike("%李%");

5.结果集映射ResultMap,返回结果是map

6.注册mapper三种方式

第一种是绑定mapper的resource路径(斜杠隔开)

第二种是绑定接口class路径(点隔开,接口和mapper配置文件必须同包同名

第三种是绑定mapper的package路径(点隔开,接口和mapper配置文件必须同包同名

同包路径+同名 (这样是为了打包时两个UserMapper都能打包到,也可以在pom设置build-resource设置打包范围就不用分开两个UserMapper啦)

7.分页三种方式

第一种是sql语句实现 limit

startIndex(起始数据的下标 0开始),pageSize(显示的数据条数)
<select id="getUserByLimit" parameterType="map" resultMap="UserMap">
    select * from  user limit #{startIndex},#{pageSize};
</select>

第二种是使用RowBounds

RowBounds rowBounds = new RowBounds(0, 2);
//对应的sql,传参,分页
List<User> selectList = sqlSession.selectList("com.ssq.mapper.UserMapper.getUserList", null, rowBounds);

第三种是分页插件PageHelper

-导入依赖pagehelper和jsqlparser(解析sql语句)

-mybatis-config.xml里面配置plugins

<plugins>
   <plugin interceptor="com.github.pagehelper.PageInterceptor">   <!--pageHelper核心类,配置后在mybatis自动分页-->
      <property name="helperDialect" value="mysql"/>   <!--说明使用的是mysql数据库-->
      <property name="reasonable" value="true"/>  <!--让查询更加健壮-->
   </plugin>
</plugins>

-使用

PageHelper.startPage(1,2);//第1页,每页2条数据
Page<User> page = (Page) sqlSession.selectList("com.ssq.mapper.UserMapper.getUserList");
System.out.println(page.getPageNum());//当前页码
for (User user : page.getResult()) {//结果
     System.out.println(user);
}

8.使用注解开发

注解在接口上实现+核心配置文件绑定接口class

@Select("select * from user")
List<User> getUsers();

9.方法存在多个参数,形参前必须加上@Param()注解

10.动态sql

collections集合   一对多

association关联  多对一

11.foreach批量操作

 12.缓存

一级缓存+二级缓存/可自定义的二级缓存

一级缓存默认开启,sqlSession级别,LRU算法  (会话关闭,缓存失效)

二级缓存namespace级别,一个命名空间mapper对应一个二级缓存  (会话关闭,二级缓存)

MyBatisPlus

导入plus依赖,连接数据库,在spring boot中使用:

 

 

 Tips

 

 

 

 

 

 

 

 

 

 

EXCEL VBA 导出高清图片方法 EXCEL VBA 导出高清图片方法 将EXCEL表格内容另存为图片的方法有很多种,简单的比如“复制为图片格式并另存”,“打印成XPS”等等,本文着重的是利用VBA实现的方法。 该方法适合用于中大型图文表格输出为图片格式,方便传阅,在office2010及以上版本最为流畅。 具体看代码: Sub printA4() Dim rng As Range '定义截图范围变量 'm = 20... 阅读详情

相关推荐

华中科技大学头歌 交通灯系统设计 Lojisim 详细实验报告,实验图,仅供参考

本实验也是参考了许多大神的做法,也是小白一个!有完整实验代码,实验报告,答辩PPT(ppt当时做得仓促,有点拉胯)~ 需要请评论或私QQ:3096524043(有偿~~) 一、数码管驱动 由真值表生成电路 二、四位无符号比较器设计 三、8位无符号比较器设计 四、一位2路选择器设计 五、八位2路选择器设计 六、BCD双向计数器状态机设计 七、BCD双向计数器输出函数设计 ...

FindXY的博客 1万+

事务

一、什么时候需要开启事务? 当发生多条sql 增删改时才需要开启 二、事务的四大特性 一致性: ​ A 给 b 转 100 ,执行连个sql A 减100,B加100 ,总金额不发生变化 隔离性: 两个sql session之间 ,一个sql session能否看到另一个 sql session 增删改的数据 就是允许 一个sql session能否看到(读取到)另一个 sql session 增删改 但是还未提交的数据 (脏数据) ​ 隔离级别:允许脏数据的程度 原子性: ​

xue_yun_xiang的博客 620

C++ 进程内存搜索,特征码极速定位,方便找Call找地址!

C++ 进程内存搜索,特征码极速定位,方便找Call 找地址!!

sqlSessionFactory.openSession(true)

sqlSessionFactory.openSession(true)

weixin_42418309的博客 1620

mybatis-基础知识

1. 简介 1.1 由来: 原始jdbc开发存在的问题如下: 数据库连接创建/释放频繁造成系统资源浪费,从而影响系统性能 sql语句在代码中编写,不易维护,需要手动修改java代码 查询操作时需要手动封装到实体中,插入时需要设置占位符位置 1.2 解决方案: 使用数据连接池初始化连接资源 将sql语句抽取到xml文件配置中 使用反射,内省等底层技术,自动映射属性赋值 1.3 什么是mybaits? 是一个优秀的基于java的持久层框架,它内部封装了jdbc,开发者只需要关注sql本身,而不

发型决定高度的博客 1431

Mybatis缓存

一级缓存 一级缓存的作用域是Executor,实际就是SqlSession,默认开启并且无法关闭, 查询的时候会先判断SqlSession是否缓存存在,如果存在直接走缓存,如果不存在则走数据库 如下操作默认会走缓存: SqlSession sqlSession1 = factory.openSession(true); SqlSession sqlSession2 = factory.openSession(true); StudentMapper studentMapper ...

oliver486的博客 806

Mybatis源码(二)— openSession

openSession()方法中也没有进行数据库的连接,而是创建出数据库连接的会话对象(执行器、事务工厂、事务对象、如果有插件会进行插件解析)

weixin_43936962的博客 1600

Mybatis 框架学习

介绍了 Mybatis 框架的概念以及使用方法

一弓虽的博客 1379

Mybatis学习

数据访问篇 流行词:顶层设计 Mybatis 参考代码:https://gitee.com/li-lixiang/learn-mybatis.git 在前面的blog中,已经实现学习了Spring源码,接下来学习当下数据库访问框架Mybatis。 目录 数据访问篇 顶层设计 了解认识Mybatis why mybatis? 顶层设计 数据访问篇主要从以下几个方面学习: 1、了解Mybatis、使用Mybatis 2、掌握Mybatis工作流程、架构分层与模块划分、缓存机制的底层工作原

xiaoyou59的专栏 277

MyBatis学习01】宏观上把握MyBatis框架

  今天开始学习mybatis框架,博客主要记录学习过程中的一些总结,如有错误之处,欢迎留言指正~先用mybatis的鸟鸟来镇个楼,咳咳~~   mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。MyBatis可以将向preparedStatement中的输...

学不死的程序员 185

MyBatis学习方案

MyBatis学习方案mybatis的思维导图 mybatis的思维导图 文件链接: 密码: oukv

weixin_42492504的博客 192

MyBatis框架学习过程中所遇到的问题

在刚开始学习MyBatis的过程中,于我而言,第一个较为头疼的问题就是:难理解。对MyBatis有了一定的了解后,在学习过程中,避免不了的就是会出现各种异常,但由于不够仔细,或者配置映射文件时配置少了,多了、忘了。同时,也需要注意,我们添加的数据中是没有主键值的,我们需要检查该表的主键是否设置了自动增长类型,这样才能保证数据和主键的正常添加。通过日志文件的显示,我们可以知道,配置没有问题,通过错误的类型和提示,我们很快就能发现是因为马虎sql语句里出现了错误,在异常的提示里,已经告诉了我们那里错了。...

weixin_53233753的博客 791

开篇:为什么要学习Mybatis

大家好,我是疯一样的码农,长期扎根于一线开发,过去的十多年里,我是Mybatis框架的资深使用者,不仅在日常开发中能熟练地用它来操作数据库,还花了不少时间去研究它的内部源码,包括它是怎么配置、怎么初始化、怎么管理会话、怎么动态生成SQL语句、怎么执行、如何处理返回的结果集,还有它的缓存机制、工具集和插件等等,经历了无数次的挑战与失败,也收获了满满的成长与经验。这一路走来,我踩过不少坑,交了不少学费,但正是这些宝贵的经历,让我对Mybatis的理解愈发深刻。

疯一样的码农 573

MyBatis学习笔记】MyBatis基础学习

MyBatis是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录MyBatis是一个半自动的ORM(Object Relation Mapping)框架建议分成两种情况进行处理实体类类型的参数使用@Param标识参数。

IT小小白的博客 259

MyBatis实战:从入门到精通,一站式学习MyBatis的最佳选择

MyBatis实战:从入门到精通,一站式学习MyBatis的最佳选择 项目介绍 MyBatis实战是一个专注于MyBatis技术学习的开源项目,旨在通过丰富的实战示例代码,帮助开发者从零开始掌握MyBatis的核心概念与高级用法。项目中的示例代码主要来源于刘增辉老师所著的《MyBatis从入门到精通》一书,经过精心整理与实践,确保每一个示例都能帮助开发者深入理解MyBatis的各个方面。 项目技术...

gitblog_00834的博客 1100

mybatis学习资源

以下仅给出一些比较有用的参考资料,待有时间好好进一步研究学习。 1、mybatis文档

Xi__Yuan的专栏 402

mybatis学习总结,mybatis思维导图

最近几天学了mybatis,做了个总结。个人觉得很全,希望有所帮助。

Liveforyourself的博客 496

Mybatis学习记录

Mybatis学习记录 学习资料 B站视频 官方中文文档 什么是Mybatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 简单来说,MyBatisMyBatisMyBatis是一个持久层框架。

Harris-H的博客 464

mybatis学习思维导图

lilei的博客 331
上一篇: MyBatis连接MySQL测试报错
_isEarth
博客等级 码龄6年 1粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值