Je ne dirai pas beaucoup de bêtises, je partagerai avec vous les problèmes de connexion communs des bases de données SQL opérationnelles Java.
1. Connectez, remettez, mettez à jour, fermez
Ces opérations de données de base sont assemblées et écrites dans un modèle de type outil, qui est l'outil SQL du modèle Model2. Je voulais à l'origine ajouter d'autres opérations, comme le traitement des transactions, mais je n'ai pas encore pensé à une méthode plus parfaite. Veuillez regarder le code en détail. Les commentaires sont très détaillés.
Importer java.sql. *; Importer java.util.iterator; import java.util.map; import java.util.set; / *** créé par NL101 le 2016/1/29. * / classe publique SqlBean {// Les opérations d'initialisation sont écrites dans la connexion précédente Conn = null; préparé Ps = Null; résultat Rs = null; String Drvername = Preakstatement ps = null; ResultAt Rs = Null; String Drvername = Preakstatement ps = Null; ResultAt Rs = Null; String DRIVERNAME = PREPEPTAMENTS PS = NULL "oracle.jdbc.driver.oracledriver"; string url = "jdbc: oracle: mince: @localhost: 1521: orcl"; string username = "scott"; string password = "123456"; / *** initialize the Connection and Get Conn * / public sqlbean () {try {class.forname (drivername); Conn = DriverManager.getConnection (URL, nom d'utilisateur, mot de passe);} catch (classNotFoundException e) {e.printStackTrace (); System.err.println ("Database Link Exception");} Catch (Sqlexception E) {E.PrintStackTrace (); System.err.Println ("Database Exception" manquant * // *** Créer la fonction de mise à jour de la base de données * @param sql correspondant à mise à jour SQL * @param Params Paramètres supplémentaires requis * @return true false false false false * / public boolean update (String sql, String [] Params) {int k = 0; try {ps = conn.preparestatement (sql); pour (int i I = 0; i <paramshylength; ps.setsstring (i + 1, params [i]);} k = ps.ExecuteUpdate ();} catch (sqlexception e) {e.printStackTrace (); System.err.println ("Database Update Exception");} return k> 0? True: false;} / *** Database Query function Paramètres * @return requête SELT RESULTS * / Public ResultSet Query (String Sql, String [] Params) {try {ps = conn.preparestatement (sql); for (int i = 0; i <params.length; i ++) {ps.setsstring (i + 1, params [i]);} rs = ps.ExeccuteeQuy ();) gens rs = null; if (ps! = null) ps.close (); ps = null; if (conn! = null) Conn.close (); conn = null;} catch (sqlexception e) {e.printStackTrace ();}}}Écrit comme celui-ci, si vous appelez d'autres classes, vous pouvez suivre la méthode suivante.
Sqlbean sqlbean = new sqlbean (); string [] params = {}; // s'il y a un paramètre, écrivez-le dans ResultSet rs = sqlbean.query ("sélectionnez ename from emp", params); // sql instruction // Loop out try {while (rs.next ()) {System.out.Tratl (Sqlexception e) {e.printStackTrace (); sqlbean.close (); // Fermez la connexion si exception} sqlbean.close (); // ferme la connexion de la base de données2. Traitement des transactions
Lors du traitement des transactions, la soumission automatique est toujours annulée en premier, puis la commande est exécutée et la soumission finale est soumise, puis l'exception se produit lors du retour en arrière. Quant à la façon d'écrire une méthode, je n'ai pas encore pensé à une bonne idée.
Importer bean.sqlbean; Importer java.sql. *; / *** Créé par NL101 le 2016/1/29. * / Public Class Test {public static void main (String [] args) {Connection Conn = null; instruction ps = null; String Drivername = "Oracle.jdbc.Driver.oracledRiver"; String url = "JDBC: Oracle: Thin: @LocalHost: 1521: Orcl"; String Username = "Scott"; String Password = "7946521"; Try {class.forname (Drivername); Conn.SetAutoMit (False) (Url, nom d'utilisateur, Passway Ps = Passway Ps = Conn.CreateStatement (); ps.AddBatch ("phrase 1 pour opérer"); ps.AddBatch ("phrase 2 pour fonctionner"); ps.AddBatch ("phrase 3 pour fonctionner"); ps.addbatch ("phrase 4 pour opérer"); Ps.ExecuteBatch (); // soumettre la commande ci-dessus Conn.Commit (); // soumettre la transaction Conn.SetAutoCommit (true); // activer la soumission automatique} catch (classNotFoundException e) {e.printStackTrace (); System.err.println ("Database Link Exception");} Catch (Sqlexception E) {e.printStackTrace (); (Conn! = null) {conn.rollback (); // Rolling Back Operation Conn.SetAutoCMit (true);}} catch (SQLEXception e1) {e1.printStackTrace ();}} Enfin {// terminer la base de données try {if (rs! = null) rs.close (); rs = null; if (ps! = Null) Rs.close (); rs = null; null; if (conn! = null) conn.close (); conn = null;} catch (sqlexception e) {e.printstackTrace ();}}}}3. Call des procédures stockées
call = ct.preparecall ("{appel sp_pro4 (?,? ,?,?,?,?)?)}"); // définir les paramètres d'entrée call.setstring (1, "emp"); call.sentInt (2, 4); call.setInt (3, 1); // définir les paramètres de sortie Call.RegisterOutParameter (4, oracletypes.number); Call.RegisterOutParameter (5, oracletypes.number); calmer.RegisterOutParameter (6, oracletypes.cursor); // exécuter call.execute (); // le nombre total de sorties et de pages totales System.out.println ("Nombre total de enregistrements" + call.getInt (4) + "- Nombre total de pages" + call.getInt (5)); // Loop Out le tableau de résultat Rs = (résultat) Call.get (6); 6); while (Rs.Next ()) {for (int i = 0; i <7; i ++) {System.out.print (Rs.getString (i + 1) + "");} System.out.println ();}4. Ensemble de résultats mobiles
Le soleil ne fournit qu'une interface. La question de savoir si elle peut être exploitée dépend de la question de savoir si le pilote JDBC que vous faites référence le prend en charge.
Importer java.sql. *; classe publique Testscroll {public static void main (String args []) {try {new oracle.jdbc.driver.oracledriver (); string url = "jdbc: oracle: mince: @ 192.168.0.1: 1521: sxt"; Connection Conne = DriverManage.get.getconnection (URL, "Scot "Tiger"); instruction STMT = Conn.CreatEstatement (resultSet.type_scroll_insensitive, // Définissez le RS sur Scroll ResultSet.concur_read_only); // Définissez le RS sur le résultat en lecture Rs = stmt.Executequery ("SELECT * From EMP par Sal"); Rs.next (); // Down Down One Line System.out.println (Rs.getInt (1)); Rs.Last (); // pointer vers la dernière ligne System.out.println (Rs.getString (1)); Syst.out.println (Rs.islast ()); Syst.out.println (Rsafterlast ()); Syst Em.out.println (Rs.GetRow ()); Rs.Revious (); // Déplacez un système de ligne.out.println (Rs.GetString (1)); Rs.Absolute (6); // Cette méthode localise directement le numéro de ligne System.out.println (Rs.GetString (1)); Rs.Close (); STMT.Close (););); (Sqlexception e) {e.printStackTrace ();}}}5. Ensemble de résultats de mise à jour
Importer java.sql. *; classe publique TestupDatars {public static void main (String args []) {try {new oracle.jdbc.driver.oracledriver (); string url = "jdbc: oracle: mince: @ 192.168.0.1: 1521: sxt"; Conn = driverManager.getConnection (URL, "Scott", "Tiger"); instruction stmt = conn.createStatement (resultSet.type_scroll_insensitive, resultSet.concur_updatable); resultSset rs = stmt.ExECTEUTeRery ("select * from emp2"); Rs.next (); // à jour une ralette de données de données de données de données de données de données de données de données de données de données de données sur les données de l'EMP2 "); Rs.UpdateString ("ename", "aaaa"); S.upDaterow (); // insérer une nouvelle ligne Rs.MovetOnsertrow (); Rs.updateint (1, 9999); rs.updatestring ("ename", "aaaa"); Rs.Updateint ("mgr", 7839); 99.99); Rs.Insertrow (); // déplacez le curseur vers la ligne nouvellement créée Rs.MovetoCurRentrow (); // supprimer la ligne Rs.Absolute (5); Rs.Deleterrow (); // Annuler Update // Rs.CancelRowupdates ();} Catch (sqlexect e) {E.PrintStackTrace (););Ce qui précède est les opérations que j'utilise souvent pour me connecter aux bases de données SQL en Java que l'éditeur partage avec vous. J'espère que cela vous sera utile.