ورود

View Full Version : مشکل در اجرای کونری JDBC با خواندن از فایل



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 داخلی که قراره خط به خط فایل ورودی رو تبدیل به یک کوئری کرده و اجرا کنه فقط یک بار انجام می شه. کسی دلیلش رو می دونه ؟ (اتصال به پایگاه رو قبلا تست کردم و مشکلی نیست. همین طور خوندن از فایل هم بدون مشکل انجام می شه. بخشی که از کد هم که مربوط به زمان اندازه گیری اجرای کوئری ها می شه قرار ندادم تا کد خوانا تر باشه). با تشکر.

ahmad.mo74
چهارشنبه 03 دی 1393, 14:41 عصر
سلام، ظاهرا کدتون درسته، تو خط 32 بزارید اکسپشن چاپ بشه شاید اونجا مشکلی داره...کلا همه catch ها رو خالی گذاشتید!

follower
چهارشنبه 03 دی 1393, 19:06 عصر
سلام، ظاهرا کدتون درسته، تو خط 32 بزارید اکسپشن چاپ بشه شاید اونجا مشکلی داره...کلا همه catch ها رو خالی گذاشتید!

پیشنهاد خوبی بود:) . اکسپشن داد. بررسی کردیم حل شد. خیلی لطف کردید.

follower
پنج شنبه 04 دی 1393, 16:04 عصر
سلام،

ببخشید یه سوال در مورد JDBC داشتم این که وقتی ما از JDBC استفاده می کنیم آیا زمان اجرای کونری های ما فرقی می کنه با وقتی که از sql server management studio برای اجرای کونری ها استفاده می کنیم؟ خواستم این مورد رو تست کنم ولی دستوری که به کمک اون بتونم از کنسول managment studio کونری ها رو از فایل بخونم بلد نبودم. چنین امکانی هست ؟

ahmad.mo74
پنج شنبه 04 دی 1393, 17:29 عصر
سلام، من sql server کار نمیکنم.