Я не скажу много чепухи, я поделюсь с вами общими проблемами подключения баз данных SQL Java.
1. Подключите, запросите, обновляйте, закрыть
Эти базовые операции данных объединяются и записываются в инструментальную модель, похожую на инструмент, которая является инструментом SQL Model2 Model2. Первоначально я хотел добавить другие операции, такие как обработка транзакций, но я еще не думал о более совершенном методе. Пожалуйста, посмотрите на код подробно. Комментарии очень подробно.
Импорт java.sql.*; import java.util.iterator; import java.util.map; import java.util.set;/*** Создан NL101 от 2016/1/29.*/Public Class SQLBEAN {// Операции инициализации написаны в String null; "oracle.jdbc.driver.oracledriver"; string url = "jdbc: oracle: thin: @localhost: 1521: orcl"; string username = "scott"; string passwer = "123456";/*** Инициализируйте соединение и получайте conn*/public sqlbean () {try {class.forname (Drivername); Drivermanager.getConnection (URL, имя пользователя, пароль);} Catch (classNotFoundException e) {e.printStackTrace (); System.err.println ("Исключение канала базы данных");} catch (sqlexception e) {e.printstacktrace (); System.err.err.errintln ("DataBase Link Excection"); Отсутствует* // *** Создание функции обновления базы данных* @param SQL Соответствующее обновление оператора SQL* @param params, необходимых для дополнительных параметров* @return True Update Успешное обновление false Update*/public Boolean Update (String sql, String [] params) {int k = 0; try {ps = conn.preprestatement (sql); for (int i = 0; Ps.setString (i+1, params [i]);} k = ps.executeUpdate ();} catch (sqlexception e) {e.printstacktrace (); System.err.println ("Обновление базы данных Exception");} return k> 0? True: false;}/*** DataBase Query Fund Параметры* @return Query Set 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]); {e.printstacktrace (); System.err.println ("Исключение запроса базы данных");} return rs;}/*** Закрыть оператор базы данных*/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 = {}; // Если есть параметр, напишите его в Resultset rs = sqlbean.query ("select ename from emp", params); // sql atervice // loop out try {rs.next ()). (SQLexception e) {e.printstackTrace (); sqlbean.close (); // Закрыть соединение, если исключение} sqlbean.close (); // Закрыть соединение базы данных2. Обработка транзакций
При обработке транзакций автоматическое представление всегда отменяется сначала, затем выполняется команда, и окончательное представление представлено, а затем исключение происходит при отказе назад. Что касается того, как написать метод, я еще не думал о хорошей идее.
Import Bean.sqlbean; Import java.sql.*;/*** создан NL101 от 2016/1/29.*/Общественный тест класса {public static void main (string [] args) {connect conn = null; оператор PS = nul "JDBC: Oracle: Thin: @localhost: 1521: orcl"; string username = "scott"; string password = "7946521"; try {class.forname (DriverName); conn = DriverManager.getConnection (URL, Username, пароль); conn.setAutocommit (false); // cancel the AutoMishise подход); conn.createStatement (); ps.addbatch («предложение 1 к работе»); ps.addbatch («предложение 2 к работе»); ps.addbatch («Предложение 3 к работе»); ps.addbatch («Предложение 4 для работы»); ps.executebatch (); // Отправить вышеупомянутый conn.commid (); // hareecutebatch (); // отправить вышеуказанный conn.com (); conn.setautocommit (true); // включить автоматическое представление} catch (classnotfoundexception e) {e.printstacktrace (); System.err.println ("Исключение канала базы данных");} catch (sqlexception e) {e.printstacktrace (); System.err. (conn! = null) {conn.rollback (); // holling acmance conn.setautocommit (true);}} catch (sqlexception e1) {e1.printstacktrace ();}} Наконец {// Закончить базу try {if (rs! = null) rslose (); 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); // ware out table restect rs = (resuststectobject). 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:@192.168.0.1: 1521: sxt"; connect connectmanger.getConcectionection (url ","; stmt = conn.createStatement (resultset.type_scroll_insensity, // установить RS для прокрутки resultset.concur_read_only); // Установить RS на RS-только Resultset rs = stmt.executeQuer System.out.println (rs.getint (1)); rs.last (); // указывать на последнюю строку системы. em.out.println (rs.getrow ()); rs.previous (); // Переместить линейку System.out.println (rs.getstring (1)); Rs.absolute (6); // Этот метод напрямую определяет систему номера линии. (SQLexception e) {e.printstackTrace ();}}}5. Обновляемый набор результатов
Импорт 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"; connect conneck = rivermanager.getConection (url, "Scottection", "Scott", "Scott"; stmt = conn.createStatement (resultset.type_scroll_insensity, resultset.concur_updatable); resultset rs = stmt.executequery ("select * from Emp2"); Rs.next (); // Обновление строки данных Rs.Updatestring ("ename", "aaaa"); Rs.movetoinsertrow (); Rs.updateint (1, 9999); Rs.updatestring («Ename», «aaaa»); Rs.updateint («Mgr», 7839); Rs.Updatedouble («Sal», 99.9); Rs.insertrow (); rs.movetocurrentrow (); // удалить строку Rs.absolute (5); rs.deleterow (); // Отмена обновления // rs.cancelrowupdates ();} catch (sqlexception e) {e.printstacktrace ();}}};Выше приведено операции, которые я часто использую для подключения к базам данных SQL в Java, которые редактор делится с вами. Я надеюсь, что это будет полезно для вас.