首页 > 代码库 > Hibernate 执行原始SQL语句
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语句
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。