1、代码
public static void BatchUpdate(){
String hqlUpdate="update User set username=? where username like ?";Session session=HibernateUtil.getSession();
Transaction tx=session.beginTransaction();
Query query=session.createQuery(hqlUpdate);
query.setParameter(0, " 马克");
query.setParameter(1, "%mk%");
int updateCount=query.executeUpdate();
tx.commit();
HibernateUtil.closeSession();
log.info("============更新记录条数:"+updateCount+"=============");
}
2、mysql数据库
字符集utf8 -- UTF-8 Unicode
排序规则utf8_general_ci
3、数据库链接驱动也要设置编码
jdbc:mysql://localhost:3306/tablename?useUnicode=true&characterEncoding=utf8
hibernate.cfg.xml里这样写
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/tablename?useUnicode=true&characterEncoding=utf8</property>
mysql本身要设置好编码,这样才能按你的编码存数据。然后要通过jdbc驱动告诉jvm以指定的编码存数据
java本身是unicode的,如果驱动那里不设置,会按你平台的默认字符集,一般是gbk
p.s.工程text file encoding编码方式是utf8。Java虚拟机要正确加载代码里面的中文,就需要你告诉它应该以什么样的编码方式。
java本身是unicode的,如果驱动那里不设置,会按你平台的默认字符集,一般是gbk
所以jdbc驱动告诉jvm存数据的编码方式和文本编码本身就是两码事
oracle,SQL server待续。。。
http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/