读书人

TOMCAT配置有关问题!数据库连接老出

发布时间: 2012-01-23 21:57:28 作者: rapoo

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();
}
}

}

读书人网 >Java Web开发

热点推荐