큰 소가 쓴 JDBC 도구류
5721 단어 jdbc
그때를 기억해라. 이 큰 소(IBM 모 구조)는 UE에서 단숨에 이루어졌고 아무런 여분의 코드도 없었다. 심지어 주석을 쓰지 않아도 이 단락의 코드의 용도를 알 수 있었다. 지금 자세히 보면 비록 매우 기본적이지만 여전히 이 단락의 코드가 매우 시원하다는 것을 느낀다.붙이고 시간 나면 대충 한번...
package com.yinhai.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class JdbcUtil
{
static{
String driver = "oracle.jdbc.driver.OracleDriver";
try{
Class.forName(driver);
}catch(Exception e){
e.printStackTrace();
}
}
public static Connection getConnection(){
String url =
"jdbc:oracle:thin:@192.192.192.239:1521:orcl";
String usr = "xajgyl";
String pwd = "xajgyl";
Connection con = null;
try{
con = DriverManager.getConnection(url,usr,pwd);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void close(ResultSet rs, Statement stmt,Connection con){
try{
if(rs!=null) rs.close();
}catch(Exception ex){
ex.printStackTrace();
}
try{
if(stmt!=null) stmt.close();
}catch(Exception ex){
ex.printStackTrace();
}
try{
if(con!=null) con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void printRs(ResultSet rs){
try{
StringBuffer sb = new StringBuffer();
ResultSetMetaData meta = rs.getMetaData();
int cols = meta.getColumnCount();
while(rs.next()){
for(int i=1;i<=cols;i++){
sb.append(meta.getColumnName(i)+"->");
sb.append(rs.getString(i)+" ");
}
sb.append("
");
}
System.out.print(sb.toString());
}catch(Exception e){
e.printStackTrace();
}
}
}
다른 클래스:
package com.yinhai.util;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class SQLTools
{
public static void main(String[] args){
Connection con = null;
while((con=getConnection())==null){};
try{
con.setAutoCommit(false);
}catch(Exception e){
System.out.println(e.getMessage());
}
handleCommand(con);
JdbcUtil.close(null,null,con);
System.out.println(" !");
}
private static void handleCommand(Connection con){
String command = "";
boolean flag = true;
while(flag){
command = getCommand();
if("quit".equals(command)){
flag = false;
}else if("commit".equals(command) || "rollback".equals(command)){
handleCommit(con,command);
}else{
handleSQL(con,command);
}
}
}
private static Connection getConnection(){
Connection con = null;
String url = "";
String usr = "";
String pwd = "";
url = prompt(" URL:");
usr = prompt(" :");
pwd = prompt(" :");
try{
con = DriverManager.getConnection(url,usr,pwd);
}catch(Exception e){
System.out.println(" :"+e.getMessage());
}
return con;
}
private static String getCommand(){
StringBuffer sb = new StringBuffer();
String command = "";
String message = "SQL->";
boolean flag = true;
int c = 0;
while(flag){
if(c++!=0) message = c+"->";
sb.append(prompt(message)+" ");
command = sb.toString().trim();
if(command.endsWith(";")){
flag = false;
}
}
return command.substring(0,command.length()-1).trim();
}
private static void handleCommit(Connection con,String command){
try{
if("commit".equals(command)){
con.commit();
}else{
con.rollback();
}
}catch(Exception e){
System.out.println(" / :"+e.getMessage());
}
}
private static void handleSQL(Connection con ,String command){
PreparedStatement ps = null;
ResultSet rs = null;
try{
ps = con.prepareStatement(command);
if(ps.execute()){
rs = ps.getResultSet();
JdbcUtil.printRs(rs);
}else{
System.out.println(" :"+ps.getUpdateCount()+" .");
}
}catch(Exception e){
System.out.println(" :"+e.getMessage());
try{
if(con!=null)con.rollback();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
private static String prompt(String message){
BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
System.out.print(message);
String input = "";
try{
input = in.readLine();
}catch(Exception e){
System.out.println("IO :"+e.getMessage());
}
return input;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 애플리케이션을 모든 SQL 데이터베이스와 연결그래서 오늘 이 기사를 통해 JDBC를 통해 Java 애플리케이션을 SQL 데이터베이스에 연결하기 위해 작성할 수 있는 각 줄을 설명하는 심층 가이드를 제공하여 그들과 모든 커뮤니티를 도우려고 합니다. JDBC는 J...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.