mybatis
嘉轩哥
这个作者很懒,什么都没留下…
展开
-
SpringBoot 报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方案
mybatis 注入失败,SpringBoot提示: Invalid bound statement (not found): com.project.dao.PaymentDao.queryById 解决方案: 1、检查mybatis的xml文件,命名空间是否有误(dao层的全路径) 2、检查mybatis的xml文件,方法id是否匹配(id对应dao层方法名) 3、springboot启动类未添加dao层扫描注解 ...原创 2022-02-15 15:15:11 · 6088 阅读 · 1 评论 -
mybatis 通用mapper插入成功后返回主键
实体类中添加注解 @Id @GeneratedValue(generator = "JDBC") private Integer id; 这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段) ...原创 2020-10-30 15:45:11 · 1404 阅读 · 0 评论 -
mybatis逆向工程-3步搞定
什么是逆向工程? MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po…)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码 mybatis逆向工程步骤: 1. 导入依赖: <dependencies> <!-- mybatis依赖包 --> <dependency>原创 2020-10-14 20:22:47 · 176 阅读 · 0 评论 -
Cannot convert value of type ‘java.lang.String‘ to required type ‘org.apache.ibatis.session.SqlSessi
java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.D原创 2020-10-14 15:09:20 · 2930 阅读 · 1 评论 -
mybatis动态sql(个人笔记)
mybatis动态sqlif:where:choose:trim:set:foreach:bind: if: <!-- 动态sql:if --> <select id="selectNewsIf" parameterType="news" resultType="news"> select * from news where 1=1 <if test="title!=null"> and title=#{title}</if> <if test="own原创 2020-10-11 00:07:35 · 299 阅读 · 0 评论 -
mybatis延迟加载策略(个人笔记)
场景分析: 关联查询中,当我们要查询员工信息的时候 又不想把员工的工作信息或者其他关联信息查询出来 但是我们使用关联查询时,会自动帮我们一起查询出来 此时我们可以发现,这无疑是加重数据库的工作量 所以引出延迟加载和立即加载的特性: 延迟加载:在真正使用数据的时候才发起查询,不用的时候不查询关联的数据,延迟加载又叫按需查询(懒加载) 立即加载:不管用不用,只要一调用方法,马上发起查询。 使用场景:在对应的四种表关系中,一对多、多对多通常情况下采用延迟加载,多对一、一对一通常情况下采用立即加载 操作步骤: 在m原创 2020-10-10 21:56:46 · 131 阅读 · 0 评论 -
mybatis关联查询(个人笔记)
mybatis关联查询一对一(association)pojo实体类:接口:mapper映射文件:一对多(collection)pojo实体类:接口:mapper映射文件:多对多pojo实体类(两个):接口(查询员工):mapper映射文件(查询员工): 一对一(association) pojo实体类: public class Employee implements Serializable { private static final long serialVersionUID = 1L; pri原创 2020-10-10 20:59:23 · 612 阅读 · 0 评论 -
mybatis传参方式有哪些?
方法1:顺序传参法 public User selectUser(String name, int deptId); <select id="selectUser" resultMap="UserResultMap"> select * from user where user_name = #{0} and dept_id = #{1} </select> #{}里面的数字代表你传入参数的顺序(也可以填写接口参数属性名#{name})。 方法2:@Param注解原创 2020-10-10 20:46:17 · 465 阅读 · 0 评论 -
Mybatis增删改查(非接口,接口两种方式)
MybatisCRUDCRUD简称1.非接口1.1创建mapper.xml映射文件1.2编写sql语句1.2.1 新增数据1.2.2 删除数据1.2.3 更改数据1.2.4 查询数据1.3配置mybatis核心配置文件2. 接口实现2.1 创建接口2.2 创建mapper映射文件2.3 配置mybatis核心配置文件2.4 test测试3 mybatisUtil工具类(减少重复代码编写) CRUD简称 CRUD:增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete) 由于原创 2020-10-09 00:38:37 · 692 阅读 · 0 评论 -
mybatis入门程序开发步骤教程
mybatis入门程序 新建maven项目 配置项目jdk pom.xml导入依赖 <dependencies> <!-- mybatis依赖包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version>原创 2020-10-08 00:29:49 · 143 阅读 · 0 评论 -
MyBatis查询语句中#{}和${}区别?
#{} 是预编译处理,像传进来的数据会加个" "(#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号) 就是字符串替换。直接替换掉占位符。{} 就是字符串替换。直接替换掉占位符。就是字符串替换。直接替换掉占位符。方式一般用于传入数据库对象,例如传入表名. 使用 ${} 的话会导致 sql 注入。什么是 SQL 注入呢?比如 select * from user where id = ${value} value 应该是一个数值吧。然后如果对方传过来的是 001 and name = tom。这原创 2020-10-07 20:11:29 · 183 阅读 · 0 评论