package metaEx;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import db_util.DBConn;
public class MySqlplus {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String sql, s;
int n;
gogo:
while (true) {
try {
System.out.print("SQL> ");
sql = "";
n = 1;
do {
s = br.readLine();
if (s == null || s.equalsIgnoreCase("exit")) {
DBConn.close();
System.exit(0);
}
s = s.trim();
sql += s + " ";
if (sql.trim().length() == 0) {
continue gogo;
}
if (s.lastIndexOf(";") == -1) {
System.out.print((++n) + " ");
}
} while (s.lastIndexOf(";") == -1);
sql = sql.trim();
sql = sql.substring(0, sql.lastIndexOf(";"));
if (sql.length() == 0) {
continue;
}
execute(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void execute(String sql) {
Connection conn = DBConn.getConnection();
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
stmt = conn.createStatement();
if (sql.toUpperCase().startsWith("SELECT")) {
rs = stmt.executeQuery(sql);
rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
for (int i = 1; i <= cols; i++) {
System.out.print(rsmd.getColumnName(i) + "\t");
}
System.out.println();
for (int i = 1; i <= cols; i++) {
System.out.print("----------");
}
System.out.println();
while (rs.next()) {
for (int i = 1; i <= cols; i++) {
System.out.print(rs.getString(i) + "\t");
}
System.out.println();
}
} else {
// INSERT, UPDATE, DELETE, CREATE, ALTER, DROP 등
int result = stmt.executeUpdate(sql);
if (sql.toUpperCase().startsWith("INSERT")) {
System.out.println(result + " 행이 추가 되었습니다.");
} else if (sql.toUpperCase().startsWith("UPDATE")) {
System.out.println(result + " 행이 수정 되었습니다.");
} else if (sql.toUpperCase().startsWith("DELETE")) {
System.out.println(result + " 행이 삭제 되었슨비다.");
} else {
System.out.println("쿼리가 실행 되었습니다.");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (Exception e2) {
}
}
if (stmt != null) {
try {
stmt.close();
} catch (Exception e2) {
}
}
}
}
}
'쌍용강북교육센터 > 9월' 카테고리의 다른 글
0903_Java : java.lang.Thread 스레드 클래스 (0) | 2021.09.07 |
---|---|
0902_데이터 모델링 및 설계 (0) | 2021.09.03 |
0901_Java : JDBC : Metadata 메타데이터 (0) | 2021.09.02 |
0901_Java : JDBC : Scroll (0) | 2021.09.02 |
0901_Java : JDBC : 자바에서 transaction 처리 (0) | 2021.09.02 |