MyBatis

大家都说mybatis会自动回滚事务(如果增删改没有提交事务的话,不会写入到数据库中),为什么我没有?

瘦欲@ 提交于 2020-08-17 12:38:46
问题 今天复习一下mybatis,看到别人说事务自己也去了解一下 他们都说 mybatis增删改需要手动提交事务 ??? 我看了一下自己的代码?我没有写提交啊?但是我的测试结果?和数据库查看结果都是成功的?有写入到数据库啊!!! 那为什么到我这里不 需要提交事务 ?好奇的我想要去了解 猜想1 既然数据库需要手动提交事务,那肯定有 自动提交事务 难道是我在这里被设置为自动提交事务了? 马上查看代码 private static SqlSessionFactory sqlSessionFactory ; static { try { String resource = "mybatis-config.xml" ; InputStream inputStream = Resources . getResourceAsStream ( resource ) ; sqlSessionFactory = new SqlSessionFactoryBuilder ( ) . build ( inputStream ) ; } catch ( Exception e ) { e . printStackTrace ( ) ; } } public static SqlSession getSqlSEssion ( ) { return sqlSessionFactory . openSession

mybatis 的 DefaultVFS 日志乱码问题

↘锁芯ラ 提交于 2020-08-17 11:54:00
mybatis 的 DefaultVFS 日志乱码问题 mybatis DefaultVFS 乱码 1. 问题描述 今天在启动同事搭建的工程时,发现 console 中乱码,细看下,是 mybatis 的 DefaultVFS 打印的日志乱码。 2. 寻找问题 看到问题,不解决痒的不行。 于是,打开 mybatis 的源码,找到打印乱码日志的代码,如下: 乱码日志打印 从上图我们可以看出来,从字节流转化为字符流时,没有指定字符编码,而我们的控制台打印编码设置的为 UTF-8 3. 解决问题 找到问题后,我们重写此方法即可,详细代码如下: package com.feshfans; import org.apache.ibatis.io.DefaultVFS; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; import java.io.*; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.jar.JarEntry; import java.util.jar.JarInputStream;

事务对数据库的性能有什么影响?有无索引查找对数据库性能影响多大?不跟你多bb,反手就是一波实例连招---MySql insert 2000万条数据性能测试和select有无索引查找测试

余生颓废 提交于 2020-08-17 11:08:31
文章目录 1、插入测试 1.1 插入耗时实测 1.2 TestDemo 1.3 测试代码: 1.3.1 MybatisTest 1.3.2 TestBean 1.3.3 TestMapper 1.3.4 mybatis.xml(mybatis配置文件) 1.4 过程体验 1.5 数据量 1.5.1 计数用时 1.5.2 占用硬盘空间 2、索引查询测试 2.1 索引检测 2.2 对有无索引的字段where查询比较 2.2.1 无索引字段 2.2.1 有索引字段 2.3 建立索引 2.3.1 索引创建 2.3.2 索引查询 2.3.3 查询新建立索引字段 3、总结 3.1 事务对数据库性能影响 3.2 数据库索引对数据库查询性能分析 1、插入测试 在此次测试中数据库表有三个字段,id(自增主键)、username、password。 图1 1.1 插入耗时实测 实测: 插入30多万条数据,采用一次事务提交一条sql语句,耗时2小时以上,具体没统计,因为计划是这样插入2000万条数据的,但由于太慢提前终止了,所以插入30多万条数据。 插入2000万条数据,采用一次事务提交10万条sql语句,耗时50多分钟,将近1小时(若是老铁们做这样的实验,可以加上一个时间对象,这样可以看的更加清晰)。 1.2 TestDemo 图2 1.3 测试代码: 1.3.1 MybatisTest import

配置使用Logback统一日志规范

眉间皱痕 提交于 2020-08-17 10:41:08
安装Grep Console插件 Grep Console是一款和IDEA Console相关的插件 可以通过expression表达式过滤日志、给不同级别的日志或者给不同pattern的日志加上背景颜色与上层颜色。 传送门: https://plugins.jetbrains.com/plugin/7125-grep-console/versions 配置logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds"> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> <!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --> <!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->

连mybits工作原理都不懂,你敢说你自己会java?

隐身守侯 提交于 2020-08-17 09:23:39
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一、相较于Hibernate,mybatis的优势在哪里? Hibernate缺点: 1、运行效率低,内存占用比较严重 2、针对单一对象的增删改查,适合Hibernate,而Hibernate在批量操作时处于弱势 3、虽然Hibernate引入一二级缓存、lazyload、查询缓存等更多优化空间(对于那些改动 不大且经常使用的数据,可将他们放入缓存中),但Hibernate对于持久层封装过于完 整,导致开发人员无法对sql进行优化,不适用于大型项目 mybatis优点: 1、代码量大大减少,开发效率高 2、 MyBatis相当灵活,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统 一管理和优化,并可重用 3、运行效率高 二、mybatis原理 下面是mybatis的一个原理图,看懂这个图对理解mybatis工作原理很重要: 上面的原理图看的不是很清晰,下面再详细介绍一下mybatis的主要成员: 1、Configuration MyBatis所有的配置信息都保存在Configuration对象之中,配置文件的大部分配置都会存储到该类中 2、SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互时的会话,完成必要数据库增删改查功能 3

15M/S!百度网盘偷偷更新,终于实现免费不限速了!

安稳与你 提交于 2020-08-17 09:20:20
点击上方 " 程序员小乐 "关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 All problems, and ultimately is a matter of time. All the worry, in fact is a bother. 一切问题,最终都是时间问题。一切烦恼,其实都是自寻烦恼。 每日掏心 话 累了,那就停下来,拍一拍灰尘,让心灵重归洁净。昨天是今天的历史;今天是明天的历史;今天也是昨天的历史;明天也是今天的历史。 来自:扩展迷EXTFANS(ID:infinitydaily)、快科技 | 责编:乐乐 程序员小乐(ID:study_tech) 第 916 次推文 图源:百度 往日回顾: 真赞!IDEA中这么玩MyBatis,让编码速度飞起! 正文 给你讲个笑话:百度网盘的下载速度。 作为国内仅剩的几款网盘之一,它的占有率是绝对的No.1。但一直以来,百度网盘限速都是一个老生常谈的问题。 动辄几十KB/s,甚至几KB/s,慢的让人痛不欲生。普通用户限速也就罢了,后来就连付费的超级会员也毫不留情地被限死。 如果是下载一个几MB大小的文件,限速100KB/s忍忍就过去了。 在下载大文件的时候,限速的问题就非常难顶了。 这种情况下,也就催生了一批不限速的第三方网盘下载工具,包括浏览器插件、脚本、客户端等等。

Mybatis学习笔记- 为何需要Mybatis框架

北战南征 提交于 2020-08-17 07:43:18
持久层技术解决方案: JDBC技术: Connection PreparedStatement ResultSet Spring的JdbcTemplate: Spring中对JDBC的简单封装 Apache的DBUtils: 它和Spring的JdbcTemplate很像,也是对JDBC的简单封装 以上这些都不是框架 JDBC是规范 Spring的JabcTemplate和Apache的DBUtils都只是工具类 JDBC技术的问题: Mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等反之的过程。 Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后又mybatis框架执行sql并将结构映射为java对象并返回 。 采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。 ORM:Object Relational Mapping 对象关系映射,就是把数据库表和实体类及实体类的属性对应起来,让我们可以操作实体类就是先操作数据库表。

诺禾致源:Java培训要多长时间?需要学习什么内容?

帅比萌擦擦* 提交于 2020-08-17 07:24:23
杭州Java培训要多长时间?需要学习什么内容? 浙江优就业 07-14 15:22 Java行业是很注重技术与工作经验的,零基础的人想找Java相关工作比较困难,需要先学习一定的Java知识才行,而参加Java培训是快速学习Java技术的一条捷径。当然在选择Java培训机构的时候首先要了解Java培训的学习时间与学习内容才行,下面小U就来介绍下 杭州Java培训要多长时间?需要学习什么内容? 杭州Java培训要多长时间? 不同的培训机构,不同的培训方式,Java培训时长也是不同的。优就业杭州Java全日制面授班的学习时长为6个月左右,因为Java学起来相对比较难,所以学习时间会比较长。 杭州Java培训需要学习什么内容? 优就业杭州Java培训课程内容是根据企业需求研发的,涵盖时下热门的Java技能,高度契合企业需求。并且在专业技术学习的同时,融入大量全真项目实训,理论与实战相结合,帮助学员学会、学懂。优就业杭州Java培训课程内容分为六个阶段,分别为: 第一阶段JavaEE基础,主要包含的知识点有:Java基础语法、面向对象、核心类库、集合、异常、IO、线程、JDK新特性、阶段考核。 第二阶段JavaWeb开发,主要包含的知识点有:前端技术、数据库、JAVA数据库操作、软件服务器及服务器相关技术、动态网页JSP、AJAX、优就业-在线医疗系统、阶段考核。 第三阶段Java高级框架

Mybatis学习(三):Mybatis注解开发、缓存使用和插件使用的深度分析

旧城冷巷雨未停 提交于 2020-08-17 05:20:34
Mybatis学习(三):Mybatis注解开发、缓存使用和插件使用的深度分析 前言 一、Mybatis传统XML配置开发 1.1 一对一查询 1.1.1 新建作者实体类—Author 1.1.2 新建博文实体类—Blog 1.1.3 新建BlogMapper接口类 1.1.4 新建BlogMapper.xml 1.1.5 新建sqlMapConfig.xml配置文件 1.1.6 新建测试类Test 1.1.7 测试结果 1.1.8 ==注意== 1.2 一对多查询 1.2.1 修改作者类 1.2.2 新建AuthorMapper接口 1.2.3 新建AuthorMapper.xml 1.2.4 新建测试方法 1.2.5 测试结果 1.3 多对多查询 1.3.1 修改博文类 1.3.2 新增标签类 1.3.3 修改BlogMapper接口 1.3.4 修改BlogMapper.xml 1.3.5 新增测试方法 1.3.6 测试结果 二、Mybatis注解开发 2.1 Mybatis注解 2.2 Mybatis的CRUD之注解开发 2.2.1 新建用户类User2 2.2.2 新建UserMapper2接口 2.2.3 修改sqlMapConfig.xml 2.2.4 新增测试方法 2.2.5 测试结果 2.3 一对一查询之注解开发 2.3.1 修改sqlMapConfig.xml

MyBatis传入参数为List对象

蹲街弑〆低调 提交于 2020-08-17 04:32:26
SSM框架是JavaWeb必学的框架,虽说基本的增删改查很简单,但是当面临一些特殊情况时,有时还是会显得手足无措,此篇用来记录一些特殊场景下Mybatis框架的应用. 传入参数为List对象 1. 场景复现 首先有如下一张表: MySQL [test]> select * from t_entry_resource; +----+-------------+------+----------+--------+--------+---------------------+ | id | resource_id | type | title | banner | icon | add_date | +----+-------------+------+----------+--------+--------+---------------------+ | 11 | 6 | 14 | 分类 | 1.jpg | 2.jpg | 2017-11-17 11:22:30 | | 12 | 3 | 1 | 测试12 | 3.jpg | 4.jpg | 2017-11-17 11:22:30 | | 13 | 653 | 1 | 测试34 | 5.jpg | 6.jpg | 2017-11-20 02:32:26 | | 14 | 1 | 1 | 测试5 | 7.jpg | 8.jpg |