我做了兩個類,一個SQL閱讀器和一個SQL編譯器。出於測試的目的,我讀入並執行了一系列與derby相關的腳本,derbytutor文件夾。我無法弄清楚爲什麼不超過三個腳本實際執行沒有發生特定的錯誤。這個錯誤是A network protocol error was encountered and the connection has been terminated: A PROTOCOL Data Stream Syntax Error was detected. Reason: 0x9,236. Plaintext connection attempt to an SSL enabled server?
我正在運行Java應用程序作爲客戶端/服務器體系結構的客戶端。如果這可能是一個因素,腳本也很安靜嗎?Java執行sql腳本異常?德比網絡服務器
腳本的順序如下:
1 - 使架構(細運行沒有錯誤)
2 - 插入SCRIPT1 - 運行正常
2 - 插入SCRIPT2 - 運行良好
3 - 第三腳本返回error.Its不與語法否則會使的是表觀
這裏是主要方法whic小時,然後經過腳本轉換和執行
scriptRead scriptBuffer = new scriptRead();
scriptCompiler exec = new scriptCompiler();
try {
final long start = System.currentTimeMillis();
//Load Scripts
String[] schema = scriptBuffer.getScript("schema.sql");
String[] t1 = scriptBuffer.getScript("t1.sql");
String[] t2 = scriptBuffer.getScript("t2.sql");
String[] t3 = scriptBuffer.getScript("t3.sql");
scriptCompiler sc = new scriptCompiler();
//Run scripts
sc.execute(schema);
sc.execute(t1);
sc.execute(t2);
sc.execute(t3);// Problem statement
final long end = System.currentTimeMillis();
long fin = end - start;
System.out.println("Took a time... : " + fin);
}catch(Throwable exc){
System.err.print(exc.getMessage()+"\n");
}
這裏是執行腳本代碼運行..
public void makeConn() throws SQLException, ClassNotFoundException{
Class.forName(driver);
conn = DriverManager.getConnection(url);
}
@SuppressWarnings("CallToThreadDumpStack")
public void execute(String[] query){
try{
makeConn();
try{
stmt = conn.createStatement();
for(int x = 0; x < query.length;x++){
stmt.execute(query[x]);
}
stmt.close();
closeConn();
}catch(SQLException err){
//err.printStackTrace();
System.err.println(err.getMessage());
}
}catch(Throwable e){
if(e instanceof SQLException){
if(((SQLException)e).equals("08001")){
System.err.println("Incorrect Username or Password");
}else{
System.err.println("Check Server is running");
}
}else{
System.err.println("Could not find class path");
}
}
}
我真的不知道在哪裏的問題所在?如果它是SQL Syntax足夠公平,但爲什麼其他腳本正在執行。
那麼唯一的區別是第三個插入腳本包含更多的類型。因此,第一個腳本類似於「插入國家值('阿富汗','AF','亞洲');'和失敗的腳本'插入到FLIGHTAVAILABILITY值('AA1211',1,'2004-03-31 」,2,2,2);'。此外,該網站正在維護中,因此無法看到它 – user2329170 2013-05-02 00:57:35