struts2 中如何通过配置文件连接数据库 如题,不通过其他框架,只使用struts2.0,在配置文件连接数据库,该怎么解决啊?在线等待 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 struts没有试过,但印象中struts1是可以的。弱弱问一句,干嘛要在struts2里连数据库呢??? 配置文件应该不提供配置,可以使用<s:bean />标签。 struts负责mvc,数据库连接还是另外的好 webroot\META-INF下新建context.xml例:<Context> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="???" username="???" password="???" maxActive="200" maxIdle="30" maxWait="-1" /></Context> 貌似可以在tomcat下直接配置数据库连接池在不使用hibernate的情况下郑重声明:只是貌似,没有用过 那我在action中该如何调用这个呢?下面是我现在连接数据库的actionpublic class DBConn{ private String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ; private String DBURL = "jdbc:sqlserver://192.168.10.85:1433; DatabaseName=PBDL"; private String DBUSER = "sa"; private String DBPASSWORD = "admin"; private Connection conn = null ; public DBConn() { try { Class.forName(DBDRIVER) ; this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ; } catch (Exception e) { } } public Connection getConnection() { return this.conn ; } public void close() { try { this.conn.close() ; } catch (Exception e) { } }}; 可以在tomcat里server.xml配置,在Tomcat安装目录下/conf/Catalina/localhost文件夹中建立一个和网站文件夹名字一样的XML文件,内容和server.xml里的数据库连接一样就行,最后还要在工程的/WEB-INF/web.xml文件中,加入以下代码[code=XML<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/sqlserver</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>[/code]这个方法配置步骤多了一些还有一个就是可以按照7楼tuke0001所说的,在工程里添加context.xml,这个方法我也试过了,很好用。数据库连接对象创建如下public DBConn() { try { private Connection conn = null ; Context initCtx = new InitialContext(); if (initCtx == null) throw new Exception(); Context ctx = (Context) initCtx.lookup("java:comp/env"); Object obj = (Object) ctx.lookup("jdbc/sqlserver"); javax.sql.DataSource ds = (javax.sql.DataSource) obj; conn = ds.getConnection(); } catch (Exception e) { e.printStackTrace(); } } 在Comcat6.0的Context.xml可以用﹐在META-INF/Context.xml就不行,用的是Struts2﹐大家幫忙分析下﹗謝謝﹗Context.xml:<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name="jdbc/edidb_t" auth="Container" type="javax.sql.DataSource" maxActive="10" maxIdel="5" maxWait="1000" username="testdb" password="testdb" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@10.186.122.138:1521:RACTT" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" /></Context>java:Context context=new InitialContext(); DataSource ds=(DataSource) context.lookup("java:/comp/env/jdbc/edidb_t"); // "java:/comp/env/"是固定写法,后面接的是context.xml中的Resource中name属性的值 Connection conn = ds.getConnection(); 上亿级数据量的处理!!!请高手支招 uml关系 散分,赌球赢了 jsp中,游客效果 java中如何浏览服务器上的文件? 很奇怪的代码问题,数据库为oracle 请问:一个jsp数组如何赋植给页面的javascript? help:从一个页面表单向数据库中插入中文出现乱码 奇怪!!!这是何故(原理)?? 那裏有JSP的tab libary的中文資料? 我用Ajax的时候提示There is no Action mapped for action name jsonTest. @@@@@@@@@@@@@@@struts2+extJs 求解@@@@@@@@@@@@@@@@@
但印象中struts1是可以的。
弱弱问一句,
干嘛要在struts2里连数据库呢???
新建context.xml例:
<Context>
<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="???" username="???" password="???"
maxActive="200" maxIdle="30" maxWait="-1" />
</Context>
在不使用hibernate的情况下
郑重声明:只是貌似,没有用过
那我在action中该如何调用这个呢?
下面是我现在连接数据库的action
public class DBConn
{
private String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ;
private String DBURL = "jdbc:sqlserver://192.168.10.85:1433; DatabaseName=PBDL";
private String DBUSER = "sa";
private String DBPASSWORD = "admin";
private Connection conn = null ; public DBConn()
{
try
{
Class.forName(DBDRIVER) ;
this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
}
catch (Exception e)
{
}
}
public Connection getConnection()
{
return this.conn ;
}
public void close()
{
try
{
this.conn.close() ;
}
catch (Exception e)
{
}
}
};
[code=XML<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>[/code]
这个方法配置步骤多了一些
还有一个就是可以按照7楼tuke0001所说的,在工程里添加context.xml,这个方法我也试过了,很好用。数据库连接对象创建如下public DBConn()
{
try {
private Connection conn = null ;
Context initCtx = new InitialContext();
if (initCtx == null)
throw new Exception();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("jdbc/sqlserver");
javax.sql.DataSource ds = (javax.sql.DataSource) obj;
conn = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
大家幫忙分析下﹗謝謝﹗
Context.xml:
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/edidb_t" auth="Container" type="javax.sql.DataSource"
maxActive="10" maxIdel="5" maxWait="1000"
username="testdb" password="testdb"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.186.122.138:1521:RACTT"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" />
</Context>
java:
Context context=new InitialContext();
DataSource ds=(DataSource) context.lookup("java:/comp/env/jdbc/edidb_t");
// "java:/comp/env/"是固定写法,后面接的是context.xml中的Resource中name属性的值
Connection conn = ds.getConnection();