- 博客(21)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 Mybatis相关:pagehelper--超爽的分页插件
pagehelper是刘增辉开发的一个分页插件,支持多种数据库,号称最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。https://pagehelper.github.io/使用方式:1.在pom.xml引入依赖<!--配置分页--><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifa
2020-10-25 21:39:01 218
原创 Mybatis相关:当mybatis 方法参数为多个时报错Available parameters are [arg1, arg0, param1, param2]
当使用mybaits传递多个参数时,异常抛出如下:org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [arg1, arg0, param1, param2]解决方案将多个参数封装为对象或map集合进行传输,即可传对象或传map 使用arg0 arg1...... 或者 param1 param2等命名 先将参数声明,再使用@Param给参数...
2020-10-25 21:29:00 371
原创 Mybatis相关:基于注解的Mybatis开发
1.Mybatis常用注解@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@ResultMap:实现引用@Results 定义的封装@One:实现一对一结果集封装@Many:实现一对多结果集封装@SelectProvider: 实现动态 SQL 映射@CacheNamespace:实现注解二级缓存的使用2.基于注解的增删改查
2020-10-25 21:24:09 467
原创 Mybatis相关:一级缓存&二级缓存&脏数据的产生
1.Mybatis的缓存缓存是一般的ORM框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力。跟Hibernate一样,Mybatis也有一级缓存和二级缓存,并且预留了集成第三方缓存的接口。特点:缓存数据不可靠(可能会丢失),存放热点数据(经常使用的数据)优点:缓存大部分存在内存中,查询速度快一级缓存基于SqlSession, 二级缓存基于namespace,同一个namespace下所有数据可以共享在https://blog.csdn.net/zitian246/arti
2020-10-25 20:53:48 1053 1
原创 Mybatis相关:懒加载(延迟加载)
1.什么是延迟加载?延迟加载就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称为懒加载。好处:先从单表查询,需要时在从关联表去关联查询,大大提高数据库性能,因为查询单表比关联多张表查询速度要快得多。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。例如在查询学生信息时,要包括学生各科成绩。如果用懒加载,会变成,先查询出所有学生id,然后再拿这些id依次去数据库查询成绩,要与
2020-10-24 22:05:54 518
原创 mybatis相关:重复代码的抽离与拼接(<sql>与<include>)
有些重复次数太多的sql语句,如果每次都写,显得过于麻烦与臃肿,我们可以通过<sql>完成语句的声明,通过<include> 标签进行应用拼接 <!-- <sql>抽离重复代码 <include>进行引用拼接--> <sql id="findAllStudentsql"> select * from student_tb</sql> <select id="findAllStudent"
2020-10-24 20:43:51 845
原创 Maven相关:动态sql(if、where、foreach、include)
动态SQL是mybatis的强大特性之一,也是优于其他ORM框架的一个重要原因1.<ifhttps://www.cnblogs.com/grasp/p/11268049.html <if中的大坑。当if条件符合时才会拼接sql语句,注意where 1 = 1是因为当条件成立时 where 后面不能直接根 and 需要在and前 加 true 或者 1=1<!-- 如果 <if test="name !=null and name!=''"> ...
2020-10-24 20:38:45 732
原创 mybatis相关:事务
mybatis事务的管理也是通过setAutoCommit进行控制的默认情况下是开启事务,关闭自动提交 public SqlSession openSession() { return this.openSessionFromDataSource(this.configuration.getDefaultExecutorType(), (TransactionIsolationLevel)null, false); }如果sqlSession执行增删改动作时,需要
2020-10-24 17:58:15 109
原创 Mybatis相关:SqlMapConfig.xml中配置的内容和顺序
<configuration><!--配置--> <properties/><!--属性--> <settings/><!--设置--> <typeAliases/><!--类型别名--> <typeHandlers/><!--类型处理器--> <objectFactory/><!--对象工厂--> <plugins/><!-.
2020-10-24 17:33:01 130
原创 Mybatis相关:获取自增id的两种方式selectKey&useGeneratedKeys
1.数据准备/** * 学生实体类 */public class Student implements Serializable { private int id; private String name; private String sex; private int age; private float height; private String address; public Student() { }
2020-10-24 17:02:34 1955
原创 spring相关之代理模式(proxy)
一.什么是代理模式? 客户端不直接和目标对象(实际对象)发生交互,或不直接调用目标对象,而是通过调用代理对象来间接的调用目标对象的设计模式。二.作用(为什么要使用代理模式)当客户端不想直接访问目标对象或访问目标对象有困难时,需要通过代理对象进行间接访问 在不改变目标对象源代码的情况下,通过代理对目标对象的功能进行增强。如添加日志、事务控制,权限控制,鉴权登录等三.代理模式分类1.静态代理(了解)静态代理,代理类和i能代理某一特定的目标对象,并且对目标对象进行增强。pu..
2020-10-21 22:45:50 306
原创 mybatis相关:Mybatis中<if test>的用法与大坑
https://www.cnblogs.com/grasp/p/11268049.html
2020-10-19 21:51:00 1535
原创 mybatis相关:别名的配置(typeAliases)与驼峰映射(mapUnderscoreToCamelCase)
1.别名的两种设置在mybatis配置文件中 <typeAliases> <!--方式1:声明单个别名 使用时忽略大小写--> <!-- <typeAlias type="com.wgz.entity.MiddleStudent" alias="middleStudent"></typeAlias>--> <!--方式2:扫描包声明别名
2020-10-17 22:22:48 881
原创 面试题:${}和#{}的区别
区别:1. #{}是预编译处理(占位符,替换结果会增加单引号),${}是字符串替换。2. Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值; Mybatis 在处理${}时,就是把${}替换成变量的值。3. 使用#{}可以有效的防止 SQL 注入,提高系统安全性。·4. 获取值方式的区别:${value},#{参数名}注:表名作为变量时,必须使用${]具体分析: ...
2020-10-17 21:46:53 798
原创 Mybatis相关:ResultMap作用(结果映射,一对多,多对多等)
1.两大作用(配置结果类型):解决数据表列名和javabean属性不一致的问题 提供一对一、一对多、多对多等高级映射2.当实体类对象与数据库字段不匹配时:方案1:使用sql语句as 起别名的方式修改查询结果的名称 方案2:使用resultMap,完成数据库字段与实体类属性的映射。(可被多个sql语句共用)<!--解决列名和实体类属性不匹配方法1. select id,name ,age,sex,height,s_address as address from stude.
2020-10-16 08:41:37 5080
原创 Mybatis入门学习笔记1
1.什么是框架? 软件的半成品,解决了软件开发过程中的普适性问题,我们可以在此基础上快速开发公司定制的化的软件应用 特点:简单易学,灵活,开发速度快,提高软件质量 框架已经把关键的代码业务实现,我们只是站在巨人肩膀上2.什么是ORM框架? ORM(Object Relational Mapping ) 对象关系映射,将程序中的一个对象与表中的一行数据一一对应。 读取:将数据库表中的每一行数据映射为对象 写入:将ja...
2020-10-14 22:48:24 189
原创 idea Maven项目下载不了jar包(注意:lastUpdated)
遇到jar包下载不下来???听说这是很头疼的事?原因:下载时可能网络突然断开,或网络慢,并未直接下载完,导致生成了很多.lastUpdated文件。等到网络恢复正常后,由于这些文件的存在,刷新,重复下载也并未正常执行。(flag一下,说不定啥时候自己就遇到了呢)解决方式:最后一定要重新刷新pom...
2020-10-14 22:06:51 1577
原创 Maven生命周期
1.Maven内部有三个标准的生命周期:clean:项目清理的处理(了解) default(或build)项目部署的处理 site:项目站点文档创建的处理(了解)2.clean:执行 clean 会删除 target 目录及内容。3.default(或build)重要compile:将src/main/java下的源代码编译,输出(生成)到targe目录 test:执行 src/test/java 下单元测试类 package:创建JAR/WAR包如在 pom.xml 中定义提及的
2020-10-13 21:17:03 96
原创 Maven jar包依赖与作用范围(生命周期)
1.什么是依赖? A中的某些类使用到了B中的某些类,则产生了A对B的依赖。也可以说当A jar包用到了B jar包时,A就对B产生了依赖。导入依赖的方式 每个构件都有自己的坐标 = groupId + artifactId + version = 项目标识 + 项目名 + 版本号 在maven项目中只需要配置坐标,maven便会自动加载对应依赖。删除坐标则会移除依赖 <dependency> <!-- servlet编译环境 --> ..
2020-10-13 20:54:00 919
原创 myshop商城项目总结
项目总结1.项目开发流程需求分析:确认客户最终需求概要设计: 考虑系统的基本组织流程,组织结构、模块划分、接口设计等详细设计: 在上一步基础上,考虑模块设计的算法、数据结构,类之间的调用关系等编码、测试、交付、验收、维护2.开发环境与主要功能开发环境: 无框架数据库 Mysql 5.7+服务器 tomcat8.5集成环境 idea序号模块名称主要功能1商品显示模块分页显示所有商品查看单个商品详细信息搜索商品2用户模块新用户注
2020-10-12 19:28:47 798
原创 使用QueryRunner进行模糊查询参数数量报错问题,Like
今天在测试模糊查询时,sql语句自己测试明明没有错,debug了半天,终于发现问题所在。原因:模糊查询进行了转义 %'字段'% 的值加上了 ''导致查询报错解决办法:String newUsername="%"+username+"%"; 将要传入的参数直接加上%%,作为一个整体参数传入 @Override public List<User> getUserByCondition(String username, String gendar) throws SQLEx...
2020-10-08 13:58:03 922
myshop商城项目(可作期末课程设计),sql文件与页面梳理
2020-10-12
myshop商城项目(可作期末课程设计)
2020-10-12
数组总结(概念、定义、默认值、可变长参数、值传递与引用传递等)
2020-07-28
数据结构期末课程设计题目--输出图的所有广度遍历序列(两种代码实现附课程设计说明书)
2018-04-17
输出图的所有广度遍历序列
2017-12-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人