Напишите простой экземпляр Mybatis, вставляющую данные
1. Значение построения таблицы баз данных DOB = дата рождения
Создать студенты таблицы (номер nud_id Первичный ключ, имя varchar2 (20), электронная почта varchar2 (20), dob date);
Таблица, созданная в базе данных Oracle, означает, что создание успешно. Если имя было использовано, вы можете удалить его перед созданием таблицы: Drop Table студентов; или каскад удалить стол, студенты студенты каскадные ограничения; А потом воссоздать это снова.
2 Создайте новый проект
2.1 Создайте соответствующий пакет и класс, где студент - это объект, который мы хотим вставить. Поскольку тип данных соответствует значениям в базе данных, мы можем вставить весь объект. Поэтому мы используем класс POJO, чтобы инкапсулировать объект.
пакет com.mybatis.pojo; импортировать java.util.date; студент открытого класса {частный целочисленный studid; Приватное название строки; Приватная строковая электронная почта; частная дата DOB; public Student () {} // Обратите внимание на конструктор без параметров Public Student (Integer Studid, String name, String Email, Date dob) {this.studid = studid; this.name = name; this.email = электронная почта; this.dob = dob; } public integer getStudid () {return studid; } public void setStudid (integer studid) {this.studid = studid; } public String getName () {return name; } public void setName (string name) {this.name = name; } public String getEmail () {return Email; } public void setEmail (string email) {this.email = email; } публичная дата getDob () {return dob; } public void setDob (date dob) {this.dob = dob; } @Override public String toString () {return "Student [studId =" + studid + ", name =" + name + ", email =" + email + ", dob =" + dob + "]"; }}3. Представьте Mybatis Core Package и дополнительные пакеты зависимостей в проекте
Скачать файл: загрузка пакета mybatis
Последняя версия скачать: https://github.com/mybatis/mybatis-3/releases
Требуемый пакет mybatis-3.3.0.jar ojdbc14.jar
Дополнительный пакет junit-4.7.jar log4j-1.2.17.jar
Среди них Mybatis-3.3.0.jar используется для реализации функций, предоставленных Mybatis, OJDBC14.JAR используется для подключения к базе данных, JUNIT-4.7.JAR используется для реализации функционального тестирования, и log4J.2.17.jar используется для выполнения регистрации
Как показано на рисунке ниже: Создайте новую банку папки в каталоге проекта, скопируйте и вставьте пакеты, необходимые для импорта в каталог JAR
ПРИМЕЧАНИЕ. Не используйте китайский при хранении этих пакетов JAR на местном уровне.
Затем щелкните правой кнопкой мыши, чтобы выбрать четыре файла в каталоге JAR, нажмите, чтобы добавить «buildPath-> add Path», и вы увидите следующий интерфейс: это означает, что путь успешно добавлен
4. Представьте файл ограничения конфигурации MyBatis DTD в проекте
Аналогичным образом, создайте новый каталог DTD в рамках проекта и скопируйте файл ограничения в каталог, как показано на рисунке ниже: Структура файла DTD, DTD -файл скачать:
http://download.csdn.net/download/suwu150/9660699
Функция файла DTD состоит в том, чтобы ограничить файл конфигурации XML, чтобы программисты могли записать файл XML в соответствии со спецификациями, а Mybatis может правильно читать и анализировать его. Приведенный выше DTD настроен локально, и, конечно, мы также можем использовать подключение официального веб -сайта для ограничения.
5 Файлы конфигурации и файлы сопоставления в Mybatis введены в проект соответственно
1) mybatis-config.xml ниже src:
Сначала мы связываем локальные ограничения DTD, введите следующее рисунок ниже предпочтения, введите XML в поле поиска, выберите имя конфигурации каталога XML, а затем нажмите кнопку «Добавить справа».
Появляется интерфейс, показанный на рисунке ниже, где расположение местоположения и местоположение ключа пусты. Рисунок ниже настроен. Содержание ключа -// mybatis.org//dtd config 3.0 // en. Содержание местоположения ваше собственное. Вы можете выбрать его через рабочую область, то есть файл DTD, который мы скопировали в проект ранее (на шаге 4):
Нажмите OK, теперь мы можем написать файл конфигурации XML. Целью добавления ограничений является стандартизация письма программиста, чтобы гарантировать, что mybatis можно проанализировать нормально.
Как показано на рисунке ниже: выберите SRC и щелкните правой кнопкой мыши, чтобы создать новый файл mybatis-config.xml
Примечание. Начало XML -файла должно быть покрыто, и перед ним не должно быть места.
<? xml version = "1.0" Encoding = "UTF-8"?> <!-выполнить DTD-ограничения, где-// mybatis.org//dtd config 3.0 // en является публичным ограничением, http://mybatis.org/dtd/mybatis-3-config.dtd. Configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typealiases> <!-псевдоним для класса Pojo-> <typealias type = "com.mybatis.pojo. </typealiases> <!- Настройте среду базы данных, где разработка является именем базы данных по умолчанию. Тип TransactionManager - это тип JDBC. DataSource источника данных использует пулы соединений-> <среды default = "Разработка"> <среда идентификатора = "разработка"> <transactionManager type = "jdbc"> </transactionManager> <dataSource type = "Booled"> <!-Настройка информации о базе данных. Use oracle database here--> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" /> <property name="username" value="briup" /> <property name="password" value="briup" /> </dataSource> </Environment> </Environments> <!-Настройка пути сопоставления файлов XML, где вы можете выполнить операции SQL-> <Mappers> <mapper resource = "com/mybatis/maperers/studentmapper.xml"/> </mappers> </configuration>
2) StudentMapper.xml ниже пакета com.mybatis.mappers:
Во -первых, мы реализуем интерфейс com.mybatis.mappers; Пакет для создания нового интерфейса StudentMapper.java в пакете, чтобы соответствовать оператору SQL (отображение) в файле XML, чтобы мы могли его вызвать
пакет com.mybatis.mappers; импортировать java.util.list; Импорт com.mybatis.pojo.student; Public Interface StudentMapper {list <toodtly> findallstudents (); Student FindStudentById (целое число идентификатор); void insertstudent (студент); }Используйте тот же метод для ограничения файлов Mapper
Затем напишите код XML:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd velive offeermappers.mappers.stmappers. Интерфейс, который мы определяем. Таким образом, вы можете использовать интерфейс, чтобы вызвать отображение оператора SQL. Это имя должно соответствовать интерфейсу-> <mapper namespace = "com.mybatis.mappers.studentmapper"> <resultmap type = "student" id = "studiveresult"> <id property = "studid" = "stud_id" /> <result property = "name" column " /> <reful =" email "column" /> <result = "do </resultMap> <select id = "findallStudents" resultMap = "StudentResult"> select * от студентов </select> <!-если имя столбца и имя свойства не согласованы, вы можете дать псевдоним для столбца запроса-> <select id = "findStudentById" parameterType = "int" uldtype = "select stud_id aStid Stud_id =#{id} </select> <insert id = "insertStudent" parameterType = "Student"> вставьте в студенты (stud_id, name, email, dob) values (#{studid},#{name},#{email},#{dob}) </inf *********************************************
ПРИМЕЧАНИЕ. Не пишите полуколон в конце оператора SQL, написанного в файле XML, в противном случае будет сообщена ошибка. ORA-00911: неверные персонажи
*********************************************
6 Настройка вывода журнала в файле log4j.properties:
Под местоположением SRC, имя файла log4j.properties
содержание:
log4j.rootlogger = debug, stdout log4j.appender.stdout = org.apache.log4j.consoleapdender log4j.appender.stdout.layout = org.apache.log4j.patternlayout log4j.appender.stdout.layout.conversionpattern =% -% -% -%n%n%n%n% -%n% -%n% -%n%n%n% -%n%n%n%n%n%n%n%n%n%d sql log4j.logger.java.sql.resultset = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = debug log4j.logger.java.sql.statement = debug log4j.logger.java.sql.pretement = debug log4j.logger.java.sql.
7 Создать тестовый класс StudentMappertest.java
пакет com.mybatis.test; импортировать java.io.ioexception; импортировать java.io.inputstream; импортировать java.util.date; Импорт org.apache.ibatis.io.resources; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт org.apache.ibatis.session.sqlsessionFactoryBuilder; Импорт org.junit.test; Импорт com.mybatis.mappers.studentmapper; Импорт com.mybatis.pojo.student; Public Class StudentMappertest {@test public void test_insertStudent () {sqlSession Session = null; try {// Получить файл конфигурации inputstream inputstream = resourds.getresourceasstream ("mybatis-config.xml"); // генерировать заводский объект sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (inputStream); // Использование заводского объекта для генерации SQLSession Session = SQLSessionFactory.Opensession (); // Использование SQLSession для получения объекта класса реализации интерфейса отображения. Ссылка на интерфейс указывает на объект класса реализации StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Студент = новый студент (1, "suwu150", "[email protected]", New Date ()); StudentMapper.insertStudent (студент); } catch (ioException e) {session.rollback (); e.printstacktrace (); }}}8 После успешной работы вы увидите соответствующую информацию о запуске этой программы выводом в журнале Log4J в консоли, следующим образом:
Вы можете увидеть следующую информацию при запросе базы данных
9 Некоторые базовые пакеты для mybatis
Каждый раз, когда считывается файл конфигурации, генерируется заводский объект SQLSessionFactory, а затем генерируется объект SQLSession. Хотя этот процесс не является сложным, это также повторяющийся процесс кода, поэтому мы можем просто инкапсулировать его:
пакет com.mybatis.utils; импортировать java.io.ioexception; импортировать java.io.inputstream; Импорт org.apache.ibatis.io.resources; импорт org.apache.ibatis.session.sqlsession; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт org.apache.ibatis.session.sqlsessionFactoryBuilder; открытый класс mybatissqlSessionFactory {private static sqlSessionFactory sqlSessionFactory; public static sqlSessionFactory getSqlSessionFactory () {if (sqlSessionFactory == null) {inputStream inputStream = null; try {inputStream = resources.getResourceasStream ("mybatis-config.xml"); sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (inputStream); } catch (ioException e) {e.printstackTrace (); бросить новое runtimeexception (e.getcause ()); }} return sqlSessionFactory; } public static sqlSession opensession () {return opensession (false); // Ручное представление по умолчанию, поэтому мы должны отправить при вызове} public static sqlsession opensession (boolean autocommit) {return getSqlSessionFactory (). Opensession (AutoCommit); }}После этого, каждый раз, когда вы используете его, вам нужно только вызвать статическую открытую метода в этом классе.
Приведенный выше код может быть сокращена как: // Обратите внимание, является ли транзакция автоматически совершенна или вручную совершена
MybatissqlsessionFactory.Opensession (). GetMapper (StudentMapper.class) .insertStudent (ы);
10 В приведенном выше тесте мы завершили только дополнительные функции. Давайте реализуем функции удаления, модификации и запроса:
В файле отображения сделайте следующую конфигурацию:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd velive offeermappers.mappers.stmappers. Интерфейс, который мы определяем. Таким образом, вы можете использовать интерфейс, чтобы вызвать отображение оператора SQL. Это имя должно соответствовать интерфейсу-> <mapper namespace = "com.mybatis.mappers.studentmapper"> <resultmap type = "student" id = "studiveresult"> <id property = "studid" = "stud_id" /> <result property = "name" column " /> <reful =" email "column" /> <result = "do </resultMap> <select id = "findallStudents" resultMap = "StudentResult"> select * от студентов </select> <!-если имя столбца и имя свойства не согласованы, вы можете дать псевдоним для столбца запроса-> <select id = "findStudentById" parameterType = "int" uldtype = "select stud_id aStid Stud_id =#{id} </select> <insert id = "insertStudent" parameterType = "Студент"> вставьте в студентов (stud_id, name, email, dob) значения (#{studid},#{name},#{email},#{dob}) </in in intemer = in in intreetty kearete Stud_id =#{id} </delete> <update id = "updateStudentById" parameterType = "Student"> Обновление студентов Set name =#{name}, email =#{email}, где stud_id =#{studid} </update> </mapper>В классе интерфейса сделайте следующую конфигурацию:
пакет com.mybatis.mappers; импортировать java.util.list; Импорт com.mybatis.pojo.student; Public Interface StudentMapper {list <toodtly> findallstudents (); Student FindStudentById (целое число идентификатор); void insertstudent (студент); void deletestudentbyId (целочисленный идентификатор); void updateStudentbyId (студент); }Запишите следующий код в тестовом файле:
пакет com.mybatis.test; импортировать java.io.ioexception; импортировать java.io.inputstream; импортировать java.util.date; импортировать java.util.list; Импорт org.apache.ibatis.io.resources; Импорт org.apache.ibatis.session.sqlsessionFactory; Импорт org.apache.ibatis.session.sqlsessionFactoryBuilder; Импорт org.junit.test; Импорт com.mybatis.mappers.studentmapper; Импорт com.mybatis.pojo.student; Импорт com.mybatis.utils.mybatissqlsessionFactory; Public Class StudentMappertest {@test public void test_insertStudent () {sqlSession Session = null; try {// Получить файл конфигурации inputstream inputstream = resourds.getresourceasstream ("mybatis-config.xml"); // генерировать заводский объект sqlSessionFactory sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (inputStream); // Использование заводского объекта для генерации SQLSession Session = SQLSessionFactory.Opensession (); // Использование SQLSession для получения объекта класса реализации интерфейса отображения. Ссылка на интерфейс указывает на объект класса реализации StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Студент = новый студент (2, "suwu150", "[email protected]", New Date ()); StudentMapper.insertStudent (студент); session.commit (); System.out.println («выполнение завершено»); } catch (ioException e) {session.rollback (); e.printstacktrace (); }} @Test public void test_deleteStudentByid () {sqlSession session = null; session = mybatissqlSessionFactory.opensession (); // Использование инкапсулированного класса // Использовать sqlSession для получения объекта класса реализации интерфейса отображения. Ссылка на интерфейс указывает на класс внедрения объекта StudentMapper StudentMapper = session.getMapper (StudentMapper.class); StudentMapper.deleteStudentbyId (2); session.commit (); System.out.println («выполнение завершено»); } @Test public void test_updateStudentbyId () {sqlSession session = null; session = mybatissqlSessionFactory.opensession (); // Использование инкапсулированного класса // Использовать sqlSession для получения объекта класса реализации интерфейса отображения. Ссылка на интерфейс указывает на класс внедрения объекта StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Студент = новый студент (); Student.setStudid (1); Student.SetName ("sususu"); Student.setemail ("[email protected]"); StudentMapper.updateStudentbyId (студент); session.commit (); System.out.println («выполнение завершено»); } @Test public void test_findstudentbyid () {sqlsession session = null; session = mybatissqlSessionFactory.opensession (); // Использование инкапсулированного класса // Использовать sqlSession для получения объекта класса реализации интерфейса отображения. Ссылка на интерфейс указывает на объект класса реализации StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Студент = Студент Mapper.findStudentbyId (1); System.out.println (студент); System.out.println (студент); System.out.println («выполнение завершено»); } @Test public void test_findallstudents () {sqlSession session = null; session = mybatissqlSessionFactory.opensession (); // Использование инкапсулированного класса // Использовать sqlSession для получения объекта класса реализации интерфейса отображения. Ссылка на интерфейс указывает на объект класса реализации StudentMapper StudentMapper = session.getMapper (StudentMapper.class); List <toold> list = studentmapper.findallstudents (); System.out.println (список); System.out.println («выполнение завершено»); }}Таким образом, мы завершаем добавление, удаление, модификацию и поиск объектов студентов
Выше приведен пример кода Mybatis, удаленного, измененного и поиска редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!