好久了,用了hibernate,ibatis等等之后,没用过JDBC都快忘记了。
最近静下心来,回到基础,重新过了一下JDBC的一些基础。
1,安装 mysql 服务端
sudo apt-get install mysql-server
2,安装 mysql 命令行客户端
sudo apt-get install mysql-client
3,安装 mysql 图形化界面
sudo apt-get install mysql-admin
4,安装完成后设置mysql 的数据库默认编码,如果不设置,默认编码为 latin1。影响我们习惯使用
进入目录
cd /etc/mysql
复制备份
sudo cp my.cnf my.cnf_bak
编辑
sudo vim my.cnf
在[client]节点下添加,如下:
[client] default-character-set=utf8 |
在[mysqld]节点下添加,如下:
[mysqld] default-character-set=utf8 |
5,重新启动mysql
service mysql restart
6,进入mysql ,查看编码是否是自己想要的编码:
mysql -uroot -p;
show variables like 'character%';
然后就可以开始建数据库和表格了
=============================邪恶的分割线=========================
写以上文字的时候还是夏天,转眼到冬天了,冬天总是那么寒冷。
又遇到了难题,用hibernate往mysql中插入中文的
时候老是报错,于是又折腾了大半天,最后找到解决的办法了:
首先说下我遇到的错误:
插入mysql的时候mysql报 什么 HY HY000 什么的搞不懂 貌似是mysql 1366错误码引起的,查了下1366错误是字符编码引起的。于是想到要解决字符编码的问题,解决如下
原来mysqlAdmistrator里面可以直接改表的字符编码,这么省事了。Apply Changes之后还会告诉你执行了什么SQL语句。
数据库表格的字符编码搞定了,我们再来看下链接数据库需要指定的编码也要对,如下配置:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/yajun?useUnicode=true&characterEncoding=GBK" /> <property name="username" value="root" /> <property name="password" value="hello" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource" /> <property name="mappingResources"> <list> <value>domain\template.hbm.xml</value> <value>domain\content.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean>
其中 useUnicode=true&characterEncoding=GBK 这个配置不能漏掉也是个关键点。
ps:如果已经把表建好了,不妨把表删除,重新以GBK方式建以下就好了。
最终搞定了。
感谢苍天。!!