hibernate4中使用createSQLQuery方法执行sql语句的用法
2015-08-26 19:16
441 查看
下班了,公司人都走了,还好这是一个不加班的公司,比上一家公司好多了,能学得东西也多了,唯一不好的就是老板太抠,工资太少,没奖金,等等,等,不过这些都是小事。哥是来学技术的,到时候学到手了,不愿意留人我就得走了。梦想是要进大公司的。
写文章相当于做每天的笔记吧,家里电脑也烂了。写不了,就在公司写写。
一.今天使用Hibernate要用sql语句进行查询。所以想到用createSQLQuery方法
2.addEntity表明你要返回的list是什么类型的。默认返回list.;
3.如果想只返回某几列可以这样做:
1.addScalar的方法就是你要指定返回的列,第1个参数是要返回的列,第二个参数是类型,但是在select 的时候还是指定"*"号,查询所有但是也只返回指定的列。
总结:不全以后用到再来总结,一下从别人那搬过来也记不住,做过才是理解最深的.
二.关于spring项目项目启动时就初始化类得三种方式:
1.通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;
2.通过<bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;
3.在指定方法上加上@PostConstruct或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用。
三:关于FASTJSON注解的使用
1.比如我想在实体转json字符串的时候不用实体的某个名字,使用另外一个名字,那么我就可以使用JSONFIELD(name="别名"),实例化出来之后就是你想要的名字了。
@JSONField(name="laneNo")
/* */ private int laneID;
2..如果你想指定某个实体里面的某些属性不参加转化
可以使用这个注解。
@JSONField(serialize=false)
/* */ private String direction;
四.关于初始化类在启动的时候实例了两次,我的原因是在web.xml文件中实例化了两次spring的配置文件导致的。
1.这就是今天的收获吧,写的不好,也有点赶时间。就当一个日记吧,希望在这条路上走的越来越好,也希望和我的女朋友关系变好。就这样,祝大家工作愉快,注意身体!
写文章相当于做每天的笔记吧,家里电脑也烂了。写不了,就在公司写写。
一.今天使用Hibernate要用sql语句进行查询。所以想到用createSQLQuery方法
StringBuffer sql = new StringBuffer(); sql.append("select * "); sql.append(" from vms_segmentdata t "); sql.append(" where t.detectiontime between to_date(?, 'yyyy-MM-dd hh24:mi:ss') and "); sql.append(" to_date(?, 'yyyy-MM-dd hh24:mi:ss') "); sql.append(" and t.linkid like 'FBD_EH_S____' "); Session session = getHisSession(); @SuppressWarnings("unchecked") List<VmsSegmentData> segmentDatas = (session .createSQLQuery(sql.toString()).addEntity(VmsSegmentData.class) .setString(0, startHour).setString(1, endHour)).list();1.setString()方法是动态绑定,给问号赋值。 记住是从0开始,我写的时候犯了错误。
2.addEntity表明你要返回的list是什么类型的。默认返回list.;
3.如果想只返回某几列可以这样做:
StringBuffer sql = new StringBuffer(); sql.append("select * "); sql.append(" from vms_segmentdata t "); sql.append(" where t.detectiontime between to_date(?, 'yyyy-MM-dd hh24:mi:ss') and "); sql.append(" to_date(?, 'yyyy-MM-dd hh24:mi:ss') "); sql.append(" and t.linkid like 'FBD_EH_S____' "); Session session = getHisSession(); @SuppressWarnings("unchecked") List<VmsSegmentData> segmentDatas = (session .createSQLQuery(sql.toString()) .addScalar("detectiontime", DateType.INSTANCE) .addScalar("vol",IntegerType.INSTANCE) .addScalar("linkid", StringType.INSTANCE) .addScalar("speed", IntegerType.INSTANCE) .setString(0, startHour).setString(1, endHour)).list();
1.addScalar的方法就是你要指定返回的列,第1个参数是要返回的列,第二个参数是类型,但是在select 的时候还是指定"*"号,查询所有但是也只返回指定的列。
总结:不全以后用到再来总结,一下从别人那搬过来也记不住,做过才是理解最深的.
二.关于spring项目项目启动时就初始化类得三种方式:
1.通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;
2.通过<bean> 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;
3.在指定方法上加上@PostConstruct或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用。
三:关于FASTJSON注解的使用
1.比如我想在实体转json字符串的时候不用实体的某个名字,使用另外一个名字,那么我就可以使用JSONFIELD(name="别名"),实例化出来之后就是你想要的名字了。
@JSONField(name="laneNo")
/* */ private int laneID;
2..如果你想指定某个实体里面的某些属性不参加转化
可以使用这个注解。
@JSONField(serialize=false)
/* */ private String direction;
四.关于初始化类在启动的时候实例了两次,我的原因是在web.xml文件中实例化了两次spring的配置文件导致的。
1.这就是今天的收获吧,写的不好,也有点赶时间。就当一个日记吧,希望在这条路上走的越来越好,也希望和我的女朋友关系变好。就这样,祝大家工作愉快,注意身体!
相关文章推荐
- ios UITableView中Cell的重用机制
- UI基础_transform
- UESTC 594 我要长高 单调队列优化DP
- MUI - 封装localStorage与plus.storage
- deque与vector的主要区别
- 创建虚拟机 Guest Is already in use 处理办法
- 百度编辑器ueditor初始化赋值
- IOS-笔记15(Unwind Segue,Action Sheets,Alert,NSTimer)
- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- UICollectionView(loading...)
- DuiLib属性
- 适配iPhone6和6P UITableView分割线会闪动(拖动UITableView的时候,分割线 一会儿变粗一会儿变细)解决办法
- iOS中UI适配问题
- Android UI--自定义ListView(实现下拉刷新+加载更多)
- 使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 返回一张可以随意拉伸不变形的图片
- TextWatcher限制字数,避免栈溢出
- UI - UIGestureRecognizer 手势
- IOS中UIImage和UIColor相互转化
- iOS中keyChain 实现UUID 设备唯一标识符碰到的问题