Hibernate 执行原始SQL语句
在hibernate中有时不需要用到表的映射,需要直接执行SQL语句。
其中sessionFactory在配置文件中配置,SSH详细配置见http://blog.csdn.NET/xumengxing/article/details/8586012
在dao层中定义两个常见函数用于查询和执行操作。
dao代码如下:
package com.hsinghsu.testSSH.dao.impl; import java.util.List; import javax.annotation.Resource; import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository; import com.hsinghsu.testSSH.dao.BaseDao; @Repository(value = "baseDao")
public class BaseDaoImpl implements BaseDao { @Resource(name = "sessionFactory")
private SessionFactory sessionFactory; public Session getSession() {
return sessionFactory.getCurrentSession();
} public List queryBySql(String sql) {
List<Object[]> list = getSession().createSQLQuery(sql).list();
return list;
} public int excuteBySql(String sql)
{
int result ;
SQLQuery query = this.getSession().createSQLQuery(sql);
result = query.executeUpdate();
return result;
} }
service代码如下:
package com.hsinghsu.testSSH.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.hsinghsu.testSSH.dao.BaseDao;
import com.hsinghsu.testSSH.service.BaseService; @Service(value = "baseService")
public class BaseServiceImpl implements BaseService {
@Autowired
private BaseDao baseDao; public List queryBySql(String sql) {
List<Object[]> list = baseDao.queryBySql(sql);
return list;
} public int excuteBySql(String sql){
return baseDao.excuteBySql(sql);
}
}
测试代码如下:
package com.hsinghsu.testSSH.service; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import com.hsinghsu.testSSH.SpringTestBase; public class BaseServiceTest extends SpringTestBase{
@Autowired
private BaseService baseService; @Test
public void testConfig() {
assertNotNull(baseService);
assertTrue(baseService != null);
} @Test
public void testQueryBySql()
{
String sql = "select * from T_TEST_USER WHERE SEX = 1";
List<Object[]> list = baseService.queryBySql(sql);
System.out.println("---"+list.size());
for(Object[] obj :list)
{
System.out.println(obj[0]+" -- "+ obj[1]+" -- "+obj[2]);
}
} @Test
public void testExcuteBySql()
{
// String sql = "UPDATE T_TEST_USER SET NAME = 'GSS09', PWD = 'GG007', AGE = 24, SEX = 1 WHERE ID = 6";
// String sql = "UPDATE T_TEST_USER SET NAME = 'GSS29', PWD = 'GG007' WHERE ID = 6";
// String sql = "insert into T_TEST_USER(ID,NAME,PWD,AGE,SEX) values(7,'gogo08','gogopwd08',24,1)";
String sql = "delete from T_TEST_USER where ID = 7"; int result = baseService.excuteBySql(sql);
System.out.println("---009:"+result);
} }
Hibernate 执行原始SQL语句的更多相关文章
- 出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误
出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误:org.hibernate.MappingException: No Di ...
- java:Hibernate框架3(使用Myeclipse逆向工程生成实体和配置信息,hql语句各种查询(使用hibernate执行原生SQL语句,占位符和命名参数,封装Vo查询多个属性,聚合函数,链接查询,命名查询),Criteria)
1.使用Myeclipse逆向工程生成实体和配置信息: 步骤1:配置MyEclipse Database Explorer: 步骤2:为项目添加hibernate的依赖: 此处打开后,点击next进入 ...
- 在django中,执行原始sql语句
extra()方法 结果集修改器,一种提供额外查询参数的机制 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where ...
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
转自博客http://blog.csdn.net/xd195666916/article/details/5419316,同时感谢博主 今天做了个用hibernate直接执行原生sql的查询,报错No ...
- Hibernate执行原生态sql语句
@Override public Integer update(String id, String username){ String sql = "update Team_CheLiang ...
- python学习-- 在django中,执行原始sql语句
from django.shortcuts import render, redirect from news.models import Article, Column def test(reque ...
- 用Hibernate框架把hql生成可执行的sql语句-Oracle方言
引言:为什么这样的需求,源自公司项目需要,公司的项目使用java的struts2+spring2.5+oracle中间件tuxedo,数据库用的是Oracle,但由于不直接连接数据库,用中间件处理的方 ...
- Hibernate criteria 混合sql语句多表关联时查询注意事项
直接进入正题 假设有一个实体类 /** * 产品分类 */ public class ProductType{ @Id private String no;//编号 private String na ...
- Hibernate执行原生SQL返回List<Map>类型结果集
我是学java出身的,web是我主要一块: 在做项目的时候最让人别扭的就是hibernate查询大都是查询出List<T>(T指代对应实体类)类型 如果这时候我用的联合查询,那么返回都就是 ...
随机推荐
- HTML 学习笔记 CSS样式(背景)
背景色 可以使用background-color属性为元素设置背景色 这个属性接受任何合法的颜色值. 可以使用background-image属性来喂元素设置背景图片. 背景重复 如果需要在页面上对背 ...
- Python的高级特性4:函数式编程
函数式编程的核心就是把函数当成对象来进行编程. 有两个常用到的方法:map/reduce,filter,其中map和filter是内建方法,而reduce不是,所以需要import相关模块. map接 ...
- PL/SQL异常处理方法
PL/SQL异常处理方法 1:什么是异常处理: PL/SQL提供一个功能去处理异常,在PL/SQL块中叫做异常处理,使用异常处理我们能够测试代码和避免异常退出. PL/SQL异常信息包含三个部分: ...
- 小tips: 使用 等空格实现最小成本中文对齐
一.重见天日第二春 11年的时候,写了篇文章“web页面相关的一些常见可用字符介绍”,这篇文章里面藏了个好东西,就是使用一些空格实现个数不等的中文对齐或等宽.见下表: 字符以及HTML实体 描述以及说 ...
- 关于div标签的title属性一闪一闪不正常显示的原因
弹出了chrome的开发工具就会出现以上问题.
- ios蓝牙开发(三)ios连接外设的代码实现:手机app去读写蓝牙设备。
手机app去读写蓝牙设备....... 代码下载: 原文博客主提供Github代码连接,地址是:https://github.com/coolnameismy/demo ios连接外设的代码实现流程: ...
- 记 FineUI 官方论坛所遭受的一次真实网络攻击!做一个像 ice 有道德的黑客!
在开始正文之前,请帮忙为当前 排名前 10 唯一的 .Net 开源软件 FineUI 投一票: 投票地址: https://code.csdn.net/2013OSSurvey/gitop/code ...
- 高性能JavaScript DOM编程
我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵.有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用 ...
- SQL基础之select
1.认识select select的主要语法如下,这个很重要因为只有记住了整体的结构才能应对任何情况.从中可以看到select的强大主要就是建立在where.group by.having.order ...
- Java:反射
初识Java反射机制: 从上面的描述可以看出Java的反射机制使得Java语言可以在运行时去认识在编译时并不了解的类/对象的信息,并且能够调用相应的方法或修改属性的值.Java反射机制的核心就是允许在 ...