MyBatis

Springboot 2.0.4 整合Mybatis出现异常Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

久未见 提交于 2020-10-23 06:47:20
Springboot 2.0.4 整合Mybatis出现异常Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 参考文章: (1)Springboot 2.0.4 整合Mybatis出现异常Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required (2)https://www.cnblogs.com/HackerBlog/p/9599334.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4685222

【实践】mybatis批量插入map

别说谁变了你拦得住时间么 提交于 2020-10-23 05:05:14
需求 近期项目在测试上出了些问题,主要原因是我们项目中使用的Doris,然后线上和测试环境隔离,线上有数据,Doris没数据,需要将线上数据往测试环境弄一部分,所以写了个小程序导入了一下 思路 因为不止一张表,所以想着写个通用的代码,把表的部分传进来就可以同步,这样的话,就绝对不能用实体类来传输数据,所以用map, 用map还有一个问题是之前没写过map的批量插入,所以稍微查了查,这里做个记录,大家可以看一下 首先是从线上查询的部分,如下: <select id="search" resultType="java.util.Map"> select * from ${tableName} order by ${orderBy} desc limit #{pageNo},#{pageSize} </select> 然后是插入的部分,如下 <insert id="insert" parameterType="java.util.Map"> insert into ${tableName} ( <foreach collection="columnMap" item="value" index="key" separator=","> `${key}` </foreach> ) values <foreach collection="mapList" item="columnMap"

MyBatis if标签判断字符串是否相等

混江龙づ霸主 提交于 2020-10-23 03:30:01
mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候: 1. 可以是: <if test="type=='X'.toString()"> 2. 也可以是: <if test = 'type== "Y"'> 但是注意不能使用: <if test="sex == 'Y'"> </if> 或者 <if test="sex == Y "> </if> 另外注意的是判断等于是需要两个 == 等号的,判断不等于使用 !=,真是坑啊! 来源: oschina 链接: https://my.oschina.net/jacklinnn/blog/4299408

要去面试,先刷完这16道高频面试题,阿里,字节跳动,美团任你选

限于喜欢 提交于 2020-10-23 02:30:55
1.JDK8 新特性 Lambda 表达式-也是函数编程的一种方式(将函数做为参数) 方法的应用,应用已有的java类对象的方法或者构造器。与Lambda表达式相结合,方法应用使得语言构造更加简洁,从而减少代码的冗余 默认方法,默认方法就是一个在接口里边有了一个实现的方法 新工具-新的编译工具,如:Nashorn引擎jjs,类依赖分析器jdeps Stream API - 把真正的函数式编程风格引入到Java中。 Date Time API - 加强对日期与时间的处理 Optional 类 - Optional 类已经成为Java 8 类库的一部分,用来解决空指针异常 Base64 Java8 内置了Base64 编码的编码器和解析器 2.hashMap 底层实现?当你put一个元素时,在底层结构是如何执行的? 首先需要知道在不同的JDK版本上面hashMap 的实现是有区别的: JDK8之前: 数组 + 链表 JDK8之后:数组 + 链表 + 红黑树 当你put元素时: #### 执行步骤: a.计算该元素的hashCode 值 b.通过计算它的hashCode 值去确定数组下标,数组的初始化16大小,增长因子为0.75 c.当存在哈希冲突是,相同的hashCode 值得到的数组下标就是会一样的,则单纯的数组则不满足,需要链表的支持 d.链表满足长度大于8时转成红黑树,那为啥8呢

浅谈Mybatis的一级缓存和二级缓存

柔情痞子 提交于 2020-10-23 02:14:44
MyBatis的缓存机制 缓存的引入 当我们大量执行重复的查询SQL语句的时候,会频繁的和数据库进行通信,会增加查询时间等影响用户体验的问题,可以通过缓存,以降低网络流量,使网站加载速度更快. MyBatis的一级缓存 默认情况下,MyBatis只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。这也就是大家常说的MyBatis一级缓存,一级缓存的作用域是SqlSession。 第1种情况:同个session进行两次相同查询 代码验证 //测试一级缓存 @Test public void testCache ( ) throws IOException { //加载配置文件 InputStream rs = Resources . getResourceAsStream ( "MyBatisConfig.xml" ) ; //获取工厂建造类 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder ( ) ; //获取工厂对象 SqlSessionFactory build = sqlSessionFactoryBuilder . build ( rs ) ; //获取SqlSession对象 SqlSession sqlSession = build .

零基础要怎么学JAVA?

瘦欲@ 提交于 2020-10-22 18:11:42
零基础要怎么学Java ?相信这是很多初学者入门Java都需要考虑担心的问题,根据我自己过来的学习经验,我的看法是这样的: 一:先作为初学者,我们要了解Java能做什么? 1、web开发,应用场景最多的一个分支。具体有哪些呢,最常见的就是淘宝,京东等等 2、安研发,应用排行第二。具体的应用有哪些?所有的安手机上的app应用。 3、桌面应用开发,应用场景第三。具体的有哪些呢?你们现在用的eclipse就是。当然也有其他的比如,大数据,但用在大数据上非常少,没一门语言有他的优势,也有他的不足,没有任何事情是完美的嘛。 二.作为-个Java初学者,应该怎么学Java ? 我给出的ava学习路线是这样的: JavaSE/数据库/Jdbc/前端基础/Javaweb/Spring/Mybatis/Maven/Springboot/Reids/Springcloud/Linux/Git.JavaSE:java基础,既然是基础,那肯定是最重要的,所以学习的时候也是需要重点学习的地方。 数据库:为什么要学数据库呢,因为我们的web数据需要持久化到磁盘上统一管理 ,而数据库无疑就是最好工具。目前主流的关系型数据库有mysql 和oracle。我建议先学mysql。为什么呢mysql相比Oracle难度要低,而在国内应用场景又最多的。 学会了mysq可以开发出一一个完整的产品了,再学oracle都可以的

陌陌开源了一款IDEA插件,用于分析Java静态代码中存在的漏洞

南笙酒味 提交于 2020-10-22 17:33:06
近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力。 MOMO 安全团队认为,绝大部分 Web 安全漏洞源于编码,更应止于编码。 因此,MOMO 安全组针对公司内部广泛使用 Intellij IDEA 开发工具自主研发静态代码安全审计插件(MOMO Code Sec Inspector),以此辅助研发团队在编码过程中发现潜在的安全风险,并为其提供漏洞一键修复能力。 效果演示 演示一,XXE 漏洞发现与一键修复 演示二,Mybatis XML Mapper SQL 注入漏洞发现与一键修复 项目地址 gitee地址:https://gitee.com/mirrors/momo-code-sec-inspector-java 推荐阅读 腾讯 Git 规范出炉,写给开发者的指南! 最棒 Spring Boot 干货总结(超详细,建议收藏) 我的天,Spring Boot 居然还有 Plus 版本 来源: oschina 链接: https://my.oschina.net/u/4374544/blog/4684689

mybatis保存后返回自增主键值id

此生再无相见时 提交于 2020-10-22 01:00:01
保存细节,获取保存数据的id 每次保存用户后,往往需要数据库返回的自增的主键值,进行下一步工作【给用户增加权限…】 如果没有保存完成后返回id这个功能。那么我们就需要在进行一次查询,这对我们来说是极其痛苦的,不光要多写SQL,多写方法,对我们来说时间是最宝贵的,项目经理给你做模块的时间一般都是不够用的。如果时间都用来写无营养的SQL,那么就避免不了加班了。 下面就来说一下怎么怎么实现 首先我们知道,在MySQL数据库中有这么一个函数 last_insert_id();此方法会查询到最后一次保存的id - 例如 - insert into tbl_user(name,age) values(“zhangsan”,“25”); - select last_insert_id(); 我们的MyBatis底层就是实现的这个函数 在UserDao接口中创建一个保存用户的方法 public interface UserDao ( ) { //保存用户的方法,并且返回数据库自增的id Integer saveUserReturnId ( User user ) ; } 在映射文件中编写SQL【不同点】 <!--id写到接口中方法名 parameterType输入参数类型--> <!--useGeneratedKeys

记录一下mybatis一对多数据查询

谁说胖子不能爱 提交于 2020-10-22 00:05:37
需求说明:需要查询一个集合,集合对象中有list<对象> 1、连个resultMap的column不能一样,不然查出数据对象中的list是本对象 2、建议用左连接查询 3、查询出的字段名称要与 resultMap 中的字段名一直不然会出先list.size()有数据但是集合为null的情况 < sql id ="Base_Column_List_DiscussBuch" > d.id as d_id ,d.userId as d_userId,d.articleId as d_articleId, d.replyId as d_replyId,d.replyUserId as d_replyUserId, d.discuss as d_discuss,d.isDelete as d_isDelete,d.createTime as d_createTime, d.updateTime as d_updateTime,u.realName as d_userName,u.avatarColor as d_avatarColor </ sql > < sql id ="Base_Column_List_DiscussBuchDD" > d.id as dd_id,d.userId as dd_userId,d.articleId as dd_articleId, d.replyId

Mybatis配置文件中Select元素标签输入参数有多少种输入方式呢?

眉间皱痕 提交于 2020-10-21 20:33:10
Mybatis配置文件中Select元素标签输入参数有多少种输入方式呢? FU 如需要跟多资料请点击下方图片⬇(扫码加好友→备注66,不备注拒绝添加哦) Select元素标签输入方式 基本数据类型 字符串类型 Map 类型 Java bean 类型 案例实操 输入参数分类 基本类型,字符串,java bean,map,数组(删除操作时体现),List(添加时体现)等每种情况定义如下 基本数据类型 Statement 定义 <!-- 查询客户--> <select id="queryCustomerById" parameterType="int" resultType="com.xxx.pojo.Customer"> SELECT id,user_name 'userName',user_balance 'userBalance' FROM yg_customer WHERE id=#{id} </select> CustomerDao方法定义 Customer queryCustomerById(int id); 字符串类型 Statement 定义 <!-- 查询客户--> <select id="queryCustomerByName" parameterType="string" resultType="com.xxx.pojo.Customer"> SELECT id