Mybatis
文章平均质量分 57
基本知识点和常见问题的解决方案
Be explorer
分享日常学习笔记和实战经验,开源NB
展开
-
XML中的SQL小于号转译问题
在SpringBoot框架中编写SQL,是无法识别出小于号的,所以需要通过转译符号来实现,大于号可以正常使用。原创 2023-11-14 18:23:15 · 118 阅读 · 0 评论 -
【已解决】编写的Mapper.xml配置文件无法被加载
一般可以正常加载的配置文件都放在了resources文件之下,但是我们为了让结构更清晰,一般写SQL的配置文件就和Dao接口写在一起,就容易引起配置文件无法被加载的情况。在pom.xml 文件中设置。原创 2023-11-14 18:22:35 · 487 阅读 · 0 评论 -
Mybatis篇-深入了解缓存原理和一二级缓存
一、导包去maven仓库中搜索Mybatis-ehcache-- 导入自定义缓存的包 -->二、去Mapper.xml配置文件中进行配置三、想要实现自定义缓存要实现Cache接口至此,缓存的原理和一二级缓存的原理和实现介绍完毕,欢迎大家交流学习,欢迎指正!原创 2023-11-14 18:20:00 · 121 阅读 · 0 评论 -
Mybatis篇-动态SQL
正常情况的if test标签,如果我们第一个判断条件title为空了,那么会直接把author的and拼接到SQL语句中,那么就会出现SQL语法错误。语句会直接拼接title的SQL,然后跳出这个choose,不会拼接下面的SQL(相当于Java中switch的break)作用:set可以动态的前置SQL语句中的set关键字,如果SQL语句中的某一行后面有无关的逗号,set标签会帮我们删除。他的出现,可以提高我们SQL语句的复用性,实现根据不同的条件实现搜索的功能。原创 2023-11-08 18:19:36 · 63 阅读 · 0 评论 -
Mybatis篇-注解开发
2、弊:简单的开发可以使用注解开发,如果数据量较大,实体类中的属性和数据库的字段有冲突,因为注解没办法用ResultMap来让属性和字段一一对应,所以就会出现数据查询为null的后果。我们首先通过反射,来获取到接口的类,反射的强大之处是可以获取到这个类的所有参数信息,当然也就能获取到接口中的方法的信息。获取之后,系统就会对这个接口中的方法进行解析,执行上面的注解中的SQL语句,就能成功将数据查询出来了。4、SQL注解上中引用的参数就是我们@Param注解中设定的属性名。1、首先我们在接口上加了查询的注解。原创 2023-11-08 18:05:26 · 69 阅读 · 0 评论 -
Mybatis篇-日志工厂
曾经,如果一个数据库的操作,出现了异常,排错的手段可以是sout打印语句或者进行debug,为了让排查工作变得更加高效,日志则是我们最好的帮手,日志工厂也就油然而生。(1)设置方式(注意:如果我们直接从官网上直接复制粘贴,小心自带的空格,一定记得检查配置的name和value!在Mybatis的核心配置文件中用setting标签进行配置。1、STDOUT_LOGGING 标准日志输出。原创 2023-11-08 16:50:32 · 95 阅读 · 0 评论 -
Mybatis篇-分布式架构中SQL日志打印
其中有一个参数是topic,作用是指定要采用的logger,传的value是配置的日志的name。在需要打印SQL的业务层实现类上加上@sl4j注解,就可以正常打印SQL了。在服务的logback-spring.xml文件中添加如下的配置即可。原创 2023-11-08 16:48:36 · 125 阅读 · 0 评论 -
Mybatis篇-Log4j理解和使用
3、我们可以通过配置文件(在resources下再建立一个log4j.properties配置文件)对日志的方式进行配置,不需要修改代码。1、Log4j是Apache的一个开源项目,我们可以通过使用Log4j,控制日志信息输送的目的地是控制台、文件或者是GUI组件等等。2、我们也可以控制 每一条日志输出的格式,定义每条日志信息的级别,控制日志的生成过程。(1)在要使用Log4j的类中导入包,注意一定不要导错。(2)生成日志对象,传的参数是当前的类的反射。3、配置Log4j为日志的实现。原创 2023-11-08 16:46:42 · 268 阅读 · 0 评论 -
Mybatis篇-解决属性名和数据库字段名不一致的问题(ResultMap)
在写SQL的Mapper.xml配置文件中增加一个resultMap标签。ResultMap: 结果集映射。做为了解,没什么意义。原创 2023-11-08 16:30:30 · 269 阅读 · 0 评论 -
Mybatis篇-实现增删改查
使用Map的原因在于当我们想往SQL语句中传递一个对象的时候,如果想传递一个对象,那么传的值必须要和实体类的属性一一对应,那么这样就大大加大了开发的难度,但是当我们引入了Map,传的值不需要和实体类中的属性一一对应,只要和我们将要赋值的Map键值对中的键相同即可。现在的技术不断的在更新迭代,但是这些基础的东西还是依旧很重要,追本溯源吧!对象传递参数,直接在SQL中取对象的属性即可,参数类型:parameter= “实体类的全限定名”假设我们的实体类或者是数据库中的字段参数过多,应当考虑使用Map!原创 2023-11-08 16:27:33 · 312 阅读 · 0 评论 -
Mybatis篇-认识和使用Mybatis
Mybatis是一款优秀的持久层框架,帮助程序员将数据存入到数据库一、功能和优点:1、Mybatis支持定制化SQL、存储过程以及高级映射;2、Mybatis几乎避免了所有的JDBC代码和手动设置参数(setInt...)以及获取结果集(ResultSet);3、Mybatis可以使用简单的xml或者注解来配置和映射原生类型、接口和Java的POJO(实体类)为数据库中的记录二、历史。原创 2023-11-08 10:05:34 · 61 阅读 · 0 评论 -
org.apache.ibatis.exceptions.PersistenceException错误和Caused by: java.lang.NoSuchMethodException
检查Maapper.xml配置文件中的resultType是否是实体类的全限定名(如果在config.xml核心配置文件中设定了别名可以写别名)这个问题困扰我半天,都是按照标准的格式配置的Mapper.xml映射文件,最后还是报错。检查Mapper.xml文件中的查询id是否和接口中的方法一致。检查自己的Mapper.xml配置文件和接口类是否绑定正确。我半天忽略的一点,希望兄弟们不要犯我这样低级错误。注意下面的namespace要写接口的全限定名。希望以上的排错方法对兄弟们有用,欢迎指正!原创 2023-02-13 11:03:06 · 745 阅读 · 0 评论