- 浏览: 803843 次
- 性别:
- 来自: 淄博
文章分类
- 全部博客 (250)
- Hibernate (29)
- FCKEditor (5)
- Jstl (6)
- JavaScript (33)
- 异常备忘 (49)
- Mysql (1)
- XP小技巧 (8)
- Java基础 (48)
- Freemarker (6)
- Birt (5)
- SQL (22)
- Spring (13)
- XHTML+CSS (7)
- Struts (5)
- ExtJs (13)
- Tomcat (7)
- JFreeChart (1)
- Json-Lib (0)
- Jquery&EasyUI (22)
- MyEclipse (4)
- Firefox (1)
- Apache Shiro (1)
- Oracle (5)
- Spring Security (2)
- SQLServer (6)
- Bootstrap (1)
- POI (2)
- SpringMVC (4)
最新评论
-
xinglianxlxl:
对我有用,谢谢
Spring 定时任务之 @Scheduled cron表达式 -
cb_2017:
...
Spring 定时任务之 @Scheduled cron表达式 -
a251628111:
谢谢分享
Spring 定时任务之 @Scheduled cron表达式 -
hl174:
确实是这个问题 不知道谁把数据库改了
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss -
gotosuzhou:
zhangzi 写道lylshr 写道顶,大哥你真强啊晕死,这 ...
数据库是SQLServer2008,出现'limit' 附近有语法错误
参考文章:http://jihongbin12329.iteye.com/blog/88678
以角色表为例子
数据库表Role中(Role_Id, RoleDescription, RoleName)三个字段
RoleDAOImpl.java
public List<Object[]> getRoles(){ return getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { Query q = session.createSQLQuery("select Role_Id, RoleDescription, RoleName from dbo.Role"); return q.list(); } }); }
测试:
//测试 public static RoleDAOImpl getFromApplicationContext(ApplicationContext ctx) { return (RoleDAOImpl) ctx.getBean("roleDAO"); } public static void main(String args[]){ RoleDAOImpl dao = getFromApplicationContext(new ClassPathXmlApplicationContext("spring/applicationContext*.xml")); List<Object[]> roles = dao.getRoles(); for(Object[] role : roles){ System.out.println(role[0]+"--"+role[1]+"--"+role[2]); } }
控制台打印结果:
Hibernate: select Role_Id, RoleDescription, RoleName from dbo.Role 1--超级管理员--ROLE_ADMIN 2--维修人员--ROLE_MAINTENANCE 3--客服人员--ROLE_SERVICER 4--车辆用户--ROLE_DRIVER
PS:
需要注意的是:如果是insert,update delete操作的时候需要队session进行flush和clear,不然控制台打印执行语句了,但是数据库中的数据不会改变。
如:
sql = "UPDATE [dbo].[ALARM_PROCESS] SET LONGITUDE="+jws[0]+", LATITUDE="+jws[1]+", SPEED="+jws[2]+", LOCATION_DESC='"+locationDesc+"', CHULI_TAG=1 WHERE VEHICLE_NUM='"+plateNumberAndDate[0]+"' AND ALARM_DATE='"+plateNumberAndDate[1]+"'"; Query q = session.createSQLQuery(sql); q.executeUpdate(); if(a % 50 == 0){ session.flush(); session.clear(); }
session.flush()是拿数据库与缓存中的数据同步
当session.clear()后才会引起缓存数据变化
重点:1)createSQLQuery
2)查询多个字段值返回List<Object[]> 或 Object[]
查询一个字段值返回List<String> 或 String
今天测试了下不行啊session.flush()和session.clear()
还是用下面的可以
Session session = getSession(); Transaction t = session.beginTransaction(); t.begin(); try { sql = "UPDATE [ALARM_PROCESS] ......."; session.createSQLQuery(sql).executeUpdate(); t.commit(); } catch (HibernateException e) { t.rollback(); } finally{ session.close(); }
评论
12 楼
zqb666kkk
2012-03-16
public List<String> getPlateNumbersByVehicleTeamNum(final String vehicleTeamNum){
return getHibernateTemplate().executeFind(new HibernateCallback(){
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
StringBuffer sb = new StringBuffer();
sb.append("SELECT VEHICLE_NUM FROM VEHICLE WHERE VEHICLETEAM_NUM='").append(vehicleTeamNum).append("' AND RECSTATUS='Y'");
Query q = session.createSQLQuery(sb.toString());
return q.list();
}});
}
不加这个 final 就报错
return getHibernateTemplate().executeFind(new HibernateCallback(){
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
StringBuffer sb = new StringBuffer();
sb.append("SELECT VEHICLE_NUM FROM VEHICLE WHERE VEHICLETEAM_NUM='").append(vehicleTeamNum).append("' AND RECSTATUS='Y'");
Query q = session.createSQLQuery(sb.toString());
return q.list();
}});
}
zhangzi 写道
public List<String> getPlateNumbersByVehicleTeamNum(final String vehicleTeamNum){ return getHibernateTemplate().executeFind(new HibernateCallback(){ @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { StringBuffer sb = new StringBuffer(); sb.append("SELECT VEHICLE_NUM FROM VEHICLE WHERE VEHICLETEAM_NUM='").append(vehicleTeamNum).append("' AND RECSTATUS='Y'"); Query q = session.createSQLQuery(sb.toString()); return q.list(); }}); }
不加这个 final 就报错
11 楼
zhangzi
2012-03-16
public List<String> getPlateNumbersByVehicleTeamNum(final String vehicleTeamNum){ return getHibernateTemplate().executeFind(new HibernateCallback(){ @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { StringBuffer sb = new StringBuffer(); sb.append("SELECT VEHICLE_NUM FROM VEHICLE WHERE VEHICLETEAM_NUM='").append(vehicleTeamNum).append("' AND RECSTATUS='Y'"); Query q = session.createSQLQuery(sb.toString()); return q.list(); }}); }
10 楼
zhangzi
2012-03-16
zqb666kkk 写道
zhangzi 写道
public List<Object[]> getRoles(){
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
....那就传啊,这个例子没有参数,所以没传啊
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
....那就传啊,这个例子没有参数,所以没传啊
传不了 你试下 就知道了 会报错
应该可以传的,报错就找出原因,贴出来看看
9 楼
zqb666kkk
2012-03-16
zhangzi 写道
public List<Object[]> getRoles(){
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
....那就传啊,这个例子没有参数,所以没传啊
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
....那就传啊,这个例子没有参数,所以没传啊
传不了 你试下 就知道了 会报错
8 楼
zhangzi
2012-03-16
public List<Object[]> getRoles(){
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
....那就传啊,这个例子没有参数,所以没传啊
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
....那就传啊,这个例子没有参数,所以没传啊
7 楼
zqb666kkk
2012-03-16
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
拼接你也得有 动态的参数传进去啊
6 楼
zhangzi
2012-03-16
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
那就拼接字符串了,原始的那种
5 楼
zqb666kkk
2012-03-16
zhangzi 写道
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
试了 不行
4 楼
zhangzi
2012-03-16
zqb666kkk 写道
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
跟HQL格式一样,你试试
3 楼
zqb666kkk
2012-03-16
zhangzi 写道
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
怎么传 示例代码写下
2 楼
zhangzi
2012-03-16
zqb666kkk 写道
getRoles 这个 方法没法传 参数进去- -!
可以的
1 楼
zqb666kkk
2012-03-14
getRoles 这个 方法没法传 参数进去- -!
发表评论
-
Hibernate SQL查询:No Dialect mapping for JDBC type: -9
2018-04-12 09:21 534Hibernate执行SQL语句遇到的错误,是数据类型异常 ... -
Encountered a duplicated sql alias [] during auto-discovery of a native-sql quer
2017-04-07 10:38 1737Encountered a duplicated sql a ... -
Hibernater由于外键设置不为空,导致在主键级联删除时失败解决办法!
2016-11-22 15:19 583媒体表 @Entity public class Me ... -
java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
2016-09-09 08:14 662Hibernate API简 ... -
java.lang.NullPointerException: null
2015-11-03 08:24 15822015-11-03 08:14:54.332 [local ... -
出现“java.sql.SQLException: 无法转换为内部表示”解决方法
2015-09-25 09:52 2422出现“java.sql.SQLException: 无法转换 ... -
Hibernate中的对象状态,及自动更新原因
2015-02-26 15:33 502Hibernate的对象有三种状态,分别为:瞬时状态 (Tr ... -
Batch update returned unexpected row count from update [0]; actual row count: 0;
2015-01-16 10:54 725Batch update returned unexpec ... -
hibernate annotation 之 主键生成策略
2015-01-05 11:17 742Hibernate 默认总共支持 1 ... -
缓存简介--Cache In Hibernate
2013-02-19 14:02 1019缓存可以简单的看成一个 Map ,通过 key 在缓存里面找 ... -
hibernate4 分页报只进结果集不支持请求的操作的解决办法
2012-12-24 17:44 3345com.microsoft.sqlserver.jdbc.SQ ... -
Hibernate中的merge使用详情
2012-12-18 15:39 1089merge的作用是: 新new一个对象, 如果该对象设置了 ... -
should be mapped with insert="false"
2012-06-07 14:14 794org.hibernate.MappingException: ... -
java.lang.NoClassDefFoundError: javax/persistence/Access
2012-06-07 14:13 1497ejb3-persistence.jar中没有此类,需要hib ... -
exception is java.lang.NoSuchFieldError: INSTANCE
2012-06-07 14:11 9784org.springframework.beans.BeanI ... -
java.sql.SQLException: ORA-00904: "CHARINDEX": 标识符无效
2011-12-13 10:41 2927java.sql.SQLException: ORA-0090 ... -
关于Hibernate select count(*)返回值为Long还是Integer?
2011-07-20 09:00 2625java.lang.classcastexception ja ... -
hibernate的Criteria Query(转)
2010-12-03 10:43 1340当查询数据时,人们往往需要设置查询条件。在SQL或HQL语句中 ... -
hibernate.properties配置
2010-11-29 12:19 1582Hibernate配置属性 属性名 用 ... -
A ResourcePool could not acquire a resource from its primary factory or source
2010-11-09 08:42 4324启动tomcat的时候出现如下异常 com.mchange. ...
相关推荐
JTDS是一个开放源代码的100%纯Java的,用于JDBC 3.0驱动Microsoft SQL Server (6.5 ,7 ,2000和2005版本)驱动程序。在hibernate连接sqlserver数据库时最好用这个。。
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程语言(如Java)来操作数据库,而无需直接编写SQL语句。在Hibernate 3.0版本中,这个框架已经相当成熟,提供了许多功能和优化,使得...
在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将复杂的SQL查询转换为简单的Java对象操作。本入门程序将带你了解如何使用Hibernate连接MySQL数据库,实现数据的增删改查功能...
接着,我们定义实体类,使用注解或XML方式配置ORM映射,通过SessionFactory创建Session,然后在Session上执行查询、保存、更新和删除操作。 这个超纯净的开发包简化了开发过程,让开发者能快速搭建一个基于...
Spring MVC和Hibernate会与MySQL进行交互,执行查询和更新操作来完成登录和注册功能。 **登录与注册功能的实现**: 1. **注册**:用户填写注册信息,如用户名、密码、邮箱等。Spring MVC的Controller接收这些信息,...
Hibernate是一个对象关系映射(ORM)框架,它允许Java开发者将业务对象与数据库表进行映射,通过面向对象的方式处理数据库事务,减少了对SQL的直接依赖,提高了代码的可读性和可维护性。 2. **安装与配置** 开始...
在本教程中,我们将深入探讨如何使用纯Eclipse集成开发环境(IDE)和Hibernate ORM框架构建一个简单的Java项目。Hibernate是一个强大的对象关系映射(ORM)工具,它允许开发者使用面向对象的方式处理数据库操作,而...
本资源提供的"纯sql分页源码java版"聚焦于如何在Java中利用SQL语句实现分页查询,支持Oracle、MySQLser(可能是MySQL Server的误写)和MySQL三种不同的数据库系统。以下将详细讲解这个主题。 首先,分页的核心思想...
- 执行SQL查询或更新 - 处理结果集 - 关闭资源 然而,尽管JDBC提供了通用的数据库访问方式,但直接使用JDBC编写代码可能会导致大量重复和冗余的数据库操作代码,这使得维护和扩展变得困难。 **Hibernate** 是一...
* 面向纯 SQL 语句的编程 * 面向过程的编程 * 没有数据缓存 * 事务是自动开启的,可能存在安全性的隐患 Hibernate 的优点 * 是一个 ORM 框架 * 操作数据库的框架 * 面向对象编程的代码编程比较简单 * 做到了数据...
Hibernate支持两种查询语言:HQL(Hibernate Query Language),类似于SQL但面向对象;以及Criteria API,提供更类型安全和可读性强的查询方式。 8. Hibernate如何处理关联? Hibernate支持多种关联映射,包括一...
以上就是Spring Boot整合Hibernate纯注解版的基本配置和使用。通过这种方式,开发者可以专注于业务逻辑,而不必关心繁琐的数据访问层实现。此外,Spring Boot的自动配置和Hibernate的注解方式,使得整个项目结构更加...
开发者可以根据项目需求选择使用纯JPA接口,或者结合Hibernate的扩展功能。 4. Hibernate配置: 在实例中,我们需要配置Hibernate,包括指定数据库连接参数、实体类映射信息等。这些通常在`persistence.xml`文件中...
Hibernate提供了Criteria API和HQL(Hibernate Query Language)进行动态查询。Criteria API允许程序构建查询条件,而HQL是一种面向对象的查询语言,类似于SQL,但更贴近Java编程思维。 7. 事务处理: Hibernate...
Spring、SpringMVC和Hibernate是...总之,Spring+SpringMVC+Hibernate的纯注解版本降低了配置复杂性,提高了开发效率,是现代Java Web开发的常见选择。熟悉这些框架的使用和集成,对提升开发能力和项目质量大有裨益。
Hibernate是一个开源的ORM框架,它将Java对象与数据库表进行映射,实现了对象与SQL的解耦,使得开发者可以使用面向对象的方式来操作数据库。通过Hibernate,我们可以避免大量繁琐的JDBC代码,提高开发效率。 二、...
总结,本实例旨在提供一个纯 Hibernate 的基础操作入门,通过实体类映射数据库表,利用 Session 和 Transaction 进行 CRUD 操作,以及使用 HQL 进行数据查询。这个实例对于初学者来说是理解 Hibernate 工作原理和...
JDBC驱动分为四个类型,MySQL驱动属于Type 4,即纯Java非协议驱动,它直接与MySQL服务器进行通信,无需依赖特定的操作系统或数据库系统。 使用MySQL驱动包时,开发者需要在程序中加载驱动,创建数据库连接,并通过...
在Java编程中,SQL连接是不可或缺的部分,它使得应用程序能够与数据库进行交互,执行查询、更新等操作。本文将深入探讨“sql连接常用jar包”这一主题,介绍如何在Java项目中配置和使用这些jar包,以及它们在SQL连接...
这部分定义了查询语言的常量和函数名,对于使用Hibernate HQL(Hibernate Query Language)进行查询非常重要。 - **hibernate.query.substitutions**:用于替换查询中的某些值。例如,在这里设置`yes`和`no`的对应...