![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis
渔闻520
To Be Continued……
展开
-
Mybatis 一次执行多条SQL语句
1.SQL语句之间使用分号“;”来分割;例如: <insert id="addPurchase" parameterType="com.itcast.crm.pojo.Product"> insert into purchase(id,purchasenum,purchasedate) values(#{id},#{purchasenum},#{purcha...原创 2019-12-27 16:54:17 · 493 阅读 · 0 评论 -
Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource xxx
今天在使用mybatis中,报错:Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource xxx,这个CustomerMapper.xml我放在了src目录下,而idea不会编译src目录下的.xml文件(只会编译resource下的),所以解决思路就是:将I...原创 2019-11-29 17:02:26 · 404 阅读 · 0 评论 -
使用logback
在mybatis中想使用logback来作为日志框架,以下为配置方法:1.需要的依赖文件:<!--以下使用logback,需要slf4--> <!-- slf4j --> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency&...原创 2019-11-29 16:57:06 · 314 阅读 · 0 评论 -
Mybatis使用log4j无法在控制台输出日志信息
使用MyBatis,结合log4j想在控制台打印出控制信息,结果INFO级别的都不打印,而error级别的却可以。MyBatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:SLF4JApache Commons LoggingLog4J 2log4JJDK logging具体的选择哪一一个日志的实现工具由MyBatis的内置日志工厂来确定。他会使用最先找到...原创 2019-11-29 16:13:44 · 1400 阅读 · 0 评论 -
Mybatis返回map集合时,列的顺序与select不一致
<select id="queryPercentByAsset" resultType="java.util.HashMap">将Hashmap换成LinkedHashMap即可<select id="queryPercentByAsset" resultType="java.util.LinkedHashMap">转载 2019-10-09 21:17:33 · 275 阅读 · 0 评论 -
MyBatis使用Map来接收返回结果集
现在有这么一个需求,就是,我不知道数据库里面返回的字段拼成的对象是什么,那么后端的接收的时候,指定的resultType就无法定下来,这个时候可以使用Map来接收(java.util.HashMap或者java.util.LinkedHashMap,关于使用这二者的差别后面会细说)。使用: <!--调用存储过程并且拿到结果集--> <select id="us...原创 2019-10-09 21:15:41 · 7001 阅读 · 0 评论 -
Spring 报错:无法注入相应的bean dao(error creating bean with name defined in filexxx)
如果是因为dao无法注入,则一定要检查一下mybatis的配置文件有没有写错-->resource的地址是用/来分割,而不是用点号。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...原创 2019-03-13 15:21:39 · 5870 阅读 · 0 评论 -
MyBatis 传递多个参数的方法
这里有三种方法可以用来传递参数:1.利用Map(不推荐);2.利用注解(推荐,在参数小于5个时使用比较方便)3.利用Java Bean,推荐,在参数大于5个即参数比较多时候使用。#使用注解://使用注解来传递多个参数 public List<Role> findRolesByAnnotation(@Param("roleName") String role...原创 2019-01-23 10:53:48 · 177 阅读 · 0 评论 -
一级缓存和二级缓存
一级缓存是在SQLSession上的缓存,二级缓存是在SQLSessionFactory上的缓存,默认情况下,也就是没有任何配置的情况下,MyBatis系统会开启一级缓存,也就是SQLSession层面上的缓存,这个缓存不需要POJO对象的可序列化。即:当一个SQLSession第一次通过SQL和参数获取对象后,他就会将其缓存起来,如果下次的SQL和参数都没有发生变化,并且缓存没有超时(关于时...原创 2019-01-28 11:10:34 · 412 阅读 · 0 评论 -
MyBatis的使用基础
1.先准备需要的包,需要下面这些:这里包括MyBatis的依赖包和其自己的包和连接数据库的包。注意版本。2.其大致的执行过程:SqlSessionFactoryBulider---->SqlSessionFactory----->SqlSession---->SqlMapper(发送sql和连接了数据库);3.具体的编写过程:先看大致的目录结构:#1....原创 2019-01-22 16:50:47 · 94 阅读 · 0 评论 -
resultMap 和 resultType
返回的结果集可以用resultType也可以用resultMap。使用resultType:<select id="getRole" parameterType="long" resultType="role"> select id,role_name as roleName,note from t_role where id=#{id} </s...原创 2019-01-24 16:21:37 · 156 阅读 · 0 评论 -
主键回填
利用主键回填来获得主键值以便于以后的关联其他功能。JDBC中的Statement对象在执行插入SQL后,可以通过getGenetatedKeys方法来获得数据库生成的主键。在insert语句中有一个开关属性useGeneratedKeys,用来控制是否打开这一个功能,它的默认值是false。当打开了这一个开关,还要配置其属性keyProperty,告诉系统把主键的值放在哪一个属性中,如果存在多...原创 2019-01-24 15:46:26 · 1784 阅读 · 0 评论 -
insert插入一条数据失败但是控制台又不报错
在MyBatis下insert一条数据,失败,而且控制台也没有报错,其实是没有commit(),即没有提交事务。JDBC提供两种提交事务的模式,一种是自动提交,还有一种是手动提交,即利用commit()来提交。在sql中(比如之前没有利用MyBatis框架时写dao层的时候),是自动提交的,而当jdbc托管于MyBatis框架的时候,就要手动提交了。要不然插入数据无法入库(其实是有成功的,只是...原创 2019-01-24 15:26:57 · 4948 阅读 · 1 评论 -
RowBounds分页类
只要给接口增加一个RowBounds传输就可以了。//下面测试MyBatis自带的分页类RowBounds功能 public List<Role> findByRowBounds(@Param("roleName")String rolename, @Param("note") String note, RowBounds rowBounds);而映射文件不需要任何...原创 2019-01-24 10:56:38 · 655 阅读 · 0 评论