12 2020 档案
摘要:一、Mybatis拦截器介绍 Mybatis拦截器设计的思路是为了供用户灵活的实现自己的逻辑,而不动mybatis固有的逻辑,简而言之就是如果Mybatis是一只虾,我们要做的是将虾肉掏空,放入自己喜欢吃的东西进去,而依旧保持吓得壳身。通过Mybatis拦截器我们能拦截某些方法的调用,我们可以选择在
阅读全文
摘要:一、脏数据产生 二级缓存虽然能提高应用效率,减轻数据库服务器的压力 ,但是如果使用不当,很容易产脏数据,这些脏数据会在不知不觉中影响业务逻辑,影响应用的实效,所以我们 需要了解在MyBat 缓存中脏数据是如何产生的,也要掌握避免脏数据的技巧。MyBatis二级缓存是和命名空间绑定的 ,所以通常情况下
阅读全文
摘要:mybatis之redis集成缓存配置使用番外篇https://www.cnblogs.com/yeyuting/p/14206888.html 当时执行得时候出现了这个异常错误,折磨了我一下午,头秃炸裂。。。。。。。。。。。。。 网上搜索了无数解决方案,最开始以为是缺少了redis客户端,在那里倒
阅读全文
摘要:编写配置文件得时候出现编写得内容下面全都是波浪线,而且都不可识别, 我编写的时候发现每行下面全都带有波浪线。 这时我们需要设置一下: 这时配置中波浪线消失: 至此,结束。
阅读全文
摘要:1. 下载对应tar驱动程序,下载地址:http://gnuwin32.sourceforge.net/packages/gtar.htm 2. 将下载好得tar应用程序放入C:\Windows\System32目录下: 3. 执行指令tar xvzf redis-stable.tar.gz,不是内
阅读全文
摘要:在cmd窗口中执行wget后系统提示不是内部和外部命令,这时需要对wege进行配置才能顺利运行,先下载wege驱动程序:https://blog.jinchuang.org/wp-content/uploads/2017/03/wget.zip 1. 把下载好的wget.exe 移动到 C:\Win
阅读全文
摘要:前面两篇文章介绍了一级缓存和二级缓存。MyBatis 默认提供的缓存实现是基于 Map 实现的内存缓存,己经可以满足基本的应用。但是当需要缓存大量的数据时,不能仅仅通过提高内存来使用 MyBatis二级缓存,还可以选择些类 EhCache 的缓存框架或 Redis 缓存数据库等工具来保存 Mybat
阅读全文
摘要:一、配置二级缓存 1. 在mybatis_config.xml中进行如下配置: <setting name="cacheEnabled" value="true"/> 其实这里的二级缓存默认是出于开启状态,因此这个位置可以不进行配置,知道有这么回事儿即可。 2.MyBatis二级缓存是和命名空间是绑
阅读全文
摘要:一级缓存又叫做本地缓存,在程序启动的时候就会正常启动,一般不加以设置的话就是默认启动一级缓存模式,先看一下一级缓存到底是如何起到作用的。 1. 正在com.example.simple下新建CacheTest类,代码如下: package com.example.simple.mapper; imp
阅读全文
摘要:前两篇博文对枚举处理器进行了详细的介绍,这里对枚举Enum的用法进行一个大致总结,以便于更好的理解代码逻辑。 还是以Enabled枚举类为例子进行汇总: package com.example.simple.type; public enum Enabled { enabled(1), //启用 d
阅读全文
摘要:上一篇的枚举处理器的配置初步解决了枚举问题 ,但有的时候,值既不是枚举的字面值,也不是枚举的索引值,这时就需要自行设计枚举处理器了。 1. 对Enabled类进行修改,代码如下: package com.example.simple.type; public enum Enabled { enabl
阅读全文
摘要:在sys_role中存在一个属性叫做enabled,这个属性的作用是判断此角色状态是否在用,0代表禁用,1代表可用。但是在Sys_Role类中使用的Enabled类型是Integer,这种情况下需要手动校验Enabled值是否符合要求,当数值较少的时候处理起来还相对较为容易,但是数值复杂的时候处理起
阅读全文
摘要:1. 首先看一下数据库要完成的存储过程(我用的数据库是DBeaver,这里也给出Navicat for Mysql中的存储过程实现,两个不同软件代码实现不太一样) Navicat for Mysql中存储过程代码: 插入用户信息和角色关联信息: drop procedure if exists `i
阅读全文
摘要:1. 首先看一下数据库要完成的存储过程(我用的数据库是DBeaver,这里也给出Navicat for Mysql中的存储过程实现,两个不同软件代码实现不太一样) Navicat for Mysql中存储过程代码: -- 第二个存储过程 -- 简单根据用户名和分页参数进行查询,返回总数和分页数据 d
阅读全文
摘要:1. 首先看一下数据库要完成的存储过程(我用的数据库是DBeaver,这里也给出Navicat for Mysql中的存储过程实现,两个不同软件代码实现不太一样) Navicat for Mysql中存储过程代码: -- 第一个存储过程 -- 根据用户id查询用其他信息 -- 多个输出参数 deli
阅读全文
摘要:resultmap与resulttype的区别为:对象不同、描述不同、类型适用不同 一、对象不同 1、resultmap:resultMap如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。 2、resultType:resultTy
阅读全文
摘要:1. 当为select语句时: flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。 useCache默认为true,表示会将本条语句的结果进行二级缓存。 2. 当为insert、update、delete语句时: flushCache默认为true,表示任
阅读全文
摘要:Mybatis映射文件的<select>标签主要帮助我们完成SQL语句查询功能,<select>标签它包含了很多属性,下面简单对<select>标签的属性做一个归纳 一、一般情况下用得到的属性: id:唯一指定标签的名字 resultType:查询结构返回的数据类型,自动进行封装操作 paramet
阅读全文
摘要:有时一个单独的数据库查询会返回很多不同数据类型(希望有些关联〉的结果集。discriminator 鉴别器标签就是用来处理这种情况的,鉴别器非常容易理解,因为它很像java语言中的 switch语句。 1. roleMapper.xml中: <resultMap id="rolePrivilegeL
阅读全文
摘要:collection 集合的嵌套查询通过自下而上的过程来实这样一个两层嵌套的功能,并且这个自下而上的过程中的每一个方法都是一个独立可用的方法,最后的结果都是以前一个方法为基础的,所有对象设置为延迟加载,因此每个方法都可以单独作为一个普通(没有嵌套)的查询存在。 1. privilegeMapper.
阅读全文
摘要:<id property="id" column="id"/> 我们对 id标签的理解是,它配置的字段为表的主键(联合主键时可以配置多个 id 标签),因为myBatis 中resultMap 只用于配置结果如何映射,并不知道这个表具体如何。 id 的唯一作用就是在嵌套的映射配置中判断数据是否相同,
阅读全文
摘要:一个用户拥有多个角色,每个角色拥有多个权限 一、先实现一个用户拥有多个角色 1. 首先在SysUser中加入SysRole字段 private List<SysRole> roleList; public List<SysRole> getRoleList() { return roleList;
阅读全文
摘要:一、最基本的一对一映射方法 1. UserMapper.xml中代码如下: <select id="selectUserAndRoleById" resultType="com.example.simple.model.SysUser"> select u.id, u.user_name userN
阅读全文
摘要:在数据库中,由于大多数数据库设置不区分大小写 ,因此下画线方式的命名很常见,如user_name、user_email 。在 Java 中,一般都使用驼峰式命名,如 userName、userEmail因为数据库和 Java 中的这两种命名方式很常见,因此 MyBatis 还提供一个全局属性mapU
阅读全文
摘要:早上上班打开idae时发现界面跳出这个问题,当时不以为然,后来过来三十分钟后,哦豁,真给我强制退出了,百度搜了一大堆方案,发现很多注册码都没法用,后来在http://idea.lanyus.com/中找到了注册码包,然后就能正常使用了。 我用的注册码是这个:提示是2018版本,我自己版本是2019也
阅读全文
摘要:一、mybatis-config.xml配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org
阅读全文
摘要:这篇随笔我们来解决上一篇随笔中路径设置时出现的问题: 这里提示log4j.appender找不到,但是我的文件目录中有这个配置: 这时就应该考虑此配置文件是不是没放在root级上执行,配置文件的执行都需要设置在root级上执行,这时需要将其添加成source文件: 这时就已经将其设置为source文
阅读全文
摘要:首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终
阅读全文
摘要:一、首选需要添加文件头: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//
阅读全文
摘要:解决方案: 此刻,就会出现新建的.xml模板: 新建generatorConfig.xml文件,如下: 出现了报红,点击左边的小红点,选择"fetch external resource",报红消失。 此时就配置好了generatorConfig.xml文件。
阅读全文
摘要:1. 新建package包的时候发现package选项不见了: 2. 解决方案: 右击source,选择“Mark Directory as” Source Root,即可新建package。
阅读全文
摘要:一、除了上篇提到的bind标签外,当数据库切换时,sql标签很多需要做相应的变化,为解决这种情况,引入了databaseIdProvider标签,让其完成多个数据库切换和sql语句的不变。 1. mybatis_config.xml中添加标签: <databaseIdProvider type="D
阅读全文
摘要:1. concat标签 <if test=” userNarne != null and userNarne ! = ””> and user name like concat ’, #{ userNarne },’ </if> 使用 con cat 函数连接字符串,在 yS QL 中,这个函数支持
阅读全文
摘要:一、根据主键更新(传对象) 1. 接口是: /* * 根据主键更新 * */ int updateById(SysUser sysUser); 2. xml下: <update id="updateById"> update sys_user set user_name = #{userName},
阅读全文
摘要:一、根据用户id和角色的enabled状态获取用户的角色(传参形式) 1. 接口如下: /* * 根据用户id和角色的enabled状态获取用户的角色 * @param userId * @param enabled * */ List<SysRole> selectRolesByUserIdAnd
阅读全文
摘要:一、 mybatis插入一条数据 1. UserMapper.java接口中插入函数如下: /* * 新增用户 使用useGeneratedKeys方式 * 测试主键自增的值 这里 主键自增的值不作为参数传递 直接由数据库那边赋值 * */ int insert4(SysUser sysUser);
阅读全文
摘要:JSONObject.toJSONString 在Java开发中,通常需要将一个实体对象转换成Json字符串,使用FastJson来实现这种转换十分方便,只要使用FastJson中JSONObject静态类提供的toJSONString()静态方法即可,但是如果不了解这个方法,很有可能就会使得转换后
阅读全文
摘要:1. JSONObject,JSON对象中有一个键对应一个值,大括号形式包含,{key:value} 2. json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的 Json对象中添加的是键值对,JSONArray中添加的是Json对象 JSON对象创建方法: // JsonObj
阅读全文
摘要:1.Map:是指Interface Map<K,V> K - key的类型 V - value的类型 从中可以看出,Map是一个接口,他的每个元素包含一个Key对象和Value对象,两者存在对应的映射关系,通过Key对象可以唯一找到value对象,Key是绝不能重复的,当Key相同的,其对应的Val
阅读全文
摘要:1. controller中通常会出现注解: @AnnotaLog(value = "true",operateType = LogEnum.UNOPERATE) 2. 注解实现如下 @Documented @Target(ElementType.METHOD) @Retention(Retenti
阅读全文
摘要:@RequestMapping 一般情况下都是用@RequestMapping(method=RequestMethod.),因为@RequestMapping可以直接替代以上两个注解。 @GetMapping 是一个组合注解,用于将HTTP GET请求映射到特定处理程序方法的注释。是@Reques
阅读全文
摘要:转载自:https://www.cnblogs.com/taiyonghai/p/9402734.html nginx:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ra
阅读全文
摘要:telnet:Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直
阅读全文
摘要:导入外部maven文件出现了下面报红情况,逛了好久网站和博客后,受到启发后一步步解决了这个问题。 1. 这是报红界面: 2. 这是因为idea中装在jdbc时默认装在idbc4,如果要装载jdbc6,需要手动配置。 3. 首先先下载好jdbc6.jar,放在对应目录下,这是我自己放的目录: 4. 进
阅读全文
摘要:跑程序时经常会出现Mapper.xml文件找不到情况,这时一般情况是mapper路径配置出现了问题。一般解决方案如下: <resources> <resource> <directory>src/main/resources/com/example/simple</directory> <inclu
阅读全文
摘要:早上跑程序的时候出现了这样的提示: 这是因为mybatis-config.xml路径需要是root路径,和src是同级,才能顺利读取到mybatis-config.xml。而此时我的Java文件中mybatis路径是这样: 此时mybatis-config.xmll在config路径下,不是在roo
阅读全文
摘要:有时候在idea中打开一个Java文件夹后,变成如下情况 目录展开变成了一行,这时: 先build一下看看,有时候可能是项目未完全加载所致,如果build后依旧还是没变化,则: 1. 关闭程序 2. 将其变成一列时需要将文件包下.idea包删除 3. 再打开程序,目录变成竖向排列。 到此,结束。
阅读全文

浙公网安备 33010602011771号