follower
چهارشنبه 03 دی 1393, 10:54 صبح
با سلام.
بنده می خواستم برای تست کارایی sql هنگام کار با عملیات حجیم و کوئری های پی در پی یک سری کونری رو از یک فایل خونده و اون ها رو اجرا کنم و زمانش رو بسنجم. این کد بنده برای این کار هستش:
package connectToSql;
import java.sql.*;
import java.io.File;
import java.util.Scanner;
public class connect {
public static void main(String[] args) {
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=test;user=test;password=test";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
con = DriverManager.getConnection(connectionUrl);
try {
File file1=new File("test.txt");
Scanner sc=new Scanner(file1);
while(sc.hasNextLine()){
// System.out.println(sc.nextLine());
String SQL = sc.nextLine();
stmt = con.createStatement();
rs = stmt.executeQuery(SQL);
}
} catch (Exception ex) {}
}
catch (Exception e) { e.printStackTrace();}
finally {
if (rs != null) try { rs.close(); } catch(Exception e) {}
if (stmt != null) try { stmt.close(); } catch(Exception e) {}
if (con != null) try { con.close(); } catch(Exception e) {}
}
}
}
من خواستم خط به خط از فایل ورودی بخونم و هر خط معادل یک کوئری هستش. مشکلی که وجود داره اینه که تکه کد while در try داخلی که قراره خط به خط فایل ورودی رو تبدیل به یک کوئری کرده و اجرا کنه فقط یک بار انجام می شه. کسی دلیلش رو می دونه ؟ (اتصال به پایگاه رو قبلا تست کردم و مشکلی نیست. همین طور خوندن از فایل هم بدون مشکل انجام می شه. بخشی که از کد هم که مربوط به زمان اندازه گیری اجرای کوئری ها می شه قرار ندادم تا کد خوانا تر باشه). با تشکر.
بنده می خواستم برای تست کارایی sql هنگام کار با عملیات حجیم و کوئری های پی در پی یک سری کونری رو از یک فایل خونده و اون ها رو اجرا کنم و زمانش رو بسنجم. این کد بنده برای این کار هستش:
package connectToSql;
import java.sql.*;
import java.io.File;
import java.util.Scanner;
public class connect {
public static void main(String[] args) {
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=test;user=test;password=test";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLSer verDriver");
con = DriverManager.getConnection(connectionUrl);
try {
File file1=new File("test.txt");
Scanner sc=new Scanner(file1);
while(sc.hasNextLine()){
// System.out.println(sc.nextLine());
String SQL = sc.nextLine();
stmt = con.createStatement();
rs = stmt.executeQuery(SQL);
}
} catch (Exception ex) {}
}
catch (Exception e) { e.printStackTrace();}
finally {
if (rs != null) try { rs.close(); } catch(Exception e) {}
if (stmt != null) try { stmt.close(); } catch(Exception e) {}
if (con != null) try { con.close(); } catch(Exception e) {}
}
}
}
من خواستم خط به خط از فایل ورودی بخونم و هر خط معادل یک کوئری هستش. مشکلی که وجود داره اینه که تکه کد while در try داخلی که قراره خط به خط فایل ورودی رو تبدیل به یک کوئری کرده و اجرا کنه فقط یک بار انجام می شه. کسی دلیلش رو می دونه ؟ (اتصال به پایگاه رو قبلا تست کردم و مشکلی نیست. همین طور خوندن از فایل هم بدون مشکل انجام می شه. بخشی که از کد هم که مربوط به زمان اندازه گیری اجرای کوئری ها می شه قرار ندادم تا کد خوانا تر باشه). با تشکر.