mysql
风中~少年
以梦为马 不负韶华
展开
-
树形结构表设计
最近面试,被问到一个树形结构如何设计表结构。我说了最常用的设计方式。1、数据存储一张表,设计字段:parent_id 。如下图:这样会导致数据量大的话递归查下效率低下。 2、设计中间表,多对一关系。但是好像都没有达到面试官的期望。这样会导致数据存储再多张表,浪费数据库内存。而且数据量大的话,关联查询效率也是问题。在此第三种设计思路就出来了:3、基于左右值编码的Schema设计,如下图:类似二叉树的设计。 ...原创 2020-08-22 17:08:30 · 3967 阅读 · 0 评论 -
mysql update select
如果需要更新结果集中的数据需要利用以下方式进行:这里的left join 可以是右连接、内连接等等update user aleft join (select id from role where role_name is null or role_name = '' )bon a.id = b.id set a.name= 'Tom'...原创 2020-08-18 18:18:57 · 107 阅读 · 0 评论 -
docker 安装常用软件命令
Mysql 5.7:docker run --name mysql-dev -p 3306:3306 -v /work/mysql/conf:/etc/mysql/conf.d -v /work/mysql/logs:/logs -v /work/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7进入mysql容器方法:docker exec -it 容器id /bin/bash然后查看配置文件地址:原创 2020-06-29 11:50:09 · 373 阅读 · 0 评论 -
Mybatis 一级缓存
mytabis一级缓存在表被删除更新操作时缓存对象引用会被移除 一级缓存是会话级别的 mybatis-plus selectList和updateBatchBy方法使用了两个不同的sqlSession.原创 2020-05-15 00:11:13 · 169 阅读 · 0 评论 -
mybatis-plus 无法更新空字符串或者null
原因:mybatis-plus对字段的验证策略导致的。这个在yml中为: #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" field-strategy: 2解决方法:1:把字段策略改为0.并且需要确保你的PO对象修饰字段的时候,还需要加入el属性,每个属性对应数据库的jdbcType类型,这样才能成功更新空值或null。如下:/*...原创 2020-03-23 15:44:50 · 2176 阅读 · 0 评论 -
mysql数据库默认时间 0000-00-00 00:00:00,导致后台报错
解决方法:数据库url后加上zeroDateTimeBehavior=convertToNull原创 2020-03-12 16:58:01 · 819 阅读 · 0 评论 -
Springboo引入Activity 和mybatis-plus 报错
错误信息如下:Caused by: java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.MybatisConfiguration.getLanguageDriver(Ljava/lang/Class;)Lorg/apache/ibatis/scripting/LanguageDriver; at com.baomidou.m...原创 2019-08-15 15:33:21 · 2177 阅读 · 0 评论 -
MyBatis Generator 代码生成器生成表字段不正确或选择错数据库
问题】 使用MyBatis Generator生成器时,发现Mapper文件中出现字段与连接数据库不符,经过查找发现该表是其他数据库的同名表的字段。【解决问题】 在构造文件中,这里是generatorConfig.xml添加连接数据库参数nullCatalogMeansCurrent=true<jdbcConnection connectionURL="jdbc...原创 2019-07-04 15:22:14 · 3374 阅读 · 2 评论 -
Mybatis 批量插入报错 org.apache.ibatis.executor.ExecutorException: No setter found for the keyProperty 'id
在mybatis的配置文件中,有个叫keyProperty和useGeneratedKeys的属性。useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。具体用法:useGeneratedKeys=”true” keyProperty=”...原创 2019-06-15 15:07:02 · 7690 阅读 · 0 评论 -
mysql运行报The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time z
时区的错误,因此只要将时区设置为你当前系统时区即可, 因此使用root用户登录mysql,按照如下图所示操作即可。 记录一下原创 2019-03-18 15:08:08 · 92 阅读 · 0 评论 -
SpringBoot 学习
首先选择Spring Initializr选择这4个依赖最后点击完成即可,SpringBoot入口如下:其中@ComponentScan 标识需要扫描那些包@MapperScan 标识dao层package com.zzidc.demo.controller;import org.mybatis.spring.annotation.MapperScan;im...原创 2019-03-18 15:06:25 · 122 阅读 · 0 评论 -
mybatis
执行update语句时,set多个字段,中间不可以加and.需要用","不然会报"Truncated incorrect DOUBLE value";原创 2019-02-28 09:47:14 · 74 阅读 · 0 评论 -
Mysql sql_mode设置 timestamp default 0000-00-00 00:00:00 创建表失败处理
原文引用地址:https://blog.csdn.net/achuo/article/details/54618990往数据库里创建新表的时候报错:[Err] 1067 - Invalid default value for 'updateTime'DROP TABLE IF EXISTS `passwd_reset`;CREATE TABLE `passwd_reset` ( ...转载 2018-09-28 23:36:48 · 736 阅读 · 0 评论 -
MySQL创建数据表TIMESTAMP类型字段问题
今天在导入数据时出现了这个错误: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause意思时一张表中不能同时又两个默认当前时间的timestamp 字段。 百度解决办法如下:1、把第...原创 2018-09-28 23:34:24 · 9730 阅读 · 0 评论