程序执行hibernate语句查询到数据库里的char型字段,返回的只有该字段的首字母
来源:互联网 发布:乐华电视软件下载 编辑:程序博客网 时间:2024/06/06 12:33
用的mysql数据库,原表结构:
id int,
name varchar(10),
age int,
role char(20)
@Test
public void findBySql(){
ApplicationContext ac = new ClassPathXmlApplicationContext("spring-hibernate.xml");
UserDao dao = ac.getBean("userDao", UserDao.class);
String sql="select name,age,role from tbl_user_info";
List<Object[]>list=dao.findAllBySql(sql);
System.out.println("*role1*:"+list.get(0)[2]);
System.out.println("*role2*:"+list.get(1)[2]);
System.out.println("*role3*:"+list.get(2)[2]);
}
当role字段设置为定长字符char(20)型测试时,控制台输出只有字段首字母:
*role1*:p
*role2*:d
*role3*:d
当把role字段改为可变字符varchar(20)型测试时,控制台输出了完整字段:
*role1*:professor
*role2*:doctor
*role3*:database
查找资料,原来是因为:char类型在java中只占2个字节即1个字符大小,所以数据库里的char类型字段传过来后保持类型不变,就只能保留住一个字符了。
解决方法:
1、修改SQL为:select name,age,trim(role) from tbl_user_info;
2、或者将数据库里的字段类型修改为varchar型。
- 程序执行hibernate语句查询到数据库里的char型字段,返回的只有该字段的首字母
- Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题
- 查询mysql数据库字段里的字符串
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- Hibernate的createSQLQuery 查询数据库类型为char的字段时要注意
- 数据库查询的字段
- 关于用Hibernate执行sql查询,字符字段类型只返回第一个字节的问题
- hibernate中的query查询原生sql语句,如何获得返回记录中的每一个字段的值
- 查询数据库的 sql语句 返回字段 和类 属性的关系
- Hibernate之使用sql语句查询多个表,返回多种字段,将返回结果映射到自定义的普通pojo类中
- sql select语句查询的时候增加一个字段到结果里,
- Hibernate查询char类型的字段,char类型字段被封装成Character后只取char的第一个值
- createSQLQuery 查询数据库类型为char的字段时
- sql语句查询数据库里的所有表名,字段名
- sql语句查询 sql server access 数据库里的所有表名,字段名
- sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
- sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
- sql语句查询:sql server和access 数据库里的所有表名,字段名
- 计算机网络概述(四)
- lucene入门
- win10与ubuntu16.04双系统时间不同步问题的分析与解决
- 考虑使用静态工厂代替构造器
- HDU 5985 概率问题
- 程序执行hibernate语句查询到数据库里的char型字段,返回的只有该字段的首字母
- python学习之基础知识(二)
- Java设计模式初识(了解设计模式)
- Android线性布局重要属性
- python笔记_1
- 训练日记-20
- dhcp、pxe、cobbler 程序安装
- 模拟实现strcpy(C语言)
- 1jquery选择元素