hibernate自动建表设置default charset=utf8

本文详细介绍了如何在MySQL配置文件中修改字符集,解决在使用Hibernate时自动生成的表字符集与期望不符的问题,并提供了具体的配置步骤和注意事项。

经过无数次的实验,跟度娘经过无数次的交谈。。什么修改my.ini和my.cnf都无效。。

我的目的就是一个,既然hibernate能够自动建表,难道就不能让默认的

| t_html_top | CREATE TABLE `t_html_top` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `dateName` varchar(255) DEFAULT NULL,
  `dateValue` date DEFAULT NULL,
  `visitCountName` varchar(255) DEFAULT NULL,
  `visitCountValue` int(11) DEFAULT NULL,
  `textFieldWidth` int(11) DEFAULT NULL,
  `textFieldHeight` int(11) DEFAULT NULL,
  `textFieldName` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
变成我想要的charset=utf8吗

| t_html_top | CREATE TABLE `t_html_top` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `dateName` varchar(255) DEFAULT NULL,
  `dateValue` date DEFAULT NULL,
  `visitCountName` varchar(255) DEFAULT NULL,
  `visitCountValue` int(11) DEFAULT NULL,
  `textFieldWidth` int(11) DEFAULT NULL,
  `textFieldHeight` int(11) DEFAULT NULL,
  `textFieldName` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8|

终于在一片文章中发现了宝贝。。。

虽然找的很辛苦,虽然是乱群当中取出并尝试得出的结果,还是要保留一个记录,方便以后查看:http://blog.youkuaiyun.com/liujimmy/article/details/4879269


通过配置文件设置创建数据库时字符集:

#vi /var/lib/mysql/mydb/db.opt

default-character-set=latin1

default-collation=latin1_swedish_ci为default-character-set=utf8

default-collation=utf8_general_ci


只修要修改对应数据中的db.opt配置就搞定了。


当然,我也在my.cnf中加入了一些配置,免得又出现乱码。

[client]
default_character_set=utf8
port        = 3306
socket        = /var/run/mysqld/mysqld.sock

[mysqld_safe]
pid-file    = /var/lib/mysql/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
port        = 3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp
lc-messages-dir    = /usr/share/mysql
explicit_defaults_for_timestamp

我的mysql版本是linux下最新的。。

Your MySQL connection id is 7
Server version: 5.6.20 MySQL Community Server (GPL)



CREATE TABLE `ctp_dictionary` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典编号', `dic_name` varchar(255) NOT NULL COMMENT '字典名称', `dic_code` varchar(255) NOT NULL COMMENT '字典编码', `dic_status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 1正常 0停用', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `data_state` varchar(1) DEFAULT NULL COMMENT '数据删除状态,0-未删除,1-已删除,默认未删除', `created_by` varchar(30) NOT NULL COMMENT '创人', `created_date` datetime NOT NULL COMMENT '创时间', `last_modified_by` varchar(30) NOT NULL COMMENT '最后修改人', `last_modified_date` datetime NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据字典'; CREATE TABLE `ctp_dictionary_item` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '字典项编号', `dic_id` varchar(255) NOT NULL COMMENT '数据字典主id', `dic_item_name` varchar(255) NOT NULL COMMENT '字典标签', `dic_item_value` varchar(255) NOT NULL COMMENT '字典值', `dic_item_status` tinyint NOT NULL DEFAULT '1' COMMENT '状态 1可用 0停用', `display_seq` int DEFAULT NULL COMMENT '显示排序', `remarks` varchar(255) DEFAULT NULL COMMENT '备注', `is_default` tinyint NOT NULL DEFAULT '0' COMMENT '是否默认 1是 0否', `data_state` varchar(1) DEFAULT NULL COMMENT '数据删除状态,0-未删除,1-已删除,默认未删除', `created_by` varchar(30) NOT NULL COMMENT '创人', `created_date` datetime NOT NULL COMMENT '创时间', `last_modified_by` varchar(30) NOT NULL COMMENT '最后修改人', `last_modified_date` datetime NOT NULL COMMENT '最后修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据字典项';这两个,字典删除的时候,先将从字典实体中删除,映射条件是字典的id和字典实体中的dic_id映射,给出核心代码
08-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值