数据持久层
数据持久层
钦拆大仁
这个作者很懒,什么都没留下…
展开
-
Mysql推荐使用规范
a)null的列使索引/索引统计/值比较都更加复杂,对MySQL来说更难优化b)null 这种类型MySQL内部需要进行特殊处理,增加数据库处理记录的复杂性;同等条件下,表中有较多空字段的时候,数据库的处理性能会降低很多c)null值需要更多的存储空间,无论是表还是索引中每行中的null的列都需要额外的空间来标识d)对null 的处理时候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in这些操作符号。如:where name!原创 2023-08-04 15:11:14 · 311 阅读 · 0 评论 -
使用mybatis批量修改多个字段
统计表批量更新多个字段原创 2022-08-26 11:05:47 · 1018 阅读 · 0 评论 -
批量插入rewriteBatchedStatements=true
今天写导入数据涉及到批量插入的地方使用mybatisPlus saveBatch,结果执行的时候大于sql语句发现是一条一条插入的。查阅资料发现MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL另外这个选项对INSERT/UPDATE/DELETE都有效原创 2021-12-01 16:49:39 · 1944 阅读 · 0 评论 -
mybatiPlus代码生成工具
pom依赖 <!--mybatis-plus 持久层--><<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <!-- veloc原创 2021-09-28 15:12:21 · 207 阅读 · 0 评论 -
Mysql安装
1、下载地址https://dev.mysql.com/downloads/mysql/下载5.7.34版本2、解压zip包到C:\Program Files\MySQL\mysql-5.7.34目录下3、添加my.ini文件[mysqld]#端口号port = 3306#mysql-5.7.27-winx64的路径basedir=C:\Program Files\MySQL\mysql-5.7.34#mysql-5.7.27-winx64的路径+\datadata原创 2021-06-30 10:44:59 · 69 阅读 · 0 评论 -
type-aliases-package的作用
mapper.xml文件中resultType或者parameterType会使用JavaBean作为返回结果或者参数需要使用完全限定名来指定引用例如<select id="getUsers" resultType="com.icdc.entity.User">又或者你可以通过在application.properties中指定POJO扫描包来让mybatis自动扫描到自定义POJOmybatis.type-aliases-package=com.icdc.entity.原创 2021-01-27 10:03:06 · 1852 阅读 · 0 评论 -
数据库设计规约
参考《阿里巴巴Java开发手册》1、库名与应用名称尽量一致2、表名、字段名必须使用小写字母或数字,禁止出现数字开头,3、表名不使用复数名词4、表的命名最好是加上“业务名称_表的作用”。如,edu_teacher5、表必备三字段:id, gmt_create, gmt_modified说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。(如果使用分库分表集群部署,则id类型为verchar,非自增,业务中使用分布式id生成器)g.原创 2020-07-02 08:45:39 · 125 阅读 · 0 评论 -
使用mybatis-generator自动生成实体类mapping
1、引入依赖<!-- Mybatis Generator --><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version></dependency>2、添加generato原创 2020-05-19 11:51:49 · 182 阅读 · 0 评论 -
mybatis动态创建/删除表格/批量插入数据
mybatis动态创建/删除表格<update id="dropTable"> DROP TABLE IF EXISTS ${tableName} </update> <update id="createNewTable" parameterType="String"> CREATE TABLE ${ta...原创 2020-04-21 10:58:54 · 947 阅读 · 0 评论 -
Sring Data JPA使用Predicate进行模糊查询、按时间段查询
项目示例Integer num = demoDTO.getNum() == null ? 0 : demoDTO.getNum();Integer size = demoDTO.getSize() == null ? 10 : demoDTO.getSize(); PageRequest pageRequest = new PageRequest(num, size, new So...原创 2019-12-19 14:23:58 · 3812 阅读 · 0 评论 -
MySQL大数据量分页查询方法
使用数据库提供的SQL语句MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,Nselect*from dept limit800000,20 36.34秒适用于数据量较少的情况(元组百/千级)全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条...原创 2019-12-10 10:23:56 · 465 阅读 · 0 评论 -
orcale数据库以char类型数据作为条件查询数据
使用SpringBoot JPA框架在开发中遇到使用Java代码查询不到数据,但是把sql放到PLSQL工具可以查出结果//使用PLSQL工具 能查出结果select * from tb_org_info where branchId='502100';//偏偏在java代码里面查询不出结果//给查询条件的值添加两个空格后就能查出结果select * from tb_org_inf...原创 2019-12-05 10:46:49 · 722 阅读 · 0 评论 -
关系型数据库ACID与非关系型数据的CAP
ACID事务的原子性(Atomicity):是指一个事务要么全部执行,要么不执行,也就是说一个事务不可能只执行了一半就停止了。比如你从取款机取钱,这个事务可以分成两个步骤:1划卡,2出钱。不可能划了卡,而钱却没出来。这两步必须同时完成,要么就不完成。事务的一致性(Consistency):是指事务的运行并不改变数据库中数据的一致性。例如,完整性约束了a+b=10,一个事务改变了a,那么b也...原创 2019-10-23 15:41:43 · 1127 阅读 · 0 评论 -
Spring Data JPA查询实例
JPA查询public interface ConsumerCategoryRepository extends JpaRepository<ConsumerCategory, Long>, JpaSpecificationExecutor<ConsumerCategory>, Serializable { @Query(value = "select *...原创 2019-07-23 15:52:36 · 303 阅读 · 0 评论 -
Mysql数据库安装
mysql下载地址:https://www.mysql.com/downloads/安装MySQL 5.7发现没有设置root密码。先把mysql的bin目录配置到环境变量path下,打开cmd执行mysqld --initialize打开mysql安装目录下的data文件夹C:\Program Files (x86)\MySQL\MySQL Server 5.7\data,有一...原创 2019-10-16 15:14:54 · 288 阅读 · 0 评论 -
mysql常用sql
建表语句CREATE TABLE person( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '身份ID', name VARCHAR(200) COMMENT '姓名', age int COMMENT '年龄') COMMENT='人员信息'修改注释--修改表注释ALTER TABLE student COMMENT...原创 2019-10-15 11:10:33 · 105 阅读 · 0 评论 -
PLSQL Developer使用技巧、快捷键
1、类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它好用多了。2、设置关键字自动大写:Tools->Preferences->Editor,将Keyword case选择Uppercase。这样在窗口中输入sql语句时,关键字会自动大写,而其它都是小写。这样阅读代码比较容易,且保持良好...转载 2019-07-22 16:38:18 · 420 阅读 · 0 评论 -
PL/SQL DEVELOPER 使用的一些技巧
了解一点编程的常识的人都知道,编码风格很重要。在阅读代码方面,保持一致的编码风格,阅读起来比较容易;大家都应该养成一种自己的编码习惯,并保持下去。1,登录后默认自动选中My Objects默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,而选择My Objects后响应...转载 2019-07-22 16:39:15 · 258 阅读 · 0 评论 -
SQL语句分类
sql语句被分为四大类数据定义语言DDL(Data Ddefinition Language)CREATE,DROP,ALTER主要为以上操作 即对逻辑结构等有操作的,其中包括表结构,视图和索引。数据查询语言DQL(Data Query Language)SELECT这个较为好理解 即查询操作,以select关键字。各种简单查询,连接查询等 都属于DQL。数据操纵语言DML(Data Man...原创 2019-07-22 17:08:28 · 260 阅读 · 0 评论 -
MySQL的优化-面试必备
一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type:表示MySQL在表中找到所需行的方式,或者叫访问类型。常见访问类型如下,从上到下,性能由差到最好: ALL 全表扫描 index 索引全扫描 range 索引范围扫描 ref ...原创 2019-08-13 15:37:34 · 145 阅读 · 0 评论 -
数据库事务隔离级别
数据库事务隔离级别 Serializable (串行化):最严格的级别,事务串行执行,资源消耗最大; REPEATABLE READ(重复读) :保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但不能避免“幻读”,但是带来了更多的性能损失。 READ COMMITTED (提交读):大多数主流数据库的默认事务等级,保证了一个事务不...原创 2019-09-24 16:33:06 · 328 阅读 · 0 评论 -
优化sql的方法总结
在sql查询中为了提高查询效率,下面总结的一些方法进行sql优化:1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引;2、某些操作会导致引擎放弃使用索引而进行全表扫描,应该避免;在 where 子句中对字段进行 null 值判断如:select id from t where num is null,可以可以在num上设置默认值。...原创 2019-07-12 10:41:42 · 174 阅读 · 0 评论