<Context path="/news2" reloadable="true" docBase="E:/hoer/news2" workDir="E:/hoer/news2/work">
<Resource name="jdbc/news2"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/news2">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in thi* **ample 10 seconds. An Exception is thrown if
this timeout i* **ceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.-->
<parameter>
<name>url</name>
<value>jdbc:odbc:newslist</value>
</parameter>
</ResourceParams>
</Context>
=================
==================
==================
==================
=========
DBConnection .java
package news;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
//import com.AlertClass.Alert;
public class DBConnection {
private DataSource ds = null;
private Connection con = null;
private ResultSet rs = null;
public DBConnection() {
try {
Context ctx = new InitialContext();
//搜索数据库的资源 封装了DriverManager,它的底层还是通过DriverManager来获取连接对象的
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news2");
} catch (NamingException e) {
e.printStackTrace();
}
}
public Connection getConnection() {
try {
con = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public void closeConnection() {
try {
if (this.con != null) {
con.close();
}
} catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
public void closePrepStmt(PreparedStatement prepStmt) {
try {
if (prepStmt != null)
prepStmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void closeResultSet(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql) {
try {
//connect = DriverManager.getConnection("jdbc:odbc:newslist"); //??b????????????l??
this.getConnection();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);//执行指定的数据查询语句
}
catch(SQLException ex) {
ex.printStackTrace();
}
return rs;
}
/*public static Connection getConnection(){
Connection con=null;
ResourceBundle rb=ResourceBundle.getBundle("dataBaseProperties");
String driverClassName=rb.getString("classForName");
String url=rb.getString("url");
String username=rb.getString("username");
String password=rb.getString("password");
try{
Class.forName(driverClassName);
con=DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException cnfe){
new Alert(cnfe.getMessage());
System.out.println(cnfe.getMessage());
} catch (SQLException sqle) {
new Alert(sqle.getMessage());
System.out.println(sqle.getMessage());
}
return con;
}*/
}
<Resource name="jdbc/news2"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/news2">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in thi* **ample 10 seconds. An Exception is thrown if
this timeout i* **ceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.-->
<parameter>
<name>url</name>
<value>jdbc:odbc:newslist</value>
</parameter>
</ResourceParams>
</Context>
=================
DBConnection .java
package news;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
//import com.AlertClass.Alert;
public class DBConnection {
private DataSource ds = null;
private Connection con = null;
private ResultSet rs = null;
public DBConnection() {
try {
Context ctx = new InitialContext();
//搜索数据库的资源 封装了DriverManager,它的底层还是通过DriverManager来获取连接对象的
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/news2");
} catch (NamingException e) {
e.printStackTrace();
}
}
public Connection getConnection() {
try {
con = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public void closeConnection() {
try {
if (this.con != null) {
con.close();
}
} catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
public void closePrepStmt(PreparedStatement prepStmt) {
try {
if (prepStmt != null)
prepStmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void closeResultSet(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql) {
try {
//connect = DriverManager.getConnection("jdbc:odbc:newslist"); //??b????????????l??
this.getConnection();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);//执行指定的数据查询语句
}
catch(SQLException ex) {
ex.printStackTrace();
}
return rs;
}
/*public static Connection getConnection(){
Connection con=null;
ResourceBundle rb=ResourceBundle.getBundle("dataBaseProperties");
String driverClassName=rb.getString("classForName");
String url=rb.getString("url");
String username=rb.getString("username");
String password=rb.getString("password");
try{
Class.forName(driverClassName);
con=DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException cnfe){
new Alert(cnfe.getMessage());
System.out.println(cnfe.getMessage());
} catch (SQLException sqle) {
new Alert(sqle.getMessage());
System.out.println(sqle.getMessage());
}
return con;
}*/
}