Основной контент:
1. JDBC База данных об подключении (редактировать) Шаги (в основном шесть шагов)
1. Зарегистрируйте драйвер: class.forname ("com.mysql.jdbc.driver"); отображается нагрузка в JVM
2. Получите соединение: (1) PARAM1: URL-адрес подключения к базе данных -----》 string url = "jdbc: mysql: // localhost: 3306/test?"+ "UseUnicode = true & carmentencoding = utf8"; // предотвратить код зашифрованного кода? "
PARAM2: Имя пользователя для подключения к базе данных-》 String user = "h4";
PARAM3: пароль для подключения к базе данных ----》 String Pass = "111";
Connection conn = drivermanager.getConnection (URL, пользователь, Pass); // Методы в рамках DriverManager: GetConnection (String URL, String username, String Password)
(2) Далее мы анализируем URL: «JDBC (этот протокол начинается с JDBC): MySQL (это подпротокол, имя системы управления базой данных): // localhost (адрес источника базы данных): 3306 (целевой порт)/тест (таблица таблицы, чтобы запросить)?»
"useUnicode = true & harectrencoding = utf8"; Это добавляется для предотвращения искаженного кода, и указано, что для использования наборов символов Unicode и редактирования их с помощью UTF-8.
3. Создайте объект оператора оператора (три основных метода): оператор STMT = conn.createStatement (); // Методы под интерфейсом соединения: оператор CroteStatement ()
Подготовленное Statatement pstmt = conn.preparedStatement ();
CallableStatement cstmt = conn.preparecall ("{call demosp (?,?)}");
Давайте проанализируем их ниже: (1) Разница между объектами оператора и подготовки, которые могут динамически устанавливать параметры запроса
(2) Метод для настройки параметров подготовленного statement.setxxxx (parameterindex, value). Если тип параметра базы данных является VARCHAR, используется SetString. Если тип параметра является целым числом, используется SetInt.
(3) callableStatement.setxxxx (parameterindex, value) // Установить значение в порядке параметров
CallableStatement.setxxxx (parametername, значение) // Установить значение в соответствии с именем параметра. Это имя является именем формального параметра при определении хранимой процедуры.
(4) Метод CallableStatement.RegisterOutParameter используется для объявления параметра выходного типа хранимой процедуры для получения выходного значения хранимой процедуры
4. Выполнить оператор SQL: ResultSet RS = STMT.ExecUteQuery (SQL); За исключением оператора запроса, executequery (); Все остальное выполнено uppadate ();
Методы в соответствии с оператором интерфейса:
Boolean execute (String SQL): выполнить оператор SQL, true, если возвращаемое значение - это набор результатов, в противном случае false
Результаты executeQuery (String SQL): Exepute SQL
int executueUpdate (String SQL): execute sql оператор
5. Набор результатов процесса: Метод GETXXXX объекта ResultSet зависит от типа поля в таблице в базе данных. Например: varchar2 соответствует getString, если это целое число, соответствующий метод getInt/getLong
While (rs.next ()) {rs.getint (columnindex); // Получить значение поля через номер столбца Rs.getString (ColumnName); // Получение значения поля через имя столбца Общие методы в интерфейсе результатов: перед FIRST (); Переместите курсор на первую запись (фронт) в загрейте ResultSet (); Переместите курсор в последнюю запись (после) в результате, Absolute (Intcolumn): Переместите курсор в указанную строку относительно первой строки, а отрицательное число относительно последней записи не может быть изменен.6. Закройте ресурс: после завершения операции вы должны закрыть JDBC, чтобы выпустить ресурсы JDBC. Но порядок должен быть противоположностью, когда вы определяете объект, как закрытие двери, сначала закрывая его изнутри и закрывая его наружу.
Следующий пример:
if (rs! = null) {// 1. Закрыть набор результатов try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 2. Закрыть объявленный объект Try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {// 3. Закройте соединение (не забудьте закрыть предыдущий 1.2 сначала. Затем закройте соединение) try {conn.close (); } catch (Exception e) {e.printstackTrace (); }}2. Ниже приведен простой (подробный) пример данных запроса
Пакет javacore1; // Это название пакета, которое вы создали. Импорт java.sql.callablestatement; import java.sql.connection; импорт java.sql.drivermanager; import java.sql.preparedStatement; импорт java.sql.Resultset; // пять слева - это имена пакетов, которые вы хотите импортировать при написании программы. Не забудьте быть пакетами под java.sql. Импорт java.sql.sqlexception; import java.sql.statement; открытый класс jdbc {// определить класс Public Static void main (String [] args) {// Основной метод try {String Driver = "com.mysql.jdbc.driver"; // 1. Определите драйвер имени драйвера как драйвер как com.mysql.jdbc.driver string url = "jdbc: mysql: // localhost: 3306/test?" // 2. Определить URL; JDBC - это протокол; MySQL-это субпротокол: представляет имя управления системой базы данных; Localhost: 3306 - это адрес и целевой порт вашего источника базы данных; Тест - это местоположение таблицы, которое я построил сам, и вы используете свой в качестве стандарта. + "useUnicode = true & harectrencoding = utf8"; // предотвратить искаженный код; useUnicode = true означает использование набора символов Unicode; Характерподирование = UTF8 означает использование UTF-8 для редактирования. String user = "h4"; // 3. Определите имя пользователя и напишите пользователя, к которому вы хотите подключиться. String Pass = "111"; // 4. Пароль пользователя. String querysql = "select * от сотрудников"; // 5. Название таблицы, которое вы хотите найти. Class.forname (драйвер); // 6. Зарегистрируйте драйвер и используйте class.froname () в классе класса под пакетом Java.lang; Драйвер здесь - это драйвер, определенный в 1, или class.forname ("com.mysql.jdbc.driver"); Connection conn = drivermanager.getConnection (URL, пользователь, Pass); // 7. Получите подключение к базе данных и используйте getConnectin (String URL, String username, String Password) DriverManager в java.sql для завершения // URL, пользователь, пройти в скобках - 2, 3 и 4 шага, определенные выше; Утверждение stmt = conn.createStatement (); // 8. Построить объект оператора для выполнения оператора SQL: в основном существует три экземпляра оператора, подготовки и CallableStatement для реализации // Три метода реализации: оператор STMT = con.createStatement (); // подготовленное значение pstmt = conn.prepareStatement (SQL); // callableStatement cstmt = conn.preparecall ("{call demosp (?,?)}"); ResultSet RS = stmt.ExecuTequery (QuerySQL); // 9. Выполнить SQL и вернуть его до конца; ResultSet executeQuery (String SQLString): используется для возврата объекта набора результатов (ResultSet). while (rs.next ()) {//10.transferse the Set System.out.out.println («Номер персонала:»+rs.getString ("employeee_id")+"Зарплата:"+rs.getString («Зарка ! = null) {// 11.close набор записей try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 12.close объявленный объект try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {// 12.close объявленный объект try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {// 13. Закройте соединение (не забудьте сначала закрыть предыдущие 11.12. Затем закройте соединение, точно так же, как закрытие двери, сначала закройте внутреннюю и, наконец, закройте самый внешний), попробуйте {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (Exception e) {e.printstackTrace (); }}}}3. Чтобы быть более интуитивно понятным, мы инкапсулируем получение подключений к базе данных и высвобождать подключения в методе, чтобы способствовать лучшей работе позже.
пакет javacore1; import java.sql.connection; import java.sql.drivermanager; public class jdbc {public static void main (string [] args) {connect conn = getConnection ("h4", "111"); // Получить базу данных связь/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 7,.,,,,,,,, 7,,,,,,,,,, 7,, 7,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 7,.,,,,,,,, 7,,,,,,,,,, 7,, 7,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 7,.,,,,,,,, 7,,,,,,,,,, 7,, 7,,,,,,,,,,, String pass) {connection conn = null; // объявить объект подключения Driver Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера string url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Отключить соединение базы данных public static void releaseConnection (connection conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}4. Реализовать одиннадцать функций информации о обработке базы данных, таких как запрос, вставка, удаление и обновление.
1. Данные запроса
Пакет javacore1; импорт java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.resultset; import java.sql.sqlexception; импорт java.sql.statement; public class Query {public Static void main (string [] args) {wepnection connectement {// h hetConnect Запрос подключения к базе данных (Conn); // Имя метода вызовы подключено к базе данных RELEASECONNECTE (CONN); // Выпуск подключения базы данных} // Запрос данных, определить метод запроса public static void Query (Connection conn) {String Sql = "SELECT * From Office"; try {ratement stmt = conn.createStatement (); // Вы также можете использовать подготовленный Statatement для выполнения Resultset rs = stmt.executequery (sql); // выполнить оператор SQL и вернуть конец while (rs.next ()) {// Перенос набора результатов и перейдите в следующую строку System.out.println («Количество персонала:»+rs.getString ("undiaeee_id")+"Занятый:"+rs.tarySting; } if (rs! = null) {try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {try {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (Exception e) {e.printstackTrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}} // Запрос данных, а результаты отображаются в обратном порядке, пакет обратного порядка javacore1; import java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.resultset; импорт java.sql.sqlexcept getConnection ("H4", "111"); // Получить запрос подключения к базе данных (conn); // Имя метода вызывает подключение к базе данных RELEASECONNECTE (CONN); // Выпустить подключение к базе данных} // Запрос данных, определите метод запроса public static void Query (Connect Conn) {String SQL = "select * от сотрудников"; try {ratement stmt = conn.createStatement (); // Вы также можете использовать PreseStatement для выполнения ResultSet rs = stmt.execuTequery (sql); // выполнить оператор SQL и вернуть End rs.afterlast (); // перейти на последнюю строку в первую очередь (rs.previous ()) {// Передача результата установленной и вверх по линии System.out.println ("номер персонала:"+rs.getString ("employee_id")+"Зарплата:"+rs.getString ("зарплата")); } if (rs! = null) {try {rs.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (stmt! = null) {try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} if (conn! = null) {try {conn.close (); } catch (sqlexception e) {e.printstacktrace (); }}}} catch (Exception e) {e.printstacktrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}2. Вставьте данные
пакет javacore1; импорт java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.sqlexception; импорт java.sql.statement; public class insert {public static void main (string [] args) {connect conn = getConnection ("h3", "111111"); // Получить вставку подключения к базе данных (conn); // Имя метода вызовов базы данных ConnectionEconnection (conn); // Выпуск подключения базы данных} // Вставить данные общедоступной статический void insert (connection conn) {try {string sql = "insert в сотрудников (employee_id, last_name, зарплата, департамент_ид, userid)" + "values ('100010', 'xiaogou', '7000', '004', '9')"; // оператор SQL для вставки оператора данных STMT1 = conn.createStatement (); // Создать объект оператора для выполнения статического оператора SQL int count = stmt1.executeupdate (sql); // оператор SQL для выполнения операции вставки и возврата количества вставленной системы данных.out.println («Вставка» + count + «данные»); // Вывод результат операции вставки conn.close (); // ЗАКРЫТЬ СООБЩЕНИЕ БАЗА ДЛЯ СОВЕТЫ} CATCH (SQLEXCECTION E) {e.printStackTrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Зарегистрировать (загрузить) Driver Conn = DriverMager.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Отключить соединение базы данных public static void releaseConnection (connection conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}3. Удалить данные
пакет javacore1; импорт java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.sqlexception; импорт java.sql.statement; открытый класс Delete {public Static void main (String [] args) {connect conn = getConnection ("h3", "111111"); // Получить подключение к базе данных удалить (conn); // имя метода вызовы подключено к базе данных; releaseConnection (conn); // Выпуск подключения базы данных} // Удалить данные public static void delete (connection conn) {string sql = "Удалить из сотрудников, где employee_id = 100009"; try {ratement stmt = conn.createStatement (); // или используйте метод подготовленного Statatement stmt.executeUpdate (sql); // выполнить оператор SQL if (stmt! = null) {try {stmt.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (sqlexception e) {e.printstacktrace (); }}} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection Connect = NULL; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера string url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Отключить соединение базы данных public static void releaseConnection (connection conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}4. Обновление данных
Пакет javacore1; импорт java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.sqlexception; импорт java.sql.statement; обновление открытого класса {public static void main (string [] args) {connect conn = getConnection ("h3", "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"); // Получить обновление подключения к базе данных (CONN); // Имя метода вызовы базы данных Connection RedieConnection (conn); // Выпуск базы данных Connection} // Обновление данных общедоступного статического обновления void (Connection Conn) {String SQL = "Обновление сотрудников Установки зарплаты = 8000, где employeee_id = 100005"; try {ratement stmt1 = conn.createStatement (); // или используйте метод подготовленного Statatement stmt1.executeUpdate (sql); // выполнить оператор SQL if (stmt1! = null) {try {stmt1.close (); } catch (sqlexception e) {e.printstacktrace (); }}} catch (sqlexception e) {e.printstacktrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Отключить соединение базы данных public static void releaseConnection (connection conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}5. Передача (транзакции)
JDBC обрабатывает транзакции с помощью автоматического совершения закрытия соединений:
Connection.setautocommit (false);
Отправить транзакцию:
Connection.commit ();
Откальная транзакция.
Connection.rollback (savePoint);
Откатитесь от всех:
Connection.rollback ();
пакет javacore1; import java.sql.connection; import java.sql.drivermanager; импорт java.sql.statement; открытый класс Transcash {public static void main (string [] args) {connection conn = getConnection ("h3", "111111"); // Получить подключение DataBase Connection Transcash (conn); // Имя метода вызывает подключение к базе данных RELEASECONNECTE (CONN); // Выпустить подключение к базе данных} // Передача (преобразование данных) (исходные данные составляли 100 и 500, но после реализации этой функции он становится 500 и 100. Фактически, чтобы выразить их, это то, что он должен обновить данные и изменить данные) public Static void Transcash (Connect Connect) {antaualt stmt = null; try {conn.setautocommit (false); // Закрыть автоматическую строку отправки sql = "Обновление сотрудников Установка зарплаты = 500, где employee_id = 100001"; stmt = conn.createStatement (); stmt.executeupdate (sql); SQL = "Обновление сотрудников Установите зарплату = 100, где employee_id = 100002"; STMT.ExecuteUpdate (SQL); // выполнить оператор SQL, приведенные выше две зарплаты будут обменены // int i = 1/0; Если это так, задача не будет выполнена, потому что это полная вещь, и если будет небольшой сбой, все это не удастся conn.commit (); // Commit Transaction} Catch (Exception e) {e.printStackTrace (); } наконец {try {if (stmt! = null) {stmt.close (); } catch (Exception e) {e.printstackTrace (); }}} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection Connect = NULL; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера string url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}6. Найти сохраненные процедуры без параметров
Пакет javacore1; импорт java.sql.callableStatement; импорт java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.sqlexception; public class execproc {public static void main (String [] args) {connect connection = getConnection ("h3", "111111111111111111111111111111111111111111111111111111111111111н"); // Получить подключение базы данных execproc (conn); // Имя метода вызовы базы данных RELEASECONNECTE (CONN); // Выпуск подключения базы данных} // Вызовы не соответствуют сохраненной процедуре; public static void execproc (connection conn) {string sql = "{call raisisalary}"; try {callableStatement cstmt = conn.preparecall (sql); cstmt.executeupdate (); } catch (sqlexception e) {e.printstacktrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}7. Найти сохраненные процедуры с параметрами
Пакет javacore1; импорт java.sql.callablestatement; импорт java.sql.connection; импорт java.sql.drivermanager; import java.sql.types; открытый класс getmulti {public static void main (string [] args) {connect connection = getConnection ("h3", "111111111111111111111111111111111111111111111111111111111111111111"); // Получить подключение к базе данных int cnt = getMulti (conn); // найти хранимых процедур; System.out.println ("Люди номер:" + cnt); releaseConnection (conn); // Выпуск подключения базы данных} // Процесс поиска имеет параметры public static int getMulti (connection conn) {int dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count (?,?)}"; try {callableStatement cstmt = conn.preparecall (sql); // инициализировать объект оператора cstmt.setint (1, dept_id); // callableStatement.setxxx (параметр, значение) или (число, значение) и подготовленное. // cstmt.registeroutparameter (2, types.integer); // объявить выходной параметр cstmt.executeupdate (); // выполнить оператор SQL Cnt = cstmt.getint (2); // Получить результат if (cstmt! e.printstacktrace (); } return cnt; } // Соединение базы данных Общественное статическое соединение getConnection (String user, String Pass) {connection conn = null; // Объявит строка объекта подключения driver = "com.mysql.jdbc.driver"; // Имя класса драйвера string url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}8. Обычная обработка
Пакет javacore1; импорт java.sql.connection; импорт java.sql.date; импорт java.sql.drivermanager; import java.sql.preparedStatement; импорт java.sql.sqlexception; public class planinsert {public void main (] args) "111111"); // Получить соединение базы данных Planinsert (conn); // Имя метода вызовов базы данных ConnectionEconnection (conn); // Выпуск подключения базы данных} // Обычная обработка общедоступной статической void planinsert (connection conn) {try {string sql = "Вставка в test_user1 (userid, usermance, время загрузки)" + "значения (?,?,?)"; // оператор SQL для вставки данных PrectiveStatement PSTMT = conn.PrePareStatement (SQL); long starttime = System.currentTimeMillis (); for (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); PSTMT.SetString (2, «пользователь»+i); pstmt.setDate (3, новая дата (System.currentTimeMillis ())); pstmt.executeupdate (); } System.out.println ("Общее время взято:"+(System.CurrentTimeMillis () - startTime)); pstmt.close (); // ЗАКРЫТЬ СООБЩЕНИЕ БАЗА ДЛЯ СОВЕТЫ} CATCH (SQLEXCECTION E) {e.printStackTrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}9. Переработка партии
Получите оригинальный шаблон транзакции JDBC:
Boolean CurrentTransactionModle = con.getAutoCommit ();
Установите в режиме транзакции (от автоматического коммита):
con.setautocommit (false);
Утверждение stm = con.createStatement ();
Три гетерогенных утверждения SQL:
String sql1 = "Удалить из пользователя, где id = 8";
String sql2 = "Обновить имя пользователя name = 'java', где id = 7";
String sql3 = "вставьте в пользовательские (имя, пароль) значения ('jdbc', 'jdbc')";
Добавьте в пакетный буфер обработки оператора:
STM.AddBatch (SQL1);
STM.AddBatch (SQL2);
STM.AddBatch (SQL3);
Выполните обновления пакетов:
stm.executebatch ();
Отправить транзакции для этого пакетного обновления:
con.commit ();
Ответьте на исходный режим транзакции:
con.setautocommit (currentTransactionModle);
Пакет javacore1; импорт java.sql.connection; import java.sql.date; импорт java.sql.drivermanager; import java.sql.preparedStatement; импорт java.sql.sqlexception; public class batchinsert {public void main (string) {connection usenection {connection = gat connectecneck {wry usenection = knateconnection {spence connectecnection {wrys usenection. "111111"); // Получить базу данных BatchInsert (conn); // Имя метода вызовов базы данных ConnectionEconnection (conn); // Отключение подключения базы данных} // Скорость вставки пакетной вставки быстрее, чем у обычной обработки публичной статической void batchinsert (connection conn) {try {string sql = "вставка в test_user1 (userid, имя пользователя, время загрузки)" + "values (?,?)"; // оператор SQL, который вставляет данные подготовленные данные pstmt = conn.prepareStatement (SQL); long starttime = System.currentTimeMillis (); for (int i = 0; i <1000; i ++) {pstmt.setlong (1, i); PSTMT.SetString (2, «пользователь»+i); pstmt.setDate (3, новая дата (System.currentTimeMillis ())); pstmt.addbatch (); // добавить в пакетную обработку} int [] result = pstmt.executebatch (); System.out.println («Общее время взято:»+(System.currentTimeMillis () - StartTime)); pstmt.close (); // ЗАКРЫТЬ СООБЩЕНИЕ БАЗА ДЛЯ СОВЕТЫ} CATCH (SQLEXCECTION E) {e.printStackTrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}10. Дисплей на странице
Пакет javacore1; импорт java.sql.connection; import java.sql.drivermanager; импорт java.sql.preparedStatement; импорт java.sql.resultset; импорт java.sql.sqlexception; public classe paging {public void main (string) {connection = gat connectecnecon {hat connectecnecnecnecon {connectecon kneconceneck {hat connectecon knecyconsecone {h ebnectecy eblectecpection; "111111"); // Получить подключение подключения к базе данных (CONN, 1,3); // Имя метода вызовы подключено к базе данных и определите, какую строку отобразить, на какую строку ReleaseConnection (conn); // Отпустите подключение к базе данных} // page Query public Static Void Paging (Connect Conn, int startIndex, int) {try {string sql = "select * из лимита сотрудников? Подготовленное Statement pstmt = conn.prepareStatement (SQL); pstmt.setint (1, startIndex); pstmt.setint (2, total); ResultSet RS = PSTMT.ExecUteQuery (); while (rs.next ()) {System.out.print ("Рабочий номер:"+rs.getint (1)); System.out.println ("номер отдела:"+rs.getint ("department_id")); } rs.close (); pstmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}11. Набор результатов можно прокрутить
Пакет javacore1; импорт java.sql.connection; import java.sql.drivermanager; импорт java.sql.preparedStatement; импорт java.sql.resultset; импорт java.sql.sqlexception; public class scrplresult {public static void main (string) {argsection {argsection {argsection {jargsection {argsection {jargsection {jargsection {argsection {argsection {argsection {jargs) "111111"); // Получить подключение к базе данных scrplResult (conn); // Имя метода вызовы подключаемого подключения базы данных (conn); // Выпустить подключение базы данных} // Прокрутите набор результатов, чтобы отобразить общедоступный статический void scrollResult (connect conn) {try {string sql = "select * rout ofments"; // Свиток может быть прокрут // параллелизм, набор результатов только для чтения, а подготовленное предприятие не может быть изменено. Подготовленное Statatement pstmt = conn.prepareStatement (sql, resultset.type_scroll_sensitive, resultset.concur_read_only); ResultSet RS = PSTMT.ExecUteQuery (); while (rs.next ()) {// Travel System.out.print ("Рабочий номер:"+rs.getlong (1)); System.out.println ("name"+rs.getString ("last_name")); } while (rs.previous ()) {// Travel System.out.print ("Рабочий номер:"+rs.getlong (1)); System.out.println ("Рабочий номер:"+rs.getlong (1)); } rs.absolute (6); // Путешествие непосредственно к строке if (rs.next ()) {System.out.print ("Рабочий номер:"+rs.getlong (1)); System.out.println ("......... Номер отделения:"+rs.getString ("Department_id")); } rs.close (); pstmt.close (); } catch (sqlexception e) {e.printstacktrace (); }} // Соединение базы данных Публичное статическое соединение getConnection (String User, String Pass) {Connection conn = null; // Объявит объект соединения String Driver = "com.mysql.jdbc.driver"; // Имя класса драйвера url = "jdbc: mysql: // localhost: 3306/test?" // URL базы данных + "useUnicode = true & incervicoDing = utf8"; // предотвратить искаженную try {class.forname (Driver); // Register (Load) DRIVEN CONN = DriverMage.getConnection (url, пользователь, Pass); // Получить подключение к базе данных} catch (Exception e) {e.printStackTrace (); } return conn; } // Выпустить подключение базы данных public static void releaseConnection (соединение conn) {try {if (conn! = Null) conn.close (); } catch (Exception e) {e.printstackTrace (); }}}五.把上面十一个放在一起当然最方便省事。(需要用谁,只需把前面的注释打开便行)
package javacore1;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Statement;import java.sql.Types;public class jdbcMySql {public static void main(String[] args) { Connection conn = getConnection("h3", "111111"); // Get database connection //query(conn); //1. Query data //insert(conn); //2. Insert data //delete(conn); //3. Delete data //update(conn); //4. Update data //transCash(conn); //5. Transfer//execProc(conn); //6. Find stored procedures without parameters //int cnt = getMulti(conn); //7. Find stored procedures with parameters //System.out.println("People number: " + cnt); //Find stored procedures with parameters //planInsert(conn); //8. Ordinary processing //batchInsert(conn); //9. Batch processing // paging(conn,1,3);//10. Pagination display//scrpllResult(conn);//11. The result set can be scrolled to releaseConnection(conn);// Release database connection}//1. Query data, define query method public static void query(Connection conn){ String Sql="select * from employees"; try{ Statement stmt=conn.createStatement(); // You can also use PreparedStatement to do ResultSet rs=stmt.executeQuery(Sql);//Execute the sql statement and return the end while(rs.next()){//Transfer the result set System.out.println("People number:"+rs.getString("employee_id")+"Salary:"+rs.getString("salary")); } if(rs !=null){ try{ rs.close(); } catch (SQLException e){ e.printStackTrace(); } } if(stmt !=null){ try{ stmt.close(); } catch(SQLException e){ e.printStackTrace(); } } if(conn !=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } catch(Exception e){ e.printStackTrace(); }}//2. Insert data public static void insert(Connection conn) { try { String sql = "insert into employees(employee_id,last_name,salary,department_id,userid)" + " values ('100010', 'xiaogou', '7000','004','9')"; // SQL statement Statement stmt1 =conn.createStatement(); // Create a Statement object for executing static SQL statements int count = stmt1.executeUpdate(sql); // Execute the SQL statement for insertion operation and return the number of inserted data System.out.println("Inserted" + count + "bar of data" into biao); //Output the processing result of the insertion operation conn.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//3. Delete data public static void delete(Connection conn){ String Sql = "delete from employees where employee_id=100009"; try { Statement stmt = conn.createStatement();// Or use the PreparedStatement method stmt.executeUpdate(Sql);// Execute the sql statement if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (SQLException e) { e.printStackTrace(); } } }//4. Update data public static void update(Connection conn){ String Sql = "update employees set salary=8000 where employee_id=100005"; try { Statement stmt1 = conn.createStatement();//Or use PreparedStatement method stmt1.executeUpdate(Sql);//Execute the sql statement if (stmt1 != null) { try { stmt1.close(); } catch (SQLException e) { e.printStackTrace(); } } catch (SQLException e) { e.printStackTrace(); } } //5. Transfer (data exchange) (The original data was 100 and 500, but after implementing this function, it becomes 500 and 100. In fact, to put it bluntly, it is to update the data and change the data) public static void transCash(Connection conn){ Statement stmt = null; try{ conn.setAutoCommit(false);//Close automatic submission String sql = "update employees set salary=500 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100001"; stmt = conn.createStatement(); stmt.executeUpdate(sql); sql = "update employees set salary=100 where employee_id=100002"; stmt.executeUpdate(sql);//Execute the sql statement, and the above two salaries will be replaced by conn.commit();//Commit transaction}catch(Exception e){ e.printStackTrace(); } finally{ try{ if(stmt != null)stmt.close(); } catch(Exception e){ e.printStackTrace(); } } } }//6. Call the stored procedure without a parameter; public static void execProc(Connection conn){ String sql = "{call raisesalary}"; try { CallableStatement cstmt = conn.prepareCall(sql); cstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } //7. Find stored procedures with parameters public static int getMulti(Connection conn) { int dept_id = 100001; int cnt = 0; String sql = "{call calc_emp_count(?,?)}"; try { CallableStatement cstmt = conn.prepareCall(sql);//Initialize the Statement object cstmt.setInt(1, dept_id);//CallableStatement.setxxx(parameter, value) or (number, value), and PreparedStatement.setxxx(number, value) can only be like this cstmt.setInt(2, cnt); // cstmt.registerOutParameter(2, Types.INTEGER);//Declare the output parameter cstmt.executeUpdate();//Execute the sql statement cnt = cstmt.getInt(2);//Get the result if (cstmt != null) { cstmt.close();//Release the Statement object} } catch (Exception e) { e.printStackTrace(); } return cnt; }//8. Normal processing public static void planInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement to insert data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.executeUpdate(); } System.out.println("Total time taken: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } } //9. The speed of batch insertion is faster than that of ordinary processing public static void batchInsert(Connection conn) { try { String sql = "insert into test_user1(userid,username,loadingtime)" + " values (?,?,?)"; // SQL statement that inserts data PreparedStatement pstmt=conn.prepareStatement(sql); long startTime=System.currentTimeMillis(); for(int i=0;i<1000;i++){ pstmt.setLong(1, i); pstmt.setString(2, "user"+i); pstmt.setDate(3, new Date(System.currentTimeMillis())); pstmt.addBatch();//Add to batch processing} int[] result=pstmt.executeBatch(); System.out.println("Total time consumed: "+(System.currentTimeMillis() - startTime)); pstmt.close(); //Close the database connection} catch (SQLException e) { e.printStackTrace(); } }//10. Pagination query public static void paging(Connection conn,int startIndex,int total){ try{ String sql="select * from employees limit ?,?"; PreparedStatement pstmt=conn.prepareStatement(sql); pstmt.setInt(1, startIndex); pstmt.setInt(2, total); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ System.out.print("work number: "+rs.getInt(1)); System.out.println("Department number: "+rs.getInt("department_id")); }rs.close(); pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } }//11. The result set scrolls to display public static void scrollResult(Connection conn){ try{ String sql="select * from employees"; //The result set can be scrolled//concurrency, the result set is read-only, and the PreparedStatement pstmt=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=pstmt.executeQuery(); while(rs.next()){ //Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("name"+rs.getString("last_name")); }while(rs.previous()){//Travel System.out.print("work number: "+rs.getLong(1)); System.out.println("salary"+rs.getInt("salary")); } rs.absolute(6);//Indicate which line to jump directly to if(rs.next()){ System.out.print("work number: "+rs.getLong(1)); System.out.println("........Department number: "+rs.getString("department_id")); } rs.close(); pstmt.close(); } catch(SQLException e){ e.printStackTrace(); } } //Database connection public static Connection getConnection(String user, String pass) { Connection conn = null;//Declare the connection object String driver = "com.mysql.jdbc.Driver";// Driver class name String url = "jdbc:mysql://localhost:3306/test?" // Database URL + "useUnicode=true&characterEncoding=UTF8";// Prevent garbled try { Class.forName(driver);// Register (load) driver conn = DriverManager.getConnection(url, user, pass);// Get database connection} catch (Exception e) { e.printStackTrace(); } return conn; }// Release database connection public static void releaseConnection(Connection conn) { try { if (conn != null) conn.close(); } catch (Exception e) {e.printstackTrace (); }}}六.安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(但是安装方法都是一样的)
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是
打开eclipse
1.右击要导入jar包的项目,点properties
2.左边选择java build path,右边选择libraries
3.选择add External jars
4.选择jar包的按照路径下的确定后就行了。
Java连接MySQL的最新驱动包下载地址
http://www.mysql.com/downloads/connector/j
1.鼠标放在你建的根目录上面。右击,然后选择最下面的properties。
2.然后左边选择java build path,右边选择libraries ,在选择右边的add External jars ,选择jar包的路径,点击确定就可以了
3.装好后,图如下出现你要添加的包。