public boolean findUserInfo(String loginCode){
final Object[] args = new Object[]{loginCode};
//如果是汉字 下面这句话能查出结果
//List list = getHibernateTemplate().find("from UserInfoVo where loginCode = '"+loginCode+"');
//如果是汉字 下面这句话不能查出结果
List list = getHibernateTemplate().find(" from UserInfoVo where loginCode = ?,args);
return list.size() > 0;
} 问题 : 上面所标注的红色字段
final Object[] args = new Object[]{loginCode};
//如果是汉字 下面这句话能查出结果
//List list = getHibernateTemplate().find("from UserInfoVo where loginCode = '"+loginCode+"');
//如果是汉字 下面这句话不能查出结果
List list = getHibernateTemplate().find(" from UserInfoVo where loginCode = ?,args);
return list.size() > 0;
} 问题 : 上面所标注的红色字段
比如
UserInfoVo vo = new UserInfoVo();
vo.setLoginCode("点对点");
vo.setName("点对点点对点");
vo.setPassword("123");
getHibernateTemplate().save(vo);
插入的记录也会为乱码
我真搞求不懂了
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
System.out.println((session == null));
String loginCode = "点对点";
String name = "点对点点对点";
UserInfoVo vo = new UserInfoVo();
vo.setLoginCode(loginCode);
vo.setName(name);
vo.setPassword("123");
session.save(vo);
用System.out.println打 没什么问题呢
我用mysql的时候就遇到过,是安装时编码方式的问题,安装时把编码方式设为gbk就行了,在mysql中好像有默认的,与安装的不一致会有乱码啊
要是oracle或sqlserver我就不知道了,因为没遇到过啊
应该不是数据库问题吧 我直接用pl/sql在数据库直接插入带有中文的语句都可以
而通过hibernate的save方法就不可以了 这是什么情况呢?