社区
Java EE
帖子详情
请问在spring中如何调用复杂sql?
xinghao_1984
2009-06-27 02:26:43
我有一个复杂的sql语句。现在在spring项目中需要调用执行。
请问代码怎么写啊?
最好能举个例子!
...全文
224
23
打赏
收藏
请问在spring中如何调用复杂sql?
我有一个复杂的sql语句。现在在spring项目中需要调用执行。 请问代码怎么写啊? 最好能举个例子!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
feiyangdesky
2009-11-20
打赏
举报
回复
jf
不会飞的小龙人
2009-11-20
打赏
举报
回复
SQLQuery query1=session.createSQLQuery(sql1); //执行第1个SQL
query1.executeUpdate(); //执行更新
SQLQuery query1=session.createSQLQuery(sql1); //执行第1个SQL
sqlQuery.addScalar("name", Hibernate.STRING);
sqlQuery.addScalar("id", Hibernate.LONG);
sqlQuery.addScalar("state", Hibernate.SHORT);
return sqlQuery.list();//执行查询
executeUpdate和list是必需的
jiangxilaile
2009-07-15
打赏
举报
回复
有的公司禁止用hibernate进行大数据量查询的
xinghao_1984
2009-07-15
打赏
举报
回复
对啊,比如有一些多表关联的,或者带复杂子查询的语句。在ssh项目中怎么处理呢??
youjianbo_han_87
2009-07-15
打赏
举报
回复
如果是调用原生 SQL的话,用 jdbcTemplate执行(你在google里能搜 jdbctemplate用法)
如果是 HQL的话,就用 HibernateTemplate 执行(你在google里能搜 jdbctemplate用法)
deng1234
2009-07-15
打赏
举报
回复
public List findEmployee(final Integer userId) {
return (List) this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
StringBuffer sql = new StringBuffer();
sql.append("select b.Employee_ID,b.Employee_Code..............");
Connection conn = session.connection();
PreparedStatement prs = null;
ResultSet rs = null;
List<Employee> list = new ArrayList<Employee>();
try {
prs = conn.prepareStatement(sql.toString());
rs = prs.executeQuery();
while (rs.next()) {
Employeeemployee = new Employee();
employee.setEmployeeId(rs.getInt("Employee_ID"));
employee.setEmployeeCode(rs.getString("Employee_Code"));
list.add(employee);
}
} catch (Exception ex) {
ex.printStackTrace();
}finally{
if(rs!=null){
try{
rs.close();
}catch(Exception dex){
dex.printStackTrace();
}
}else if(prs != null){
try{
prs.close();
}catch(Exception sex){
sex.printStackTrace();
}
}else if(conn!=null){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}else if(session!=null){
try{
session.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
return list;
}
}, true);
}
a_will
2009-07-03
打赏
举报
回复
警告楼上的同学,hibernate不是万能的,上百万,千万的表,用hibernate做查询,就是垃圾一个。
bibixiaozhu
2009-07-03
打赏
举报
回复
HQL有什么复杂语句是解决不了的,好像hql语句写复杂查寻还更加简单的样子..
是不是要跨表呀,再复杂不也就是那样,大不了多跨几个表,
如果是,我可以给你一些hql语句,专门做做那种跨表的复杂查询的..
xinghao_1984
2009-07-01
打赏
举报
回复
难道大家都没碰到过spring项目中有复杂sql语句的,用HQL解决不了的??
bibixiaozhu
2009-07-01
打赏
举报
回复
这下麻烦了,这个又不像,hibernate可以在.xml里在框子里点点就配好...
全手动写,还不知道怎么写...
不过不知道可不可把hibernate里的那段处理事务的方法拿过来用,反正在曾经做的数据开发中sql语句的事务外理方式其实是跟
hibernate里那段事务处理代码一样的..那么说不定spring里也一样呢,真接给在sql语句执行语句那一段添一个Transaction,commit事务回滚
试试看吧..
yuzi13631138780
2009-06-30
打赏
举报
回复
找本书看看吧,单讲spring的事务管理就有1百几十页了..可以用声明式事务管理:
配好datsource,sessionFactory,TransactionManager,配置事务策略:
<tx:advice>
</txadvice>
<aop:config>
</aop:config>
xinghao_1984
2009-06-30
打赏
举报
回复
自己顶一下。难道要用spring的编程式事物方式吗?请问具体代码怎么写呢?
yuzi13631138780
2009-06-29
打赏
举报
回复
应该是事务代理或事务策略吧,感觉没commit()那样?
lansetianle
2009-06-29
打赏
举报
回复
学习中,帮你顶吧。。。
xinghao_1984
2009-06-29
打赏
举报
回复
是hibernate+Spring呀。我用了6楼的方法。虽然没有报错,可是doInHibernate里的方法没有执行啊!
this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
System.out.println("*****************************");
session.createSQLQuery("update sql");
System.out.println("*****************************");
return null;
}
});
前后都输出了*,但是sql语句没有执行!请问没执行sql可能是什么原因?我的事物是在spring里配置好的!
xinghao_1984
2009-06-29
打赏
举报
回复
我也感觉是这样啊。好像是没commit.可是应该怎么写呢!我之前在Spring配置文件里的配置好像没起作用啊!
dinghun8leech
2009-06-28
打赏
举报
回复
楼主单独用的spring还是集合了hibernate??
前者的话直接在楼主定义的jdbc工具集里去直接执行即可。
yuzi13631138780
2009-06-28
打赏
举报
回复
getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query q=session.createSQLQuery("your sqk");
return null;
}
});
秦π
2009-06-27
打赏
举报
回复
什么sql这么复杂呢 不行你就写个存储过程 掉存储过程 直接用spring的 jdbcsupport 也还是很方便的
xinghao_1984
2009-06-27
打赏
举报
回复
自己顶一下。其实就是求在spring中调用一般sql语句的方法。
加载更多回复(3)
spring
-ai-alibaba 简化版NL2
SQL
摘要:文章介绍了一个简化版的自然语言转
SQL
(nl2
sql
)工具设计方案。该工具通过模块化组件实现可扩展性,包括表结构检索器、查询转换器、信息增强器等接口。核心流程为:用户输入查询→检索相关表结构→
调用
大模型生成
SQL
。提供了两种
调用
方式:简单
调用
只需传入基础参数,
复杂
调用
可自定义各处理环节。工具类实现了完整的处理链路,包括查询转换、信息检索、结果后处理等步骤,同时保留了各环节的扩展点,用户可根据需求实现特定组件。该设计在保持实用性的同时提供了足够的灵活性。
spring
cloud
复杂
sql
查询
spring
cloud有自动生成
sql
的功能,不需要手写简单的
sql
语句实现,
复杂
的
sql
查询需要通过手写
sql
语句实现查询功能; eg:在controller层 @RestController@RequestMapping("api")public class MemberController { @RequestMapping(value = "v2/member/member/mess...
Spring
Boot 自研运行时
SQL
调用
树,3 分钟定位慢
SQL
这个项目展示了如何结合
Spring
Boot生态和前端技术,构建一个实用的
SQL
监控工具,为日常开发和性能优化提供有力支持。
Spring
Boot集成Hibernate实现自定义
SQL
查询
通过
Spring
Boot集成Hibernate,我们可以方便地执行自定义
SQL
语句,满足
复杂
的查询需求。`@Query` 注解提供了强大的灵活性,允许开发者直接编写原生
SQL
语句,同时保持代码的简洁性和可维护性。
JOOQ事实:
SQL
函数变得简单
JDBC API一直很麻烦且容易出错,我从来都不喜欢使用它。
Spring
JDBC框架带来了第一个重大改进,该框架通过其JdbcTemplate或
Sql
Function类(仅举几例)简单地重振了JDBC的使用。 但是
Spring
JDBC并没有解决使用字符串函数或输入参数名称的缺点,这为类型安全的
SQL
包装器(如JOOQ)打开了大门 。 JOOQ是迈向更好的JDBC API的下一个主要...
Java EE
67,535
社区成员
225,843
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章