私はそれほどナンセンスとは言いません。Java操作SQLデータベースの共通の接続問題をあなたと共有します。
1。接続、クエリ、更新、閉じます
これらの基本的なデータ操作はまとめられ、モデル2モデルSQLツールであるツールのようなモデルに書き込まれます。私はもともと、トランザクション処理など、他の操作を追加したかったのですが、まだより完璧な方法を考えていませんでした。コードを詳細にご覧ください。コメントは非常に詳細です。
java.sql。*;インポートJava.util.iterator; Import java.util.map; Import java.util.set;/*** 2016/1/29にNL101によって作成された*** "oracle.jdbc.driver.oracledriver"; string url = "jdbc:oracle:thin:@localhost:1521:orcl"; string username = "scott"; string password = "123456";/***接続を初期化してconn./public sqlbean(){class.forname(drivername); drivermanager.getConnection(url、username、password);} catch(classNotFoundException e){e.printStacktrace(); system.err.println( "データベースリンクの例外");} catch(sqlexception e){e.printstacktrace(); system.err.println()欠落している* // ***データベース更新機能を作成* @param SQL対応する更新SQLステートメント* @Param Params追加パラメーターが必要です* @return True Update Succune Succubet False Update Failed*/Public SQL、String [] PARAMS) ps.setString(i+1、params [i]);} k = ps.executeupdate();} catch(sqlextrace e){e.printstacktrace(); system.err.println( "database update exception");} return k> 0?true:fals;}パラメーター* @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); {e.printstacktrace(); system.err.println( "データベースクエリ例外");} return rs;}/*** close databaseステートメント*/public void close(){try {if(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 = {}; // parameterがある場合、結果rs = sqlbean.query( "select ename from emp"、params); (sqlexception e){e.printstacktrace(); sqlbean.close(); //例外の場合は接続を閉じる} sqlbean.close(); //データベース接続を閉じる2。トランザクション処理
トランザクションを処理すると、自動提出が常に最初にキャンセルされ、次にコマンドが実行され、最終提出が送信され、ロールバック時に例外が発生します。方法の書き方については、まだ良い考えを考えていません。
Import bean.sqlbean; Import java.sql。*;/*** 2016/1/29。*/public class test {public static void main(string [] args){connection conn = null; statement ps = null; string drivername = "oracle.jdbc.driver.driver"; string url = null; string drivername = " 「JDBC:Oracle:Thin:@LocalHost:1521:Orcl "; String username =" scott "; string password =" 7946521 "; try {class.forname(drivername); conn = drivermanager.getConnection(url、username、subsic submitative); connsetautocommit(false); conn.createstatement(); ps.addbatch( "操作"文1 "); ps.addbatch(" operate ") conn.setautocommit(true); // enabable automatic submission} catch(classNotFoundException e){e.printstacktrace(); system.err.println( "Database Link Exception");} catch(sqlexception e){e.printstacktrace(); system.err.err.err.er. (conn!= null){conn.rollback(); //ローリングバック操作conn.setautocommit(true);}} catch(sqlexception e1){e1.printstacktrace();}} {//データベーストライを終了します{rs!= null; rsclose(); rs = 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); // call.execute(); //出力の総数と総ページSystem.out.println(「レコードの総数」+call.getint(4)+" - ページの総数" - call.getint(5)); while(rs.next()){for(int i = 0; i <7; i ++){system.out.print(rs.getString(i+1)+"");} system.out.println();}4。移動可能な結果セット
太陽はインターフェイスのみを提供します。操作できるかどうかは、あなたが参照するJDBCドライバーがそれをサポートするかどうかによって異なります。
Java.sql。*; public class testscroll {public static void main(string args []){try {new oracle.jdbc.driver.oracledriver(); string url = "jdbc:oracle:thin:shin:@192.168.0.1:1521:sxt" "Tiger");ステートメントstmt = conn.createStatement(resultset.type_scroll_insensivity、// rsをresultet.concur_read_only) System.out.println(rs.getint(1)); rs.last(); //最後のラインSystem.out.println(rs.getString(1)); syst.out.println(rs.islast()); syst.out.println(rs.isafterlast()); syst em.out.println(rs.getRow()); rs.Previous(); // line Up System.out.println(rs.getString(1)); rs.Absolute(6); //この方法は直接system.out.println(rs.getString(1)); rs.close (sqlexception e){e.printstacktrace();}}}5。更新可能な結果セット
import java.sql。*; public class testupdatars {public static void main(string args []){try {new oracle.jdbc.driver.driver(); string url = "jdbc:oracle:thin:thin:@192.168.0.1:1521:Sxt"; connection conn = drivermanager.getConnection(url、 "scott"、 "tiger"); statement stmt = conn.createStatement(resultet.type_scroll_insensitive、resultset.concur_updatable); rester rs = stmt.executequery( "from emp2"); rs.next( rs.updatestring( "ename"、 "aaaa"); rs.updaterow(); //新しい行を挿入rs.movetoinsertrow(); rs.updateint(1、9999); rs.updateString( "ename"、 "aaa"); rs.Updateint( "、7839); 99.99); rs.insertrow(); //カーソルを新しく作成したラインrs.movetocurrentrow()上記は、編集者が共有するJavaのSQLデータベースに接続するためによく使用する操作です。それがあなたに役立つことを願っています。