202010-09 搭建MyBatis开发环境及基本的CURD介绍 一、MyBatis概述首先就是之前Javaweb中的三层结构界面层:和用户打交道的,接收用户的请求参数,显示处理结果的。(jsp,html,servlet)业务逻辑层:接收了界面层传递的数据,计算逻辑,调用数据库,获取数据数据访问层:就是访问数据库,执行对数据的查询,修改,删除等等的三层中对应的包:界面层:controller包(servlet)业务逻辑层:service包(XXXService类)数据访问层:dao包(XXXDao类)三层中类的交互用... 继续阅读 >
202010-09 MyBatis Plus配置日志CRUD的使用详解 配置日志我们所有的sql在mybatisplus是不可见的,所以在开发中需要配置日志,开发完成后,就可以取消日志了,因为日志也是损耗资源的#配置日志mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl#仅控制台输出的日志配置完日志后,后面的学习就需要注意自动生成的SQL,相信你们会喜欢上MybatisPlusCRUD使用Insert插入//测试插入@TestpublicvoidtestInsert(){Airair=newAir();air... 继续阅读 >
202010-09 MyBatis环境资源配置实现代码详解 1.pom.xml文件配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>groupId</groupId><artifactId>MyBatis_01</artifactId><packaging>pom</packaging><v... 继续阅读 >
202010-09 MyBatis使用注解开发实现步骤解析 mybatis可以使用xml文件编写映射语句,也可以通过注解来编写简单的映射语句,在官方文档中有具体描述。简单的说,因为Java注解的的表达力和灵活性十分有限,简单的一些语法可以使用注解来编写比较方便,但复杂的语句还是要使用xml文件。在之前的开发中,我们使用mybatis,需要以下几个步骤:配置核心文件创建dao接口,定义方法(如MyBatis工具类)编写Mapper.xml配置文件,在该Ml文件中编写sql语句最后把Mapper文件配置在... 继续阅读 >
202010-08 Mybatis分页插件PageHelper配置及使用方法详解 环境框架:spring+springmvc+mybatispom.xml<!--引入mybatis的pagehelper分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>配置全局配置文件在mybatis的全局配置文件中配置PageHelper分页插件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig... 继续阅读 >
202010-08 Hibernate 与 Mybatis 的共存问题,打破你的认知!(两个ORM框架) 很长一段时间,网上有很多关于Hibernate与Mybatis孰优孰劣的争论,两个阵营的人谁也不能说服谁,每个人的理由都很有道理。今天,我分享的主题是:在一个项目中同时使用Hibernate和Mybatis两个ORM框架。作为一个开发者,没有必要花费过多的时间去证明技术无用论,当你开始指责某个框架垃圾,另外一个框架最好时,隐性的暴露出你对某个框架没有深入的研究,无知的指责对于技术的提升没有任何的帮助。框架本身没有对错一说,只有适合... 继续阅读 >
202010-08 关于MyBatis10种超好用的写法(收藏) 用来循环容器的标签forEach,查看例子foreach元素的属性主要有item,index,collection,open,separator,close。item:集合中元素迭代时的别名index:集合中元素迭代时的索引open:常用语where语句中,表示以什么开始,比如以'('开始separator:表示在每次进行迭代时的分隔符close常用语where语句中,表示以什么结束在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情... 继续阅读 >
202010-08 MyBatis版本升级导致OffsetDateTime入参解析异常问题复盘 背景最近有一个数据统计服务需要升级SpringBoot的版本,由1.5.x.RELEASE直接升级到2.3.0.RELEASE,考虑到没有用到SpringBoot的内建SPI,升级过程算是顺利。但是出于代码洁癖和版本洁癖,看到项目中依赖的MyBatis的版本是3.4.5,相比当时的最新版本3.5.5大有落后,于是顺便把它升级到3.5.5。升级完毕之后,执行所有现存的集成测试,发现有部分OffsetDateTime类型入参的查询方法出现异常,于是进行源码层面的DE... 继续阅读 >
202010-08 Mybatis环境搭建及文件配置过程解析 mybatis的环境搭建:1、创建maven工程并且导入坐标:即我们需要在pop.xml文件中添加我们需要的依赖具体方法:搜索maven中央仓库,搜索你需要的依赖jar包,比如我搜索mybatis点击第一个,选择需要的版本再点击,比如我选择的是3.4.6版本将里面的代码粘贴到pop.xml文件中注意需要在两个depenencies之间,然后等待一会,maven会自动下载需要的jar包这些做好之后我们就继续配置mybatis环境了:我们使用mabatis需要保证我们对数据库... 继续阅读 >
202010-08 Java mybatis常见问题及解决方案 我们建立目录时一定得是这个格式java中的目录结构和resource中的机构一定要一样,这是为了配置文件能准确映射到相应注意看我的Java中有一个方法july.wild.dao.IUserDao,在resources中也有一个配置文件july/wild/dao/IUserDao.xml注意这个写法,不能变,因为我们在java目录下创建的是子包,而在resources目录下创建的时子目录,如果改了就会有提示找不到文件当因为maven版本问题时:maven报错:不再支持源选项5。请使用7或... 继续阅读 >
202010-08 SpringBoot集成Mybatis过程步骤图解 添加mybatis的起步依赖添加数据库的驱动坐标添加数据库的连接信息(需要重点注意)与SpringBoot建立联系创建User表创建User实体编写mapper配置Mapper映射文件编写测试Controller测试在上述的这些步骤中,前面几步是比较核心的东西,后面只是验证SpringBoot和Mybatis是否整合成功,在整合是还需要注意一些细节,比如数据库的版本问题等以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。... 继续阅读 >
202010-08 Mybatis数据批量插入如何实现 1:xml的配置<insertid="insertUserBatch">insertintouser(username,birthday,sex,address)VALUES<foreachcollection="list"item="User"index="index"separator=",">(#{User.username},#{User.birthday},#{User.sex},#{User.address})</foreach></insert>2:测试@TestpublicvoidinsertUserBatch(){List<User>users=newArrayList<User>();Useruser1=newUser();use... 继续阅读 >
202010-08 Javaweb mybatis接口开发实现过程详解 mapper.xml文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--门店表的映射文件namespace值为对应接口的全路径--><mappernamespace="com.tedu.dao.DoorMapper"><!--1.查询所有门店信息,id值为对应接口中方法的名字resultType指定将查询的结果封装到哪个pojo对象中--><selectid="findAll"... 继续阅读 >
202010-08 详解Mybatis中的 ${} 和 #{}区别与用法 Mybatis的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${}我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串,举个例子:select*fromstudentwherestudent_name=#{name}预编译后,会动态解析成一个参数标记符?:select*fromstudentwherestudent_name=?而使用${}在动态解析时候,会传入参数字符串se... 继续阅读 >
202010-08 MyBatis 中 ${}和 #{}的正确使用方法(千万不要乱用) 1、#{}是预编译处理,MyBatis在处理#{}时,它会将sql中的#{}替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如上面的值“4,44,514”就会变成“‘4,44,514'”;2、是字符串替换,在处理是字符串替换,MyBatis在处理时,它会将sql中的{}是字符串替换,在处理{}是字符串替换,MyBatis在处理{}时,它会将sql中的是字符串替换,在处理是字符串替换,MyBatis在处理时,它会将sql中的{}... 继续阅读 >
202010-08 详解Mybatis框架SQL防注入指南 前言SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对JavaWeb应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。一、Mybatis的SQL注入Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。Mybatis中SQL语句需要我们自己手动编写或者用g... 继续阅读 >