202110-20 MyBatis中基于别名typeAliases的设置 MyBatis别名typeAliases的设置第一种:通过在配置文件中typeAlias节点设置type的方式<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--设置别名--><typeAliases><!--type指的是javabean的完全限定名alias就是指代别名--><typeAliasalias="student"type="c... 继续阅读 >
202110-20 Mybatis 中Mapper使用package方式配置报错的解决方案 踩了个坑,写出来Mybatis中Mapper使用package方式配置报错org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound)UserDaoTest中调用了UserDao的insert方法。1.项目结构如下2.UserDao接口packagecom.mybatis.dao;importorg.apache.ibatis.annotations.Mapper;importorg.apache.ibatis.annotations.Param;importjava.util.List;importcom.mybatis.pojo.User;@MapperpublicinterfaceUserDao{... 继续阅读 >
202110-20 聊聊Mybatis中sql语句不等于的表示 Mybatissql语句不等于的表示如果直接写select*fromuserwhereid<>217;mybatis就会报语法错误,<>特殊字符需要转义如下select*fromuserwhereid<>217;使用Mybatis的时候,特殊字符需进行转义,如<><>&&''""Mybatis特殊符号(大于,小于,不等于)及常用函数总结1、使用场景因为我们在日常代码Mybatis动态拼接语句时候经常使用到大于(>,>=)、小于(<,<=)、不等于(<>,!=)符号。由于此符... 继续阅读 >
202110-20 SpringBoot+Mybatis使用Mapper接口注册的几种方式 目录I.环境准备1.数据库准备2.项目环境II.实例演示1.实体类,Mapper类2.注册方式2.1@MapperScan注册方式2.2@Mapper注册方式2.3MapperScannerConfigurer注册方式3.小结III.不能错过的源码和相关知识点SpringBoot项目中借助Mybatis来操作数据库,对大部分java技术栈的小伙伴来说,并不会陌生;我们知道,使用mybatis,一般会有下面几个Entity:数据库实体类Mapper:db操作接口Service:服务类xml文件:写... 继续阅读 >
202110-20 mybatis insert foreach循环插入方式 mybatisinsertforeach循环插入@Insert("<script>"+"insertintodriver_account_appeal_photo(appeal_id,appeal_photo_path)values\n"+"<foreachcollection=\"photoList\"item=\"item\"index=\"index\"separator=\",\">\n"+"\t(#{appealId},#{item})\n"+"</foreach>"+"</script>")//@Insert("insertintodriver_account_appeal_photo(appeal_id,appea... 继续阅读 >
202110-20 mybatis框架xml下trim中的prefix与suffix等标签的用法 trim中prefix与suffix等标签用法1.prefix前缀增加的内容2.suffix后缀增加的内容3.prefixOverrides前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了‘and'select*fromUserwherename='zhangsan'andage='20';<selectid='queryUser'>select*fromUser<trimprefix='where'prefixOverrides='and'><iftest="name!=nullandname!=''">... 继续阅读 >
202110-20 mybatis中xml之trim属性说明 mybatis的xml中trim标签有四个属性1.prefix前缀增加的内容2.suffix后缀增加的内容3.prefixOverrides前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了‘and'4.suffixOverrides后缀需要覆盖的内容,一般是最后一个数据的后面符号,如:set值的时候,最后一个值的后面多一个逗号‘,'举几个例子:1.根据用户姓名和年龄查询用户,有什么值就根据什么条件(目的是说明几个属性用法,可能例子... 继续阅读 >
202110-20 Mybatis中and和循环or混用操作(or转换成in) Mybatisand和循环or混用这次项目用到一个and和or混用的场景,因为用到多个or(循环),没想到好的办法最终转换成用IN实现:场景用leftjoin链接多个表,多个条件and筛选,其中状态(state)条件筛选出多个可选状态的条目,本来想用and和or但是or的条件是个数组参数,需要遍历states,可能0个可能多个,拼了半天没有成功,最后发现用IN和FOREACH就可以了DAO层接口List<OrderInfoForm>selectOrdersByStatesSelective(... 继续阅读 >
202110-17 Mybatis insert方法主键回填和自定义操作 在数据库插入的时候,有很多属性需要我们自己处理,如主键自增字段。MYSQL中主键根据一定规则生成后,需要我们在插入后去主动获取,以便后面的操作,Mybatis为我们提供了处理的方法。主键回填keyProperty:指定哪个字段是主键useGeneratedKeys:这个主键是否使用数据库内置生成策略我们可以在XML文件中进行如下配置:<insertid="insertUser"parameterType="user"useGeneratedKeys="true"keProperty="id">insertinto... 继续阅读 >
202110-16 MyBatis实现万能Map和模糊查询 目录万能Map模糊查询万能Map 我们在上一节博文里面将到利用Mybatis实现CRUD操作的时候,我们在数据库表中新增一条数据是这样操作的:实体类对象的字段有:packagecom.hpf.bean;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;//编写实体类User@Data@AllArgsConstructor@NoArgsConstructorpublicclassUser{privateLongid;privateStringusername;privateS... 继续阅读 >
202110-16 浅谈Mybatis SqlSession执行流程 目录Mybatis执行SQL流程SqlSessionExecutorMybatis之ExecutorMybatis之StatementHandler进入ResultSetHandlerMybatis执行SQL流程在看源码之前,我们需要了解一些基本知识,如果您没有阅读MybatisSqlSessionFactory初始化原理,可以先阅读MybatisSqlSessionFactory初始化原理这篇文章,这用更有助于我们理解接下来的文章在看源码之前,我们需要了解一些基本知识SqlSessionSqlSession是一个接口,它有两个实现类: -Defaul... 继续阅读 >
202110-16 解析Mybatis SqlSessionFactory初始化原理 目录引言SqlSessionFactory不使用XML构建SqlSessionFactorySqlSessionFactoryBuilder拓展引言现在内卷越来越严重,关于常用的ORM框架Mybatis,小编准备了三篇文章,分别将介绍SqlSessionFactory初始化原理、SqlSession执行流程,Mybatis代理模式运行方式与最终总结,这是第一篇,感兴趣的朋友可以持续关注。SqlSessionFactory每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为核心的。SqlSessionFactory的实例可... 继续阅读 >
202110-15 MyBatis基本实现过程 目录MyBaties简介MyBatis历史为什么要使用MyBatisMyBatis-HelloWorld主要步骤创建Mapper接口创建MyBatis全局配置文件创建SQL映射文件测试注意:SqlSession总结MyBaties简介MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和JavaPOJO(PlainOldJavaObject,普通的Java对象)映射成数据... 继续阅读 >
202110-15 mybatis test标签如何判断值是否相等 mybatistest标签判断值是否相等mybatis可以很方便生成动态sql,常用的方式如下:<iftest="id!=nullandid!=''">andid!=#{id}</if>但是在实际使用过程中可能会需要对某个输入的值做具体判断,然后根据输入参数的值进行分支处理<selectid="xxxx"parameterType="map"resultMap="BaseResultMap">。。。。。。。<choose><whentest="hasAttach.toString... 继续阅读 >
202110-15 MyBatis CodeHelperPro激活方法详细教程 MybatisCodeHelperPro是一款功能强大的插件,可以让IDEA使用Mybatis,帮助用户轻松进行各种程序的编程,提高工作效率,让代码编写更加便捷。之前给大家介绍过MyBatisCodeHelper-Pro插件破解版详细教程[2.8.2]插件下载地址链接:https://pan.baidu.com/s/1bufFKaE3D9vpoQXjhvysyA提取码:9pdb下载完成后解压在IDEA中本地安装插件 File>Settings>Plugins找到刚才的解压文件选择你需要的版本压缩包点击确定重启... 继续阅读 >
202110-12 MyBatis下SQL注入攻击的3种方式 目录前言Mybatis框架下易产生SQL注入漏洞的情况主要分为以下三种:1、模糊查询2、in之后的多个参数3、orderby之后二、实战思路三、总结前言SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对JavaWeb应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。Mybatis的SQL语句... 继续阅读 >