JSP中如何使用不同sql查询语句查询数据

JSP中如何使用不同sql查询语句查询数据,第1张

select from 表名 where 名称列 like '%like%' and 类别列 = 1 and 是否有效 = 1
看这条sql, 多字段查询, 那就设置 where 条件呗

这个你可以在显示页面中得到两个参数,一个是像你说的电视机什么的,另一个是你说的型号,思路就是:
先电视机的时候可以通过这个参数得到你说的数据库,后面的型号可以做为数据库中电视机中的查询条件。
如,在显示页面得到你选的是电视机
<%String lb=requestgetParameter("lb")toString(); %>
如果lb=dsj,说明你选的是电视机,如果lb=sj,说明你选的是手机,明白了?
同样,利用下面可以得到你说的你选的型号
<%String sea=requestgetParameter("sea")toString(); %>
这样你即知道了选得是什么,还有型号,你应该知道怎么处理了吧,直接在查询语句中自己拼成语句,把值传进去就可以查询到结果,再输出

在获取完所有的list后只需要截取你所需要的一部分list就可以了,所以要知道你所需要的是从哪里开始,到哪里结束。
有很多种方法,如果只是JSP里的话可以再次遍历获取的所有list集合,然后把满足条件的截取出来,开始的list下标应该是:(你要查询的页数-1)页面要显示的数据条数,也就是你这里的(page-1)pageRows,结束的地方也就是pagepageRows-1了。//这样应该可以写出来了吧
建议把这个方法封装到一个类里面,一个方法就实现一种功能。当然这是比较麻烦的,现在流行框架,以后会学到的,在hibernate框架里用query语句很容易就实现了,现在时间多,
多看看hibernate框架吧,推荐你一本书,hibernate in action,有中文版的。这个是你们以后入门了hibernate后看的。
public List listOrderByItem(int pageRows,int page) { //page是要显示的页数,pageRows是你要显示的行数
Session session = thisgetSession();//获取hibernate的session,hibernate自动生成的DAO里包含
String hql = "from TBL_storage as tbl_s order by item";//hql语句
Query query = sessioncreateQuery(hql);//hibernate的query,通过session创建
querysetFirstResult((page-1)pageRows);//设置开始的下标
querysetMaxResults(pageRows);//设置每页显示的行数
return querylist();//得到所需要的结果集

可以的。。不需要加引号了。。
sum(case ccname when '语文' then score else 0 end) yuwen,
sum(case ccname when '数学' then score else 0 end) shuxue
然后resultgetString("yuwen");就可以了,我就是这样写的。
如果case 不行就用decode吧,
sum(decode(ccname ,'数学',0) yuwen,
sum(decode(ccname ,'语文',0) shuxue

你下面那些代码是用的存储过程写的 这样也可以写
但是还是有一种方法
你可以写不同的dao 比如表一、表二、表三分别对应不同的dao
然后所有的业务逻辑写在一个业务方法里面 这样的好处是事务统一处理,做到数据能一致
先插入表一数据 ,
表一实体 bean1 = new 表一实体();
dao1insert(bean1);
表二实体 bean2= new 表二实体();
bean2setId(bean1getId());
dao2insert(bean2);
表三类似
其实iBATIs有个特性 你插入成功以后 会给你实体的主键赋值的
所以 在下面的代码 可以拿到这个id 很简单的 不知道你懂了没有 不懂再问


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13405368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存