首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2012-01-23 
TOMCAT配置问题!数据库连接,老出错!ContextdocBasepathreloadabletruesourcecom.ibm.wtp.web.

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

}
 

热点排行