关于struts 连接数据库的问题
关于struts 连接数据库的问题
怎样想将数据库连接的程序封装在DatabaseCon类里
以后的业务bean中 就可以直接用Connection con=DatabaseCon.getConnection() 来获得连接了
struts-config.xml中的配置如下
<data-sources>
<data-source key="MyData">
<set-property property="password" />
<set-property value="sa" property="user" />
<set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver" property="driverClass" />
<set-property value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDatabase" property="url" />
</data-source>
</data-sources>
请大家帮忙实现以下代码
public class DatabaseCon
{
public synchronized Connection getConnection()
{
拜托大家了
}
}
问题点数:100、回复次数:13Top
1 楼power_zh(专门在技术区灌水赚分)回复于 2004-08-03 20:46:09 得分 0
upTop
2 楼liusoft(红薯)回复于 2004-08-04 09:20:10 得分 33
不能这样取得,Struts的连接必须在有ServletContext的环境下才能获取得到
一般在Action类中可以这样获取:
/**
* 获取到数据库的连接句柄
* @return
* @throws SQLException
*/
protected Connection getConnection() throws SQLException{
ServletContext context = this.getServletContext();
DataSource dataSource = (DataSource)context.getAttribute(org.apache.struts.Globals.DATA_SOURCE_KEY);
return dataSource.getConnection();
}
http://www.javayou.comTop
3 楼qjhaaaaa()回复于 2004-08-04 09:28:53 得分 24
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource" key="dataSource">
<set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver" property="driverClassName" />
<set-property value="jdbc:microsoft:sqlserver://172.25.15.143;DatabaseName=TEST" property="url" />
<set-property value="10" property="maxCount" />
<set-property value="3" property="minCount" />
<set-property value="sa" property="username" />
<set-property value="as" property="password" />
</data-source>
</data-sources>
protected Connection connectionPool(HttpServletRequest request) {
Connection conn = null;
try {
DataSource ds = this.getDataSource(request, "dataSource");
conn = ds.getConnection();
return conn;
}
catch (SQLException ex) {
System.out.println("Database connection is failure : " + ex.getMessage());
return null;
}
}
Top
4 楼qjhaaaaa()回复于 2004-08-04 09:29:59 得分 0
试我这个吧,我都是用的这个连接,ok
Top
5 楼hq1305018(跃强)回复于 2004-08-04 09:35:02 得分 10
如果像以上两位的用法,在某些场合比如JAVABEAN里面使用时,是不是会比较麻烦?
有没有其它的解决办法呢?Top
6 楼wubai250(新版日语mp3)回复于 2004-08-04 09:41:40 得分 0
关注!Top
7 楼bluesjsp(为什么?)回复于 2004-08-04 16:57:38 得分 0
upTop
8 楼temhon(龙芯3超奔4)回复于 2004-08-04 17:28:40 得分 0
用连接池如何呢?我是菜鸟Top
9 楼wubai250(新版日语mp3)回复于 2004-08-05 10:17:36 得分 0
UTop
10 楼bug0303(补丁)回复于 2004-08-05 11:38:27 得分 10
我总觉得在struts里面做这种连接不好。万一将来想把操作数据库的业务逻辑移到其他地方,比如单独的一个jar包,或者是EJB,那不就死了?Top
11 楼lovelymaomao(小老鼠)回复于 2004-08-05 12:04:11 得分 3
还是用容器配个连接池好一些嘛。。。然后再放到一个javaBean中。。。Top
12 楼windyzj(风晨)回复于 2004-08-05 12:36:20 得分 0
楼上的 能给个例子么 参考一下Top
13 楼jeke342()回复于 2004-08-05 12:54:56 得分 20
建议用容器自带的连接池.
tomcat dbcp 蛮好用的.我一直用它.
写一个bean 然后在 action 调用就好了.
struts 1.2 好象已以经没有这个功能了.
Top




