나는 말도 안되는 말을하지 않을 것입니다. Java 작동 SQL 데이터베이스의 일반적인 연결 문제를 공유 할 것입니다.
1. 연결, 쿼리, 업데이트, 닫기
이러한 기본 데이터 작업은 Model2 Model SQL 도구 인 도구와 같은 모델로 구성되어 작성됩니다. 원래 트랜잭션 처리와 같은 다른 작업을 추가하고 싶었지만 아직 더 완벽한 방법을 생각하지 않았습니다. 코드를 자세히 살펴보십시오. 의견은 매우 상세합니다.
import java.sql.*; import java.util.iterator; import java.util.map; import java.util.set;/*** 2016/1/29에 nl101에 의해 생성 된/***/***/public class sqlbean {// 초기화 작업은 이전 연결에서 작성되어 있습니다. conn = null = null; null = null; null; null; null; "oracle.jdbc.driver.oracledriver"; String url = "jdbc : oracle : thin : @localhost : 1521 : orcl"; String username = "scott"; String password = "123456";/*** 연결 초기화*/public sqlbean () {class.forname (drivername); DriverManager.getConnection (url, username, password);} catch (classNotFoundExcept e) {e.printstacktrace (); System.err.println ( "Database Link Exception");} catch (sqlexception e) {e.printstacktrace (); system.err.println ( "database 링크 예외"); 누락* // *** 데이터베이스 업데이트 기능 생성* @param sql 해당 업데이트 SQL 문* @param 매개 변수 추가 매개 변수 필요한 추가 매개 변수* @return true false update 실패*/public boolean update (String SQL, String [] params) {int k = 0; {ps = conn.preparestatement (sql); ps.SetString (i+1, params [i]);} k = ps.ExecuteUpdate ();} catch (sqlexception e) {e.printstacktrace (); system.err.println ( "데이터베이스 업데이트 예외"); 매개 변수* @return query result set*/public resultset query (string sql, string [] params) {try {ps = conn.preparestatement (sql); for (int i = 0; i <params.length; i ++) {ps.setString (i+1, params [i]);} factection ();}); {e.printstacktrace (); system.err.println ( "데이터베이스 쿼리 예외");} return rs;}/*** 닫기 데이터베이스 문*/public void close () {try (rs! = null) rs.close (); rs = null; if (ps! = null) ps.close (); ps = null; if (conn! = null) conn.close (); conn = null;} catch (sqlexception e) {e.printstacktrace ();}}}이와 같이 작성, 다른 클래스를 호출하면 다음 방법을 따라갈 수 있습니다.
sqlbean sqlbean = new sqlbean (); String [] params = {}; // 매개 변수가있는 경우 resultet rs = sqlbean.query ( "select ename", params); // sql state // loop out {while (rs.next ()) {rs.getln (rs.get.)); (sqlexception e) {e.printstacktrace (); sqlbean.close (); // 연결을 닫으} sqlbean.close (); // 데이터베이스 연결을 닫으십시오.2. 거래 처리
트랜잭션을 처리 할 때 자동 제출이 항상 취소되고 명령이 실행되고 최종 제출이 제출 된 다음 롤백 할 때 예외가 발생합니다. 방법을 작성하는 방법에 관해서는 아직 좋은 아이디어를 생각하지 않았습니다.
import bean.sqlbean; import java.sql.*;/*** 2016/1/29에 nl101에 의해 생성되었습니다.*/public class test {public static void main (string [] args) {Connection conn = null; state ps = null; String drivername = "oracle.jdbc.driver.oracledriver"; "JDBC : Oracle : Thin : @localHost : 1521 : orcl"; String username = "scott"; String password = "7946521"; try {class.forname (drivername); conn = drivermanager.getConnection (url, username, password); conn.setautocommit (false); conn.createstatement (); ps.addbatch ( "문장 1에서 작동하는 문장 1"); ps.Addbatch ( "문장 2에서 작동하는 문장 2"); ps.Addbatch ( "문장 3에서 작동"); ps.AddBatch ( "Sentence 4 to formate"); ps.ExecuteBatch (); Conn.setAutoCommit (true); // 자동 제출} catch (classNotfoundException e) {e.printstacktrace (); System.err.println ( "데이터베이스 링크 예외");} catch (sqlexception e) {e.printstacktrace (); system.err.println ( "transaction excepting"; if {if excepting "; (conn! = null) {conn.rollback (); // 롤백 작업 conn.setautocommit (true);}} catch (sqlexception e1) {e1.printstacktrace ();}} 마침내 {// 데이터베이스가 {if (rs! = null) rs.close (); rs = null; null; if (null; null;); null; if conn! = null) conn.close (); conn = null;} catch (sqlexception e) {e.printstacktrace ();}}}}3. 통화 저장 절차
call = ct.preparecall ( "{call sp_pro4 (?,?,?, ?,? Call.setInt (2, 4); CALL.SETINT (3, 1); // 출력 매개 변수 설정 CALL.REGISTEROUTPARAMETER (4, oracletypes.number); CALL.REGISTEROUTPARAMETER (5, oracletypes.number); Call.registerOutParameter (6, oracletypes.cursor); // 콜 콜 콜 콜 .execute (); // 총 출력 수와 총 페이지 시스템 시스템 .out.println ( "총 레코드 수"+콜. getInt (4)+"-총 페이지 수"+콜. while (rs.next ()) {for (int i = 0; i <7; i ++) {system.out.print (rs.getString (i+1)+"");} system.out.println ();}4. 이동식 결과 세트
Sun은 인터페이스 만 제공합니다. 작동 할 수 있는지 여부는 참조하는 JDBC 드라이버가 지원하는지 여부에 따라 다릅니다.
import java.sql.*; public class testscroll {public static void main (string args []) {try {new oracle.jdbc.driver.oracledriver (); String url = "jdbc : oracle : thin :@192.168.0.1 : 1521 : 1521 : SXT" stmt = conn.createstatement (resultet.type_scroll_insensentive, // rs를 scroll resultet.concur_read_only)로 설정하십시오. system.out.println (rs.getint (1)); rs.last (); // 마지막 줄 System.out.out.println (rs.getString (1)); syst.out.println (rs.islast (rs.islast (rs.islast))를 가리 킵니다 em.out.println (rs.getrow ()); rs.previous (); // 라인업 System.out.out.println (rs.getString (1)); rs.Absolute (6); //이 방법을 직접 찾아옵니다. (sqlexception e) {e.printstacktrace ();}}}5. 업데이트 가능한 결과 세트
import java.sql.*; public class testupdatars {public static void main (String args []) {try {new oracle.jdbc.driver.oracledriver (); String url = "jdbc : oracle : thin :@192.168.0.1 : 1521 : sxt"; conn = drivermanager.getConnection (url, "scott", "tiger"); statement stmt = conn.createstatement (resultSet.type_scroll_insensitive, resultSet.concur_updatable); resultSet rs = stmt.executeQuery ( "select * from emp2"); rs.next (); rs.updatestring ( "ename", "aaaa"); rs.updaterow (); // 새 행을 삽입 rs.movetoinsertrow (); rs.updateint (1, 9999); rs.updatestring ( "ename", "aaaa"); rs.updateint ( "mgr", 7839); 99.99).위는 편집자가 귀하와 공유하는 Java의 SQL 데이터베이스에 연결하는 데 자주 사용하는 작업입니다. 나는 그것이 당신에게 도움이되기를 바랍니다.