Hibernate插入mysql数据库中文乱码解决
使用ant工具编译程序,运行程序.命令:ant -f xxx.xml指定生成文件;ant run编译并运行文件。
如果Hibernate将中文插入mysql数据库,调用select语句中文显示乱码,则mysql的编码方式设为gbk,注意这里是小写,不用重新安装mysql数据库,将MySQL Server 5.1目录下的my.ini配置文件里的所有default-character-set设为gbk,注意小写,即可。
同时自己创建hibernate数据库时要设定数据库的默认编码方式:
create database hibernate default charset=gbk;
这样仍不行,考虑设定hibernate数据库中表的默认编码方式。(很重要)另外,在java源代码中n.setTitle("你好吗");之前也可添加转码语句,根据情况而定,这里可有可无。
String na="";
try{
na="疯狂联盟成立了";
byte bb[]=na.getBytes("GBK");
na=new String(bb);
}catch(UnsupportedEncodingException ex){
throw new RuntimeException("unsupported encoding type.");
}
然后在hibernate.cfg.xml属性文件里添加
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>
中文乱码问题解决,一切OK。
这里UTF-8也可为GB2312,GBK。
注意要添加import java.io.*;
相关文档:
//得分计算四舍五入
SELECT ROUND((SUM(getfeng)/SUM(totalfeng))*100) as feng from answerdata WHERE uid='151' AND targetid IS NOT NULL
1.ceil () /ceiling() 向上取整
例: ceil(1.2) = 2
2.floor () 向下取整
例: floor(1.2) = 1
3.round() 四舍五入
&n ......
1.myisam表不支持外键,innodb才支持外键
2.mysql外键的列类型和主表中相应的主键列类型必须一致,即类型一致、长度一致,否则会报错。ERROR 1005: Can't create table (errno: 150)
3.在一个数据库中外键名字不能重复,否则会报ERROR 1005: Can't create table 'XXXXXX' (errno: 121) ......
语法:
select * from table_name where column_name regexp '正则表达式'
或区分大小写
select * from table_name where column_name regexp binary '正则表达式'
支持的正则表达式符号:
. 任意字符
| 或,如:a|b|c
[] 范围,比如:[a-z],[0-9],[^0-9]不包 ......
一、事务处理(myisam引擎不支持事务,innodb引擎支持事务)
(1)start transaction
(2)commit
(3)rollback,rollback to [savepoint name]
(4)savepoint [savepoint name]
(5)set autocommit=0 or 1
(6)release savepoint [savepoint name]
注意:create、drop等操作,不能回退
二、字符集
1.字符编码 ......