大家好。俺的问题比较多点...
1:关于数据库的操作。
一些代码
//该方法是用来对数据库执行简单操作的 //DataAccessBean是我自定义的一个类 public boolean updateDBTable(String SQL) throws ServiceLocatorException, DataAccessException, SQLException { int flag=0; try{ DataAccessBean dab = new DataAccessBean(); conn = dab.getConnection(); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); flag = stmt.executeUpdate(SQL);
..............
|
2:还有一个是当同时更新数据库中若干条记录(小于10条)时候用的 ServiceLocatorException, DataAccessException, SQLException { int flag=0; int i=0; int jj=0; try{ DataAccessBean dab = new DataAccessBean(); conn = dab.getConnection(); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
// 禁止自动提交 conn.setAutoCommit(false); for (i=0;i<SQL.length && SQL[i]!=null;i++){
System.out.println("执行for循环ing............") ; System.out.println(SQL[i]) ; stmt.executeUpdate(SQL[i]); System.out.println("预执行") ;
} flag=1;//执行标记,如果flag=1说明已经执行完毕,可以commit System.out.println("执行完for循环了") ;
} finally {
for (jj=0;jj<SQL.length ;jj++){ SQL[jj]=null; } try { cleanup(null, null, null, dab); } catch(Exception e) { conn.rollback() ; } }
if (flag==1){ conn.commit() ; System.out.println("commit了") ; return true; } else {
return false; }
}
|
另外,我还写了另外一些执行批处理和存储过程的。
我把这些代码都放在sessionbean里面了,能不能这样做?(DataAccessBean那些都是一些bean文件,不过我看书上说对数据库的操作最好放到helper类里面,到底helper是什么样子的?)
我在写程序的时候在jsp里面判断输入数据的合法性(主要是用正则表达式),然后在javabean里面生成sql语句,最后把这些sql语句作为参数传递给以上这些sessionbean来执行。请问这样做对吗?效率高吗?
第二个问题:
ejb里面该写些什么?大家都在说商业逻辑,到底什么是商业逻辑?
我觉得不都是最后操作数据库嘛,在javabean里面把所有的判断都做了,然后生成要执行的sql语句再提交,不也一样吗?
我们单位一个老员工说应该这样:
jsp页面/servlet
|
sessionBean(处理商业逻辑)
|
数据库操作的helper类(不知道是什么,请赐教)
|
最后是一些entityBean(如果需要的话)
在我们的项目(我们主要是做税务方面的应用的)中根本没有用到entityBean,它到底是干什么的?在什么情况下用?(看书没看明白)
第三个问题:
由于我们做税务方面的业务,它需要一些涉及数据量非常大的查询(比如说一天甚至一个月的购票明细,举个例子,北京24万纳税户一天可以购买价值1000W+的发票(不是面值),每天交易量在2000比,涉及的明细记录要在2W条(一次可能买很多种类的发票),必须得把所查询到得记录都显示在jsp页面上),请问有什么好得方法吗?
先问这么多吧,希望高手不要嫌俺烦