public class DataSource implements IDataSource {
private static final Logger logger = Logger.getLogger(DataSource.class); private Connection my_Connection; private PreparedStatement my_PreparedStatement; private CallableStatement my_CallableStatement; private ResultSet my_ResultSet; private ResultSetMetaData my_ResultSetMetaData; private Object my_Objects[]; private int my_ColumnsCount; IDataSourceConfig my_IDataSourceConfig; public DataSource(IDataSourceConfig _iDataSourceConfig) {
my_IDataSourceConfig = _iDataSourceConfig;
} public IDataSourceConfig getIDataSourceConfig() {
return my_IDataSourceConfig;
}
public void connectToDB() throws Exception {
Class.forName(my_IDataSourceConfig.getDataServerDriver());
my_Connection = DriverManager.getConnection(my_IDataSourceConfig
.getDataBaseConnectString(), my_IDataSourceConfig.getUser(),
my_IDataSourceConfig.getUserPassword());
my_Connection.setAutoCommit(false);
} public void selectResult(String _mySQL, String _type, Vector _params)
throws Exception {
setParams(_mySQL, _type, _params);
my_ResultSet = my_PreparedStatement.executeQuery();
my_ResultSetMetaData = my_ResultSet.getMetaData();
my_ColumnsCount = my_ResultSetMetaData.getColumnCount();
my_Objects = new Object[my_ColumnsCount];
} public Object singleResult(String _mySQL, String _type, Vector _params)
throws Exception {
setParams(_mySQL, _type, _params);
my_ResultSet = my_PreparedStatement.executeQuery();
Object resultObject;
if (my_ResultSet.next()) {
resultObject = my_ResultSet.getObject(1);
} else {
throw (new Exception("SingleResult error"));
}
my_ResultSet.close();
my_PreparedStatement.close();
return resultObject;
} public int nonResult(String _mySQL, String _type, Vector _params)
throws Exception {
setParams(_mySQL, _type, _params);
int i = my_PreparedStatement.executeUpdate();
my_PreparedStatement.close();
return i;
} public boolean next() throws Exception {
if (my_ResultSet.next()) {
for (int ColumnIndex = 1; ColumnIndex <= my_ColumnsCount; ColumnIndex++) {
my_Objects[ColumnIndex - 1] = my_ResultSet
.getObject(ColumnIndex);
}
return true;
} else {
my_ResultSet.close();
my_PreparedStatement.close();
return false;
}
} public Object[] getSelectResult() throws Exception {
return my_Objects;
} public Object[] getSelectResultStander() throws Exception {
Object[] obj = new Object[my_Objects.length];
for (int i = 0; i < my_Objects.length; i++) {
if (my_Objects[i] instanceof String) {
obj[i] = new String(my_Objects[i].toString().getBytes(
my_IDataSourceConfig.getDatabaseServerEncodeLocal()),
my_IDataSourceConfig.getDatabaseServerEncodeOutput());
} else {
obj[i] = my_Objects[i];
}
}
return obj;
} public String getStringStander(String _oralString) throws Exception {
return new String(_oralString.toString().getBytes(
my_IDataSourceConfig.getDatabaseServerEncodeLocal()),
my_IDataSourceConfig.getDatabaseServerEncodeOutput());
} public int getnumberOfColumns() {
return my_ColumnsCount;
} public void close() throws Exception {
this.closeStatement(); if (my_Connection != null) {
my_Connection.close();
}
} public void commit() throws Exception {
my_Connection.commit();
} public void rollback() throws Exception {
my_Connection.rollback();
} public void closeStatement() throws Exception {
if (my_Statement != null) {
my_Statement.close();
}
if (my_PreparedStatement != null) {
my_PreparedStatement.close();
}
if (my_CallableStatement != null) {
my_CallableStatement.close();
}
if (my_ResultSet != null) {
my_ResultSet.close();
}
} private void setParams(String _mySQL, String _type, Vector _params)
throws Exception {
my_PreparedStatement = my_Connection.prepareStatement(_mySQL);
my_PreparedStatement.clearParameters();
if (_params != null) {
for (int i = 0; i < _params.size(); i++) {
my_PreparedStatement.setObject(i + 1, _params.get(i));
}
}
} public static void main(String[] args) {
IDataSource iDataSource = new DataSource(
new OracleDataSourceConfigByClass());
try {
iDataSource.connectToDB();
Vector params = new Vector(); Object[] result;
// params.add((Object)new Double(233.95));
iDataSource
.selectResult(
"select user_name,user_type,user_status,user_pswd from syuser0a where user_id='MIRAY' ",
"SQL", params);
Vector vr = new Vector(); while (iDataSource.next()) {
result = iDataSource.getSelectResult();
for (int i = 0; i < result.length; i++) {
vr.add(result[0]);
logger.info(result[i] + "  ");
}
// byte[] a= result[3].toString().getBytes("ISO-8859-1");
}
// Object[] aa = vr.toArray();
logger.info("LOGIN IN"); // /
params.clear();
params.add(new Integer(99));
params.add("user");
params.add("upd");
params.add("warecode");
Object o = iDataSource
.singleResult(
"insert into processheader (flowid,crttime,crtuser,status,warecode,father,fatherage,ancestor) values (?,getdate(),?,?,?,0,1,2);select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1",
"", params); logger.info(o.toString());
iDataSource.commit();
iDataSource.close();
} catch (Exception e) {
try {
iDataSource.rollback();
} catch (Exception ex) {
logger.error(StringGF.loggerString(ex.getMessage()));
}
logger.error(e.getMessage().replace('\'', '|'));
}
} public int excuteUpdateStatement(String _sqlString) throws SQLException {
my_Statement = my_Connection.createStatement();
my_Statement.executeUpdate(_sqlString);
return my_Statement.getUpdateCount();
} Statement my_Statement; public ResultSet excuteQueryStatement(String _sqlString, int _fetchSize)
throws SQLException {
my_Statement = my_Connection.createStatement();
my_Statement.setFetchSize(_fetchSize);
my_ResultSet = my_Statement.executeQuery(_sqlString);
return my_ResultSet;
} public ResultSet excuteQueryStatement(String _sqlString, int _fetchSize,
int _typeSSServerCursor, int _concur) throws SQLException {
my_Statement = my_Connection.createStatement(_typeSSServerCursor,
+_concur);
my_Statement.setFetchSize(_fetchSize);
my_ResultSet = my_Statement.executeQuery(_sqlString);
return my_ResultSet;
} public PreparedStatement createPreparedStatement(String _sqlString,
int _fetchSize) throws SQLException {
my_PreparedStatement = my_Connection.prepareStatement(_sqlString);
my_PreparedStatement.setFetchSize(_fetchSize);
return my_PreparedStatement;
} public Connection getConnection() {
return my_Connection;
} public int excuteCallableStatement(String _sqlString) throws SQLException {
my_CallableStatement = my_Connection.prepareCall(_sqlString);
int li_return = my_CallableStatement.executeUpdate();
my_CallableStatement.close();
return li_return;
}}
这个是连接代代码。那错了?
F:\user\DataImportCmdLine>java -jar DataImportCmdLine.jar policy/epo.hardware.s
lserver.oracle.allpart.policy
[GDBNET]-INFO -11:20:36:583-com.ray.tdengine.transferdata.app.SyncGateway.doSta
t.132[main]-0-201001141120Transfer data begin now....policy file[policy/epo.har
ware.sqlserver.oracle.allpart.policy].
log4j:ERROR Failed to excute sql
java.sql.SQLException: Io 异常: The Network Adapter could not establish the con
ection
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.jav
:145)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.jav
:190)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.jav
:363)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:401)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java
441)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtensi
n.java:35)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:839)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at org.apache.log4j.jdbc.JDBCAppender.getConnection(JDBCAppender.java:1
7)
        at org.apache.log4j.jdbc.JDBCAppender.execute(JDBCAppender.java:160)
        at org.apache.log4j.jdbc.JDBCAppender.flushBuffer(JDBCAppender.java:235        at org.apache.log4j.jdbc.JDBCAppender.append(JDBCAppender.java:131)
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppender
(AppenderAttachableImpl.java:57)
        at org.apache.log4j.Category.callAppenders(Category.java:190)
        at org.apache.log4j.Category.forcedLog(Category.java:375)
        at org.apache.log4j.Category.info(Category.java:679)
        at com.ray.tdengine.transferdata.app.SyncGateway.doStart(SyncGateway.ja
a:132)
        at com.epo.transdata.app.EpoManageExe.main(EpoManageExe.java:37)
[GDBNET]-DEBUG-11:20:57:795-com.ray.tdengine.transferdata.app.SyncGateway.doSta
t.133[main]-21212-201001141120Transfer data begin now....policy file[policy/epo
hardware.sqlserver.oracle.allpart.policy].
[GDBNET]-WARN -11:21:39:936-com.ray.tdengine.transferdata.app.SyncGateway.run.6
[main]-63353-201001141120??????Job.0.Action[FirstPart].
这是报的错,怎么解决!?

解决方案 »

  1.   

    java.sql.SQLException: Io 异常: The Network Adapter could not establish the con
    ection 
    连不上数据库的基本原因:
    1。连接URL、用户名、密码是否正确?
    2。防火墙关了没?
    3。oracle服务 ×××Listener和OracleService***开了没?
    4。驱动包不对。(此处已找到,排除)。
      

  2.   

    java.sql.SQLException: Io 异常: The Network Adapter could not establish the con 
    ection 
     很明显是io 输入输出错误
     建议检查自己的电脑和服务器的电脑 看看有没有iptable!有没有其他的防火墙!