是否可以使用JDBC在servlet中执行SQL文件?
问题描述:
现在我正在为学习目的创建一个简单的银行项目,我需要为一个简单的操作进行大量的搜索,更新和插入操作。例如,如果我想从示例用户标识创建交易,请在“创建交易”屏幕上输入详细信息并按下“提交”按钮后,我的应用程序将执行以下操作。是否可以使用JDBC在servlet中执行SQL文件?
1)在登录会话表中插入一行数值:IP地址,用户ID和时间。
2)检查特定用户标识是否有权从用户访问表创建事务选项。
3)检查被扣/记账的账户是否属于与创建用户的归属分支代码相同的分支代码。
3)要检查输入库存(如果有)即DD,检查是否有效从库存表中。
4)检查被扣/记账的账户是否冻结。
5)检查被扣账户是否有足够的可用余额。
6)检查帐户状态有效/无效或休眠。
7)检查,如果适用创建服务税即从S.Tax表另一个搜索,并插入到帐户的交易表
最后,
8)插入一行,该帐户的交易表,如果准则通过。
现在我不觉得在我的Servlet中编写如此多的准备状态代码只是为了创建事务。我的应用程序中也会有其他操作。所以我想知道是否有一种方法可以简单地编写这些SQL语句并将SQL文件传递给Servlet。或者,也许我们可以在PL/SQL中编写函数并将函数传递给servelt。这些方式可能吗?
请注意,我使用J2EE和Oracle数据库。
答
我有一个项目,这样做一次,我做了一些几年前,我居然达到了接近你在找什么我创建了一个属性文件格式为:
trans.getTransactons=select * from whateverTable where onesqlquery
trans.getTranId=select tran_id from whatevertable where anothersqlquery
所以,当你写你的类,你刚刚从文件加载属性和查询从属性填充:例如:这会将物业FLE
public class QueriesLoader {
Properties prop;
public QueriesLoader() {
}
public Properties getProp() {
prop = new Properties();
ClassLoader classLoader = getClass().getClassLoader();
try {
InputStream url = classLoader.getResourceAsStream("path/to/your/propertiesFile/databasequeries.properties");
prop.load(url);
} catch (IOException asd) {
System.out.println(asd.getMessage());
}
return prop;
}
}
然后在你的数据库访问对象
public ArrayList getAllTransactions() {
ArrayList arr = new ArrayList();
try {
String sql = que.getProp().getProperty("trans.getTransactons");
PreparedStatement ps = DBConnection.getDbConnection().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
arr.add(rs.getString(1));
}
DBConnection.closeConn(DBConnection.getDbConnection());
} catch (IOException asd) {
log.debug(Level.FATAL, asd);
} catch (SQLException asd) {
log.debug(Level.FATAL, asd);
}
return arr;
}
而且我最终没有在我的类中编写单个查询。我希望这可以帮助你。