以下就总结一下Mybatis的使用中的一些不太注意的技巧,算是Mybatis的总结笔 1.插入时主键返回 我们向数据库插入一条记录是,使用Mybatis的<insert>是无法返回插入的主键的,而我们需要这个刚插入的主键,可以如下返回 自增主键:使用last_insert_id()查询刚插入的key的id,该方法需要和insert配合使用,是插入之后获取. result返回的是插入成功条数,而主键id返回到CourseInfo的id属性中 <insert id="insert&…
一:引言 在学习完前面的mybatis基本语法后,大家都有个认知,这个Mybatis太强大了,比之前使用JDBC写方便多了,但是你们当初在使用原生JDBC写SQL查询的时候有没有遇到过多表查询呢?肯定大部分人都遇到过,我刚学JDBC的时候遇到多表查询我懵了,不知道如何应对,所以我就默默的执行2条SQL语句,分别查询不同的表,然后对这2个查询出来的数据通过java代码控制,使封装到对象中,这个简直要崩溃的感觉,但是学完Mybatis多表查询后,你会爱上Mybatis的 准备工作:我已经准备好了一对…
一. Mybatis+Ehcache配置 为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率. 整合MyBatis和ehcache需要的jar包如下: ehcache-core-2.4.4.jar mybatis-ehcache-1.0.0.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.2.jar 资源已上传…
开园这么多年了也没写几篇文章,现在想想光看别人的也不行啊,咱也自己写写,就写这天我我在做spring mvc与mybatis的集成时遇到的问题 1 spring与mybatis的集成 这个相信大家都弄过吧,不过我还是要说说.首先咱们得先把项目大体的架子搭起来,本人用的IDEA,废话不多说来上图 这是我的spring和mybatis的项目的结构,这我相信大家都能看明白,不用我多说什么.其实最主要的还是applicationContext.xml文件 <?xml version="1.0&qu…
之前使用springMVC+spring+mybatis,总是被一些繁琐的xml配置,有时候如果配置出错,还要检查各种xml配置,偶然接触到了spring boot 后发现搭建一个web项目真的是1分钟的事情,再也不用去管那么多xml配置,简直神清气爽,不用看那么多一坨xml,下面是我把以前的一些ssm项目改成了spring boot + mybatis,相对于来说优点太明显了 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自…
1.本文速览 本篇文章是我为接下来的 MyBatis 源码分析系列文章写的一个导读文章.本篇文章从 MyBatis 是什么(what),为什么要使用(why),以及如何使用(how)等三个角度进行了说明和演示.由于文章的篇幅比较大,这里特地拿出一章用于介绍本文的结构和内容.那下面我们来看一下本文的章节安排: 如上图,本文的大部分篇幅主要集中在了第3章和第4章.第3章演示了几种持久层技术的用法,并在此基础上,分析了各种技术的使用场景.通过分析 MyBatis 的使用场景,说明了为什么要使用 MyB…
本文将利用 Spring 对 MyBatis 进行整合,在对组件实现解耦的同时,还能使 MyBatis 框架的使用变得更加方便和简单. 整合思路 作为 Bean 容器,Spring 框架提供了 IoC 机制,可以接管所有组件的创建工作并进行依赖管理,因为整合的主要工作就是把 MyBatis 框架使用中所涉及的核心组件配置到 Spring 容器中,交给 Spring 来创建和管理. 具体来说,业务逻辑对象依赖基于 MyBatis 技术实现的 DAO 对象,核心是获取 SqlSession 实例.要…
mybatis generator默认生成 的注释太奇葩了,完全不能拿到生产去用,不过幸亏提供了接口可以自己扩展.长话短说,要生成如下的domain, package com.demo.domain; /** test_mybatis */ public class TestMybatis { /** 主键 */ private Integer id; /** 字段说明 */ private String name; public Integer getId() { return id; } p…
MyBatis假分页 参考DefaultResultSetHandler的skipRows方法. 温馨提示:部分代码请参考轻量级封装DbUtils&Mybatis之一概要 解决方案 1)之前公司同事,亦师亦上司勇哥已经处理过分页的逻辑:自定义一个包装类包装SqlSession,完全开放SqlSession的各类访问方法,直接可通过传入RowBounds(包装offset&limit)参数完成分页逻辑. 2)参考mybatis-pagination项目. 备注:因为个人希望不要和MyBati…
前言:在mybatis的使用中,我们会习惯采用XXMapper.java+XXMapper.xml(两个文件的名字必须保持一致)的模式来开发dao层,那么问题来了,在XXMapper的文件里只有接口,里面只有方法体,在XXMapper.xml的文件里,里面只有sql,而在java中,方法调用必须通过对象,除非是静态方法,但是一般的接口里面的方法都不是静态的,那么mybatis的对象在哪里?是如何产生的,本篇博客我们就通过源码来解释一下这个问题. 如果不懂代理模式的同学,首先请看一下我的另一篇bl…
我们说MyBatis有两种注入参数的方式, - 一种是#{} - 另一种是${} 这两种从使用功能来看差距不大,那为什么会强推使用#? ${}使用的是拼接字符串,#{}使用的是占位符的方法,经过了处理,故#{}可以更好的抵挡sql攻击 在Mybatis的使用中,如果用${}注入字符串,需要在两边用单引号包裹,而使用#则将有后期处理,不需要用单引号包裹…
在前面的文章中,笔者详细介绍了 MyBatis 框架的底层框架与运行流程,并且在理解运行流程的基础上手写了一个自己的 MyBatis 框架.看完前两篇文章后,相信读者对 MyBatis 的偏底层原理和执行流程已经有了自己的认知,并且对其在实际开发过程中使用步骤也已是轻车熟路.所谓实践是检验真理的唯一标准,本文将为大家介绍一些 MyBatis 使用中的一些实用插件与自定义插件.本文涉及到的代码已上传至 GitHub: mypagehelper-demo . 话不多说,现在开始! 1. Lombok…
在Android使用到am和进行一些操作是非常方便的,比如一个重复自动的操作,具体用来实现一些什么是看个人需求了,接下来说对于am和input的使用. 本文适用于已经大概去了解了am和input的朋友,如果暂时不了解,这里推荐两篇文章大家可以去看看,我就不说了,说了也多是抄,当然如果您是大牛,请忽略本文,本文主要是一些使用中的经验,和一些小技巧 am: http://blog.csdn.net/u010164190/article/details/51384099 input: http://b…
目录 1.mybatis的官方文档地址 2.其他技巧: 2.1 如何在代码中拼接 like %% 2.2 数据库比较时日期的错误操作 2.2.1 异常情况: 2.2.2 为什么会在后面指定jdbcType,及真正的错误与那样? 2.2.3 关于什么时候使用jdbcType? 2.3 SQL和resultMap中字段对应关系异常分析 2.3.1 SQL中有,ResultMap中没有: 2.3.2 SQL中没有,ResultMap中有 2.3.3 总结: 1.mybatis的官方文档地址 mybat…
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不到前进的方向.这个时候你特别希望能有人告诉你,你还欠缺些什么朝着哪个方向努力.而导致这一问题的主要原因是由于日常的业务开发太过于复制过去,日复一日的重复.没有太多的挑战,也没参与过较大体量的业务场景,除了这些开发场景因素外,还有缺少组内的技术氛围和技术分享,没有人做传播和布道者,也缺少自己对各项技术…
Deep Learning and Shallow Learning 由于 Deep Learning 现在如火如荼的势头,在各种领域逐渐占据 state-of-the-art 的地位,上个学期在一门课的 project 中见识过了 deep learning 的效果,最近在做一个东西的时候模型上遇到一点瓶颈于是终于决定也来了解一下这个魔幻的领域. 据说 Deep Learning 的 break through 大概可以从 Hinton 在 2006 年提出的用于训练 Deep Belief…
最近正好有时间空下来,前一段时间本来打算呢,写一写阶段的总结,今天就来谈谈吧.作为一个java入门小白,之前就职于浙江大华,是通过大华10月份秋季招聘通过大华的面试. 浙江大华校招采用模式是先笔试.再面试.笔试题目不算太难,不过基本很细致,有涉及到集合容量增长方式(要查查集合ArrayList等源码中就会知道).IO流.数据库操作.多线程死锁等问题. 笔试题目是网上完成的,然后就是面试.这就是校招容易的地方,校招时候人特别多,而且简历筛选也不是很容易,所以主要看面试,面试时间10分钟左右,面试官…
1. 本周学习总结 2. 书面作业 注释的应用: (1)源文件注释采用 /** -- */,在每个源文件的头部要有必要的注释信息,包括:文件名:文件编号:版本号:作者:创建时间:文件描述包括本文件历史修改记录等.中文注释模版: (2)类(模块)注释采用 /** -- */,在每个类(模块)的头部要有必要的注释信息,包括:工程名:类(模块)编号:命名空间:类可以运行的JDK版本:版本号:作者:创建时间:类(模块)功能描述(如功能.主要算法.内部各部分之间的关系.该类与其类的关系等,必要时还要有一些…
搭建环境:Intellij IDEA 2017 JDK 1.8 Tomcat 8.5 MySQL 5.7 Spring 4.x Mybatis 3.x 这个过程确实太麻烦了,我用了两个小时 所以建议用SpringBoot,简单很多很多 第一步:创建项目 创建一个空项目 第二步:创建父工程 File-->New-->Module 选中Maven,不勾选Create from Archetype,直接Next 输入组ID:通常是com.xxx.项目名 输入ArtifactID:common-par…
最近在学一个东西,要使用SSM新建一个案例,是这样滴,我有如下 DeptDAO DeptService DeptServiceImpl DeptController Dept Mybatis 首先,我不是太清楚有了DAO还要有Service,不过这个不是本文章的重点. 重点是,报如下错,两个不同的错误吧 错误1: 2019-04-02 22:09:08.697 ERROR 12080 --- [nio-8001-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServl…
MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了. MyBatis Plus的资料不算是太多,与MyBatis相比.所以将可能用到的记录下来.分页及其搜索对于web开发是非常常用的. 使用MyBatis Plus已经有5个多月,开发的效率,的确提高不少.虽然前面有MyBatis的逆向工程,可以生成单表的增删改查,但是呢?看起来繁杂,用起来不爽,因为还得看一大堆sql和一些queryvo,…
1.The setting logImpl is not known 我在参考某个网站学习mybatis时,出现这个错误,后来找到的原因是因为mybatis的版本(3.1.1)太低,换成3.3.1就没有这个错误了.…
前言: 说到监控方案,市面上开源的有很多,最常用的zabbix,深入使用zabbix以后,才知道zabbix设计团队有多厉害,简直是一个完美的监控告警方案.但是在针对docker的监控上还差点,需要自己写监控脚本实现.为此从去年开始调研针对docker的监控方案,如下: 1,cadvisor+influxdb+grafana 优点:部署方便,cadvisor监控docker主机和docker信息,influxdb记录数据,grafana展示 缺点:1,无法获取cpu使用率,cadvisor采集到…
作者:刘国华链接:https://www.zhihu.com/question/35218485/answer/118472021来源:知乎著作权归作者所有,转载请联系作者获得授权. 从使用感受而言,VCL甩MFC不知道多少条街,VCL虽然是基于Pascal实现的,然后C++Builder又在上面套了一层C++的壳,但是对于使用C++的人来说,已经非常好用了.记得当时(2002年左右)是在书店无意间看到一本介绍C++Builder的书,翻开看了看,感觉像是发现了宝贝:“原来C++开发工具还有这么…
序言 Dubbo一款分布式服务框架,作为阿里巴巴SOA服务化治理方案的核心框架,通过高性能和透明化的RPC实现服务的远程调用,对服务的负载均衡以及项目的耦合性提供很强的解决方式;具体Dubbo的介绍和优缺点请自行搜索,本篇就主要写一下SpringBoot对Dubbo的整合,之前看网上有很多讲解的总感觉不是很清楚,不够详细,然后这篇主要用来边学习边回忆吧;该篇文章项目地址:https://github.com/zhaopeng01/SpringBoot_Dubbo 正文 创建项目 在以下项目搭建之…
pom.xml是配置文件: <dependencies>表示依赖,里面可以有多个<dependency> 比如当前使用了junit的jar包,版本是3,8,1,我们现在更换新的junit版本 这里我们就需要中央仓库:http://mvnrepository.com/ 搜索:junit 转到eclipse上,把配置文字替换一下: 未保存之前本地仓库没有junit 4.11的jar包,当把pom.xml保存之后,在本地找不到则会从中央仓库下载 当项目复杂时,比如Spring整合Spri…
使用体验koaconst Koa = require('koa');const app = new Koa();app.use(ctx => { ctx.body = 'Hello Koa'; });app.listen(3000);123456expressconst app = require("express")();app.use((req,res,next)=>{ res.status(200).send("<h1>headers ...&l…
结果   填坑失败,并没有看懂是如何检测sql攻击的. 只能说的是: 建议都使用参数化传递sql语句参数.(所以,用hibernate.mybatis等框架的真不用太担心sql攻击问题.) 前言 本文主要是为了填坑:[spring]jdbcTemplate之sql参数注入 在上文中的demo是: 正确sql: select c.child_id childId,c.child_name,c.child_age childAge,c.parent_id parentId from child c…
Qzone 微信 神作!阿里首发并发编程神仙笔记,Github已星标92K JAVA超神编程 2020-09-23 21:04:06 JVM 无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了) 详细介绍了JVM有关于线程.内存模型.JVM运行时内存.垃圾回收与算法.Java中四种引用类型.GC 分代收集算法 VS 分区收集算法.GC 垃圾收集器.JAVA IO/NIO .JVM…
JVM无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在JVM上了) 详细介绍了JVM有关于线程.内存模型.JVM运行时内存.垃圾回收与算法.Java中四种引用类型.GC 分代收集算法 VS 分区收集算法.GC 垃圾收集器.JAVA IO/NIO .JVM 类加载机制的各大知识点. 基本概念: JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集.一组寄存器.一个栈. 一个垃…