首页 > 代码库 > 常见问题--MySQL

常见问题--MySQL

group by相关
“only_full_group_by” SQL_MODE是默认开启的,开启后只能获取受group by影响的字段,而对于非group by的信息需要通过any_value(name)函数获取(mysql 5.7之后)

ibatis annotations 注解方式返回刚插入的自增长主键ID的值
  @Insert("insert into Product(title, image, price, detail, summary, seller) values(#{title},#{image},#{price},#{detail},#{summary},#{seller})")
  @Options(useGeneratedKeys=true, keyProperty="id")//添加该行,product中的id将被自动添加public Integer insertProduct(Product product);

乱码问题

tomcat造成的乱码,在server.xml中设置:

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" />


连接数据库的URL中加入编码格式,如:

jdbc.url= jdbc:mysql://127.0.0.1:3306/electronic-business?useUnicode=true&characterEncoding=UTF-8

数据库设置:

mysql> SET character_set_client=‘gbk‘;

mysql> SET character_set_connection=‘gbk‘

mysql> SET character_set_results=‘gbk‘

mysql> SET character_set_database=‘gbk‘;

mysql> SET character_set_server=‘gbk‘

mysql> SET character_set_results=‘gbk‘

改成gbk或者utf-8都可以

常用相关命令:
查看数据库编码格式
show variables like ‘character_set_%‘;
查看数据库中的表的创建
show create table tablename;
设置数据库编码格式
set names= ‘gbk‘;
或者在mysql命令行下输入 \s查看mysql的字符集的方式

blob格式引起的乱码:
blob读出来的是ISO-8859-1编码,你需要转换为GBK编码才可以
Java code
String blob =...
blob = new String(blob.getBytes("iso-885901"),"GBK");
或者
存取大文本的时候用mediumtext而不用blob

CentOS 7 通过yum安装MySQL 5.7
1.下载YUM库
shell > wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2.安装YUM库
shell > yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
3.安装数据库
shell > yum install -y mysql-community-server
4.启动MySQL服务
shell > systemctl start mysqld.service

常见问题--MySQL