Причина, по которой Javaweb dbutils не может найти контент при выполнении команды SQL и прохождения набора результатов, заключается в следующем:
При прохождении набора результатов, только пересечение объекта бобов выведет только первую строку содержимого (первая строка - это объект, созданный классом пользователя), поэтому вам нужно re.getRepotableName (), чтобы вызвать соответствующий контент через объект.
Таким образом, значение можно получить
PS: Dbutils Javaweb подробно описан следующим образом:
1. Что такое дбутилы и их функции
Dbutils написан Apache. DBUTILS - это практическое инструмент для работы с базой данных в программировании Java, небольшой, простой и практичной.
Dbutils инкапсулирует операции на JDBC, упрощая операции на JDBC. Вы можете написать меньше кода.
1. Для операции считывания таблицы данных она может преобразовать результаты в коллекции Java, такие как список, массив, набор и т. Д., что удобно для работы программистами;
2. Работа по написанию таблиц данных также очень проста (просто напишите операторы SQL)
3. Вы можете использовать источники данных, использовать JNDI, Объединение соединений базы данных и другие технологии для оптимизации производительности, уже созданных объекты подключения базы данных
2. Три основных объекта dbutils
2.1. Класс Queryrunner
QueryRunner предоставляет API для операционных операторов SQL. Он имеет три основных метода: Query () используется для выполнения Select, Update () используется для выполнения удаления обновления вставки, для выполнения обработки пакетной обработки используется пакетная обработка. Следующее введет в подробности использование этих методов.
2.2. Результаты интерфейса
Он используется для определения того, как инкапсулировать набор результатов после операции выбора. В общей сложности 9 обычно используемых классов реализации. Я подробно расскажу, как его использовать.
2.3. Dbutils Class
Это класс инструментов, который определяет метод закрытия ресурсов и обработки транзакций
3. Как использовать структуру dbutils
3.1. Используйте шаги
Импортировать соответствующий пакет JAR
Создать объект QueryRunner
Используйте метод запроса для выполнения оператора SELECT
Инкапсулировать наборы результатов, используя результаты
Используйте класс Dbutils для выпуска ресурсов
3.2. Пример
Примечание: я использую пул соединений C3P0
Импорт java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; импорт org.apache.commons.dbutils.queryrunner; импорт org.apache.commons.dbutils.resultsethandler; org.apache.commons.dbutils.handlers.beanlisthandler; import org.junit.test; import com.jxlg.domain.user; public class testselect {@test public void -testselect () {// create queryrunner object queryrunner Qr = new QueryRunner (c3p0UtLice); try {// новые результаты ethipandler <list <user >> Расскажите нам, как инкапсулировать список наборов результатов <user> list = qr.query ("select * from user", новые результаты Ethandler <list <user >> () {@Override // После оператора запроса exatury upport atervice, результат передается в списке eRtence public anture> list (ancerest rs). ArrayList <serse> (); } return List; для (пользователь пользователя: list) {system.out.println (user); }} catch (sqlexception e) {e.printstacktrace (); }} @Test public void testSelect2 () {// Создать объект QueryRunner QueryRunner QR = new QueryRunner (c3p0util.getDatasource ()); Попробуйте {// Выполнить оператор SQL и вернуть список результатов <user> list = qr.query («Выберите * из пользователя, где id =? и username =?», New Beanlisthandler <user> (user.class), 1, «Том»); для (пользователь пользователя: list) {system.out.println (user); }} catch (sqlexception e) {e.printstacktrace (); }}} 4. Подробное объяснение трех основных объектов dbutils
4.1. QueryRunner объект
4.1.1. Конструктор
новый QueryRunner (); Его транзакции можно контролировать вручную.
Другими словами, в методах должен быть объект соединения (например, запрос, обновление, партия), называемые этим объектом.
новый QueryRunner (DataSource DS); Его транзакции автоматически контролируются. Один SQL и одна транзакция.
В методах нет объекта подключения (например, запрос, обновление, партия), называемые этим объектом.
4.1.2. Общие методы
4.2. Результаты интерфейса
4.2.1. Он имеет 9 процессоров результатов
Arrayhandler: Подходит для 1 записи. Инкапсулировать каждый столбец записи в объект массива []
Arraylisthandler: Подходит для нескольких записей. Инкапсулируйте значение каждого столбца каждой записи в объект массива [] и инкапсулируйте массив в список Columnlisthandler: возьмите данные определенного столбца. Инкапсулируется в список.
KeyedHandler: возьмите несколько записей, каждая запись инкапсулируется в одну карту, а затем инкапсулирует эту карту в другую карту, а ключ - указанное значение поля.
Мафандлер: Подходит для 1 записи. Поместите имя столбца и значение столбца текущей записи в одной карте Maplisthandler: подходит для нескольких записей. Инкапсулируйте каждую запись в карту, а затем инкапсулируйте карту в список ScalarHandler: Подходит для одноодевых и единых данных Beanhandler Beanhandler
Beanlisthandler
4.2.2. Пример
Импорт static org.junit.assert.*; import java.sql.sqlexception; импорт java.util.list; import java.util.map; import java.util.map.entry; импорт org.apache.commons.dbutils.queryrunner; import org.apache.dbutils.handlers; org.apache.commons.dbutils.handlers.beanhandler; import org.apache.commons.dbutils.handlers.columnlisthandler; импорт org.apache.commons.dbutils.handlers.keyedhandler; импорт org.apache.commons.dbutils.maphandler; org.apache.commons.dbutils.handlers.maplisthandler; import org.apache.commons.dbutils.handlers.scalarhandler; импорт org.junit.test; импорт com.jxlg.domain.user; public class testresethandler {@test public test1 () { / /rayable witable witable. Инкапсулировать каждый столбец значения записи в объект массива [] QueryRunner QR = new QueryRunner (c3p0util.getDataSource ()); try {object [] o = qr.query ("select * из пользователя, где id =?", new Arrayhandler (), 5); for (объект объекта: o) {System.out.println (Object); }} catch (sqlexception e) {e.printstacktrace (); }} @Test public void test2 () Throws SQLexception {// arraylisthandler: подходит для нескольких записей. Инкапсулировать каждый столбец каждой записи в объект массива [] и инкапсулировать массив в список QueryRunner QR = new QueryRunner (c3p0util.getDatasource ()); List <Object []> list = qr.Query ("select * of user", new arraylisthandler ()); for (Object [] Objects: List) {for (Object Object: Objects) {System.out.println (Object); } System.out.println("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- } } @Test public void Test3 () Throws SQLECTECTERS {// ColublisThandler: Получить данные определенного столбца. System.out.println (Object); Данные в таблице, и ключом небольшой карты является имя столбца таблицы, поэтому ключ большой карты использует тип объекта, а строка - это маленькая. ID, потому что «1» установлен. Подходит для 1 Запись. System.out.println (m.getkey ()+"/t"+m.getvalue ()); QueryRunner (c3p0util.getDataSource ()); System.out.println ("-------------"); System.out.println (O); System.out.println (пользователь);5. Используйте dbutils, чтобы сделать пример добавления, удаления, изменения и поиска
Импорт статический org.junit.assert.*; import java.sql.sqlexception; импорт java.util.date; импорт javax.crypto.spec.oaepparameterspec; импорт org.apache.commons.dbutils.queryrunner; импорт org.junit.test. // Создать объект QueryRunner QueryRunner QR = new QueryRunner (c3p0util.getDatasource ()); попробуйте {qr.update («Вставьте в пользователь (имя пользователя, пароль, электронная почта, день рождения) значения (?,?,?,?)», «Guapi», «4646», «[email protected]», New Date ()); } catch (sqlexception e) {e.printstacktrace (); }} @Test public void testupDate () {// Создать объект QueryRunner QueryRunner QR = new QueryRunner (c3p0util.getDatasource ()); try {qr.update («Обновление пользователя user username =?, пароль =? где id = 4», «meizimeizi», «520520»); } catch (sqlexception e) {e.printstacktrace (); }} @Test public void testDelete () {// Создать объект QueryRunner QueryRunner QR = new QueryRunner (c3p0util.getDatasource ()); попробуйте {qr.update ("Удалить из пользователя, где id =?", 4); } catch (sqlexception e) {e.printstacktrace (); }} @Test public void testbatch () {// Создать объект QueryRunner QueryRunner QR = new QueryRunner (c3p0util.getDatasource ()); try {object [] [] params = new Object [10] []; // Высокомерные представляют, сколько раз выполняется оператор SQL для (int i = 0; i <params.length; i ++) {params [i] = new Object [] {"guapi"+i, "4646", "[email protected]", new Date ()}; } qr.batch ("Вставка в пользователь (имя пользователя, пароль, электронная почта, день рождения) значения (?,?,?,?)", Params); } catch (sqlexception e) {e.printstacktrace (); }}} Суммировать
Вышеуказанное является причиной, по которой дбутилы Javaweb не могут быть найдены при выполнении команд SQL и прохождении набора результатов. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку Wulin.com!