1,在Admin Server Console中测试数据源成功,
2,我的程序中的index.jsp页能成功运行,
3,如果现在换成tomcat6.0,那么程序就会运转正常,所以,我想,我开发的应用程序没有问题,ORACLE数据库也没有问题,weblogic也应该没有问题,有问题的是weblogic没有和我的应用程序连接起来,能查到的资料都查到了,还是不行想问问web.xml,setDomainEnv.cmd文件应该怎么改?我的数据库连接代码像下面这样写对吗?难道换了一个服务器数据库连接代码还要改吗?原来运行可是正常的 package com.dao; import com.util.*;
import java.sql.*;
import javax.naming.*;
import javax.sql.*; /**
数据库连接
*/
public class DAO
{
public DataSource datasource;
public Connection conn;
public int count;
//private static Object object = new Object();
//private static DAO dbc = null; public DAO ()
{
datasource = null;
conn = null;
} /*//得到数据库连接实例
public static DAO getInstance() {
if (dbc == null) {
synchronized(object){
if(dbc == null)
dbc = new DAO();
}
}
return dbc;
}*/ public DataSource getDataSource ()
{
try
{
Context ctx = new InitialContext();
Object value = ctx.lookup(Constant.SYSTEM_DATASOURCE);
datasource = (DataSource) value;
}
catch (NamingException ne)
{
Debug.println("Couldn't find user datasource222222222222222: \n".concat(String.
valueOf(String.valueOf(ne))));
}
return datasource;
} public Connection getConnection ()
throws SQLException
{
datasource = getDataSource();
if (datasource != null)
{
conn = datasource.getConnection();
}
else
{
throw new SQLException("数据源为空111111111");
}
return conn;
} public void closeConnection (Connection conn)
{
try
{
if (conn != null && !conn.isClosed())
{
conn.close();
}
}
catch (SQLException se)
{
System.err.println(
"DAO closeConnection SQLException="
+ se.getMessage());
}
} public void closeStatement (Statement stmt)
{
try
{
if (stmt != null)
{
stmt.close();
}
}
catch (SQLException se)
{
System.err.println(
"DAO closeStatement SQLException="
+ se.getMessage());
}
} public void closePreparedStatement (PreparedStatement pStmt)
{
try
{
if (pStmt != null)
{
pStmt.close();
}
}
catch (SQLException se)
{
System.err.println("DAO closePrepareStatement "
+ "SQLException=" + se.getMessage());
}
} public void closeResultSet (ResultSet rs)
{
try
{
if (rs != null)
{
rs.close();
}
}
catch (SQLException se)
{
System.err.println(
"DAO closeResultSet SQLException="
+ se.getMessage());
}
}/**
* 说明:取得当前查询的总记录数
*/
public int getRows ()
{
return this.count;
} public void rsHandler (ResultSet rs, int offset, int limit)
{
try
{
count = 0;
rs.absolute(-1);
count = rs.getRow();
if (offset <= 0)
{
rs.beforeFirst ();
}
else
{
rs.absolute (offset);
}
}
catch (Exception e)
{
e.printStackTrace ();
}
}//删除、修改通用操作
public void operateRecord(String sql)
{
try
{
Connection conn = getConnection();
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
closeStatement(stmt);
closeConnection(conn);
}
catch (SQLException se)
{
System.out.println("SQLException=" + se.getMessage());
}
} public int getMaxId(String sql){
int maxid = 0;
try
{
Connection conn = getConnection();
Statement stmt = conn.createStatement();
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next())
{
maxid = rs.getInt(1)+1;
}else{
maxid = 1;
} stmt.close();
rs.close();
conn.close();
}
catch (SQLException se)
{
System.out.println("DatabaseOperation getIncreaseId="+ se.getMessage());
}
return maxid;
}
}
2,我的程序中的index.jsp页能成功运行,
3,如果现在换成tomcat6.0,那么程序就会运转正常,所以,我想,我开发的应用程序没有问题,ORACLE数据库也没有问题,weblogic也应该没有问题,有问题的是weblogic没有和我的应用程序连接起来,能查到的资料都查到了,还是不行想问问web.xml,setDomainEnv.cmd文件应该怎么改?我的数据库连接代码像下面这样写对吗?难道换了一个服务器数据库连接代码还要改吗?原来运行可是正常的 package com.dao; import com.util.*;
import java.sql.*;
import javax.naming.*;
import javax.sql.*; /**
数据库连接
*/
public class DAO
{
public DataSource datasource;
public Connection conn;
public int count;
//private static Object object = new Object();
//private static DAO dbc = null; public DAO ()
{
datasource = null;
conn = null;
} /*//得到数据库连接实例
public static DAO getInstance() {
if (dbc == null) {
synchronized(object){
if(dbc == null)
dbc = new DAO();
}
}
return dbc;
}*/ public DataSource getDataSource ()
{
try
{
Context ctx = new InitialContext();
Object value = ctx.lookup(Constant.SYSTEM_DATASOURCE);
datasource = (DataSource) value;
}
catch (NamingException ne)
{
Debug.println("Couldn't find user datasource222222222222222: \n".concat(String.
valueOf(String.valueOf(ne))));
}
return datasource;
} public Connection getConnection ()
throws SQLException
{
datasource = getDataSource();
if (datasource != null)
{
conn = datasource.getConnection();
}
else
{
throw new SQLException("数据源为空111111111");
}
return conn;
} public void closeConnection (Connection conn)
{
try
{
if (conn != null && !conn.isClosed())
{
conn.close();
}
}
catch (SQLException se)
{
System.err.println(
"DAO closeConnection SQLException="
+ se.getMessage());
}
} public void closeStatement (Statement stmt)
{
try
{
if (stmt != null)
{
stmt.close();
}
}
catch (SQLException se)
{
System.err.println(
"DAO closeStatement SQLException="
+ se.getMessage());
}
} public void closePreparedStatement (PreparedStatement pStmt)
{
try
{
if (pStmt != null)
{
pStmt.close();
}
}
catch (SQLException se)
{
System.err.println("DAO closePrepareStatement "
+ "SQLException=" + se.getMessage());
}
} public void closeResultSet (ResultSet rs)
{
try
{
if (rs != null)
{
rs.close();
}
}
catch (SQLException se)
{
System.err.println(
"DAO closeResultSet SQLException="
+ se.getMessage());
}
}/**
* 说明:取得当前查询的总记录数
*/
public int getRows ()
{
return this.count;
} public void rsHandler (ResultSet rs, int offset, int limit)
{
try
{
count = 0;
rs.absolute(-1);
count = rs.getRow();
if (offset <= 0)
{
rs.beforeFirst ();
}
else
{
rs.absolute (offset);
}
}
catch (Exception e)
{
e.printStackTrace ();
}
}//删除、修改通用操作
public void operateRecord(String sql)
{
try
{
Connection conn = getConnection();
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
closeStatement(stmt);
closeConnection(conn);
}
catch (SQLException se)
{
System.out.println("SQLException=" + se.getMessage());
}
} public int getMaxId(String sql){
int maxid = 0;
try
{
Connection conn = getConnection();
Statement stmt = conn.createStatement();
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next())
{
maxid = rs.getInt(1)+1;
}else{
maxid = 1;
} stmt.close();
rs.close();
conn.close();
}
catch (SQLException se)
{
System.out.println("DatabaseOperation getIncreaseId="+ se.getMessage());
}
return maxid;
}
}
URL : jdbc:weblogic:oracleDriver Classes : weblogic.jdbc.oci.DriverProperties (key=value): user=xixi
password=haha
server=your_tnsname
需要安装oracle的客户端your_tnsname是你在Oracle客户端中配置的指向oracle服务器的本地服务名startWeblogic.cmd中 Path变量加入.inoci817_82 oracle JDBC的thin方式
属性 值
URL : jdbc:oracle:thin:@193.0.0.5:1521:ora8Driver Classes : oracle.jdbc.driver.OracleDriverProperties (key=value): user=xixi
password=haha
dll=ocijdbc8
protocol=thin
不需要安装oracle的客户端 , ora8为你要连接的数据库的SIDstartWeblogic.cmd中 Path变量加入.inoci817_8, CLASSPATH中加入$ORACLE_HOMEjdbclibclasses12.zip或classes111.zip,使之能找到oracle的JDBC类。
2 Oracle JDBC的OCI8方式属性 值
URL : jdbc:oracle:oci8:@your_tnsDriver Classes : oracle.jdbc.driver.OracleDriverProperties (key=value): user=xixi
password=haha
dll=ocijdbc8
protocol=oci8
your_tns为你在Oracle中配置的指向oracle服务器的本地服务名(即 TNS NAME)
{取消path中的./bin/oci817_8/ (LINUX下$WL_HOME/lib/linux/ora8.1.6_oci8) LD_LIBRARY_PATH 加入 $ORACLE_HOME/lib }startWeblogic.cmd中 Path变量加入$ORACLE_HOME/bin, CLASSPATH中加入指向$ORACLE_HOMEjdbclibclasses12.zip或classes111.zip需要安装oracle的客户端 ,注意 oracle客户端配置好 oracle的环境变量 NLS_LANG和ORACLE_HOME
二 在console中注意 在targets页下选中你欲使用的server,即指定在哪些server中可以使用这个connection pool。三 建立一个数据源,使用这个连接池检查连接池是否配置成功重新启动后,在该连接池的monitor页下,查看该连接池的实例是否启动了。
<Resource name="jdbc/scott" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@10.70.8.79:1522:orcl" username="st" password="st" maxActive="20" maxIdle="10" maxWait="-1"/>上面的那段话,是用来在tomcat下连接数据库服务器的,那么到了weblogic下,没有了context.xml文件,那么上面的代码的功能,我该用哪个文件来实现?如何实现?