TOMCAT配置问题!数据库连接,老出错!
<Context docBase="" path="" reloadable="true" source="com.ibm.wtp.web.server:tomcat">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="tomcat_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/SqlServer"
auth="Container"
type="javax.sql.DataSource"
reloadable="true"/>
<ResourceParams name="jdbc/SqlServer">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>123</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433/BakBlog</value>
</parameter>
</ResourceParams>
</Context>
以上是配置数据连接的Context
程序中:
<%@ page contentType = "text/html;charset=gb2312" %>
<%@ page import = "java.sql.*" %>
<%@ page import = "javax.sql.*" %>
<%@ page import = "javax.naming.*" %>
< html >
< body >
<%
DataSource ds = null ;
Connection conn = null ;
ResultSet rs = null ;
java.sql.Statement stmt = null ;
InitialContext ctx = null ;
try
{
ctx =new InitialContext ();
ds =( DataSource ) ctx . lookup ( "jdbc/SqlServer" );
conn = ds . getConnection ();
stmt = conn . createStatement ();
String strSql = " select * from admin" ; 表
rs = stmt . executeQuery ( strSql );
while( rs . next ())
{
out . println ( rs . getString ( 1 ) + "" );
out . println ( rs . getString ( 2 ) + "" );
}
}
catch ( Exception ex )
{
out . println ( ex . getMessage ());
}
%>
</ body >
</ html >
老出现
Name jdbc is not bound in this Context
可是我的名字是那个啊,晕忽忽!
[解决办法]
晒晒我的代码给你看吧.你自己去改
- Java code
public Connection getConnection() { Log log = LogFactory.getLog(DBConnection.class); Connection conn = null; DataSource ds = null; try { InitialContext ctx=new InitialContext(); ds=(DataSource)ctx.lookup("java:comp/env/jdbc/zltstruts"); conn = ds.getConnection(); System.out.println("访问数据库"); } catch (SQLException ex) { ex.printStackTrace(); log.error("数据库连接出错:" + ex.getMessage()); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; }
[解决办法]
我的 DataBase
public class DataBase {
private Connection conn = null;
private Statement stmt = null;
private static Context initCtx = null;
private static Context ctx = null;
private DataSource ds = null;
private ResultSet rs = null;
static {
try {
initCtx = new InitialContext();
ctx = (Context)initCtx.lookup("java:comp/env");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public DataBase() {
try {
ds = (DataSource)ctx.lookup("JNDI/hr");
conn = ds.getConnection();
stmt = conn.createStatement();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql) {
try {
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public boolean executeUpdate(String sql) {
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
public boolean executeBatchUpdate(String sql1,String sql2) {
boolean temp=true;
try {
conn.setAutoCommit(false);
stmt = conn.createStatement();
stmt.addBatch(sql1);
stmt.addBatch(sql2);
stmt.executeBatch();
conn.commit();
} catch (SQLException e) {
temp = false;
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
return temp;
}
public void closeStmt() {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeConn() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}