美文网首页
spring boot jpa 连接mysql问题汇总

spring boot jpa 连接mysql问题汇总

作者: bibichuan | 来源:发表于2018-08-10 10:16 被阅读30次

    1、jpa插入mysql时中文乱码

    (1)在mysql中新建查询 show variables like 'char%',看到character_set_server的值为latin1,

    (2)修改mysql.ini中

    [mysqld]下的

    character-set-server=utf8

    (mysql5.7的ini在C:\ProgramData\MySQL\MySQL Server 5.7目录下)

    2、jpa查询时不区分大小写,在Mysql数据库中进行查询时,希望英文严格区分大小写。默认情况下是不区分大小写的。

    Mysql默认的字符检索策略:utf8_general_ci,表示不区分大小写;utf8_general_cs表示区分大小写,utf8_bin表示二进制比较,同样也区分大小写 。(注意:在Mysql5.6.10版本中,不支持utf8_genral_cs!!!!)

    所有方式一:创建表时,直接设置表的collate属性为utf8_general_cs或者utf8_bin;如果已经创建表,则直接修改字段的Collation属性(或叫排序规则)为utf8_general_cs或者utf8_bin。

    创建表:

    CREATE TABLE testt(

    id INT PRIMARY KEY,

    name VARCHAR(32) NOT NULL

    ) ENGINE = INNODB COLLATE =utf8_bin;

    如果表已经创建,则修改表结构中Collation字段

    这时候,再执行上面的两条sql语句,则会严格区分大小写。

    (2).第二种方式比较简单,是直接修改sql语句,在要查询的字段前面加上binary关键字即可。

    SELECT * FROM emp WHERE BINARY emp.job='Engineer'

     SELECT * FROM emp WHERE BINARY emp.job='ENGINEER'

    链接:https://www.imooc.com/article/14190

    3、日期类型的字符串排序,空值在最上面

    SELECT * FROM projects ORDER BY LENGTH(trim(pubdate))<1 DESC,pubdate DESC

    相关文章

      网友评论

          本文标题:spring boot jpa 连接mysql问题汇总

          本文链接:https://www.haomeiwen.com/subject/nzfkbftx.html