![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis
llxxqq5
一个小白的记录
展开
-
Mybatis plus使用
导入依赖;<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1</version></dependency>正常连接数据库:spring.datasource.driver-c原创 2022-03-10 20:21:40 · 1065 阅读 · 0 评论 -
MyBatis缓存(Cache)
概念:内存中的一块存储空间,服务于某个应用程序,旨在将频繁读取的数据临时保存在内存中,便于二次快速访问。无缓存:用户在访问相同数据时,需要发起多次对数据库的直接访问,导致产生大量IO、读写硬盘的操作,效率低下有缓存:首次访问时,查询数据库,将数据存储到缓存中;再次访问时,直接访问缓存,减少IO、硬盘读写次数、提高效率一级缓存SqlSession级别的缓存,同一个SqlSession的发起多次同构查询,会将数据保存在一级缓存中。注意:无需原创 2021-12-24 21:03:31 · 322 阅读 · 0 评论 -
Mybatis插件PageHelper的使用
PageHelper是适用于MyBatis框架的一个分页插件,使用方式极为便捷,支持任何复杂的单表、多表分页查询操作。PageHelper中提供了多个分页操作的静态方法入口。pom.xml中引入PageHelper依赖。<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <versi.原创 2021-12-24 10:09:36 · 250 阅读 · 0 评论 -
封装自动提交与手动提交的Mybatis工具类
public class MybatisUtils { //获得SqlSession工厂 private static SqlSessionFactory factory; //创建ThreadLocal绑定当前线程中的SqlSession对象 private static final ThreadLocal<SqlSession> tl = new ThreadLocal<SqlSession>(); static { .原创 2021-12-23 20:12:34 · 385 阅读 · 0 评论 -
Mybatis中SQL语句中#与$的区别
相同点:都属于可以获取参数属性#仅引用,在SQL语句中替代占位符的数值(赋值)${attribute} 属于字符串拼接SQL,而非预编译占位符,会有注入攻击问题,不建议在常规SQL中使用,常用于可解决动态生降序问题。但在动态表查询中会使用$$符号注入攻击<select id="selectUsersByKeyword" resultType="user"> SELECT * FROM t_user WHERE name = '${name}' <!--.原创 2021-12-23 19:17:06 · 722 阅读 · 0 评论 -
Mybatis的动态SQL
MyBatis的映射文件中支持在基础SQL上添加一些逻辑操作,并动态拼接成完整的SQL之后再执行,以达到SQL复用、简化编程的效果。< sql > 封装相同的sql代码,使用的时候利用include引入<mapper namespace="com.mybatis.part2.dynamic.BookDao"> <sql id="BOOKS_FIELD"> <!-- 定义SQL片段 --> SELECT id,nam...原创 2021-12-22 19:46:39 · 424 阅读 · 0 评论 -
MyBatis处理关联关系-多表连接(关联查询)
实体间的关系:关联关系(拥有 has、属于 belong) OneToOne:一对一关系(Passenger--- Passport) OneToMany:一对多关系(Employee --- Department) ManyToMany:多对多关系(Student --- Subject) OneToOne<mapper namespace="com.mybatis.part2.one2one.PassengerDao"> <!-- .原创 2021-12-22 19:38:06 · 674 阅读 · 0 评论 -
Mybatis自动ORM映射失败解决方法
MyBatis只能自动维护库表”列名“与”属性名“相同时的一一对应关系,二者不同时,无法自动ORM。方案一:列的别名在SQL中使用 as 为查询字段添加列别名,以匹配属性名。<mapper namespace="com.mybatis.part2.orm.ManagerDao"> <select id="selectManagerByIdAndPwd" resultType="com.qf.mybatis.part2.orm.Manager"> ..原创 2021-12-22 19:29:11 · 568 阅读 · 0 评论 -
MyBatis用注解方式进行CRUD操作
通过在接口中直接添加MyBatis注解,完成CRUD。 注意:接口注解定义完毕后,需将接口全限定名注册到mybatis-config.xml的< mappers >中。 经验:注解模式属于硬编码到.java文件中,失去了使用配置文件外部修改的优势,可结合需求选用。 <mappers> <mapper class="com.qf.mybatis.part1.annotations.UserMapper" /><!-- clas.原创 2021-12-22 19:25:50 · 290 阅读 · 0 评论 -
Mybatis的CRUD操作(增删改查操作)
查询:标签:< select id="" resultType="" >参数传递与获取:方法有四:序号参数绑定 //使用原生参数绑定 public User selectUserByIdAndPwd(Integer id , String pwd);<select id="selectUserByIdAndPwd" resultType="user"> SELECT * FROM t_users WHERE id = #{arg原创 2021-12-22 19:13:21 · 96 阅读 · 0 评论 -
Maven项目加入log4j配置
pom.xml添加log4j依赖<!-- log4j日志依赖 https://mvnrepository.com/artifact/log4j/log4j --><dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency&g..原创 2021-12-22 18:56:38 · 643 阅读 · 0 评论 -
Mybatis 的mybatis-config.xml 配置中读取properties文件
Mybatis配置文件中直接加载设置好的资源文件 例如:对于mybatis-config.xml的核心配置中,如果存在需要频繁改动的数据内容,可以提取到properties中。#jdbc.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncpding=utf8jdbc.username=roo...原创 2021-12-22 18:53:59 · 2792 阅读 · 0 评论 -
解决mapper.xml存放在resources以外路径中的读取问题
一般来说,资源文件统一存放在resource文件夹中,会自动识别但如果在java文件夹中存放了资源配置文件,则要自定义配置才能识别在pom.xml文件最后追加< build >标签,以便可以将xml文件复制到classes中,并在程序运行时正确读取。<build> <resources> <resource> <directory>src/main/java</dir..原创 2021-12-22 18:49:15 · 1021 阅读 · 0 评论 -
Mybatis框架简单介绍与使用
概念 MyBatis本是Apache软件基金会的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了Google Code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的基于Java的持久层框架,支持自定义SQL,存储过程和高级映射。 MyBatis对原有JDBC操作进行了封装,几乎消除了所有JDBC代码,使开发者只需关注 SQL 本身。 MyBatis可以使用简单的原创 2021-12-22 17:51:27 · 107 阅读 · 0 评论