Escriba una instancia simple de MyBatis insertando datos
1. El significado de la construcción de la tabla de bases de datos DOB = Fecha de nacimiento
Crear estudiantes de tabla (Key primaria de número stud_id, nombre VARCHAR2 (20), correo electrónico VARCHAR2 (20), fecha DOB);
La tabla creada en la base de datos Oracle significa que la creación es exitosa. Si se ha utilizado el nombre, puede eliminarlo antes de crear la tabla: soltar a los estudiantes; o Cascade Eliminar las restricciones en cascada de los estudiantes de la mesa de caída; Y luego recrearlo de nuevo.
2 Crear un nuevo proyecto
2.1 Cree el paquete y la clase correspondientes, donde el estudiante es el objeto que queremos insertar. Dado que el tipo de datos corresponde a los valores en la base de datos, podemos insertar todo el objeto. Por lo tanto, usamos la clase POJO para encapsular el objeto.
paquete com.mybatis.pojo; import java.util.date; Estudiante de clase pública {privado entero estudio; nombre de cadena privada; correo electrónico de cadena privada; Fecha privada DOB; Public Student () {} // Tenga en cuenta el Constructor sin parámetros Public Student (Integer Studid, Nombre de cadena, Correo electrónico de cadena, fecha doB) {this.studid = studid; this.name = name; this.email = correo electrónico; this.dob = dob; } public Integer getStudid () {return Studid; } public void setStudid (Integer Studid) {this.studid = studid; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public String getEmail () {return email; } public void setEmail (correo electrónico de cadena) {this.email = correo electrónico; } fecha pública getDob () {return doB; } public void setDob (date doB) {this.dob = dob; } @Override public String toString () {return "Student [studid =" + studid + ", name =" + name + ", correo electrónico =" + correo electrónico + ", doB =" + dob + "]"; }}3. Introducir el paquete central de MyBatis y los paquetes de dependencia opcionales en el proyecto
Descarga del archivo: descarga del paquete mybatis
Descarga de la última versión: https://github.com/mybatis/mybatis-3/releases
Paquete requerido mybatis-3.3.0.jar ojdbc14.jar
Paquete opcional Junit-4.7.Jar Log4J-1.2.17.Jar
Entre ellos, MyBatis-3.3.0.Jar se utiliza para implementar las funciones proporcionadas por MyBatis, OJDBC14.Jar se usa para conectarse a la base de datos, Junit-4.7.Jar se usa para implementar pruebas funcionales y log4j-1.2.17.JAR se usa
Como se muestra en la figura a continuación: cree un nuevo frasco de carpeta en el directorio del proyecto, copie y pegue los paquetes que necesita importar al directorio JAR
Nota: No use el chino al almacenar estos paquetes JAR localmente.
Luego haga clic derecho para seleccionar los cuatro archivos en el directorio JAR, haga clic para agregar "BuildPath-> Agregar ruta", y verá la siguiente interfaz: significa que la ruta se agrega con éxito
4. Introducir el archivo de restricción DTD del archivo de configuración de MyBatis en el proyecto
Del mismo modo, cree un nuevo directorio DTD en el proyecto y copie el archivo de restricción al directorio, como se muestra en la figura a continuación: Estructura del archivo DTD, descarga del archivo DTD:
http://download.csdn.net/download/suwu150/9660699
La función del archivo DTD es restringir el archivo de configuración XML, para que los programadores puedan escribir el archivo XML de acuerdo con las especificaciones, y MyBatis puede leerlo y analizarlo correctamente. El DTD anterior está configurado localmente y, por supuesto, también podemos usar la conexión del sitio web oficial para restringir.
5 Los archivos de configuración y los archivos de mapeo en MyBatis se introducen en el proyecto respectivamente
1) mybatis-config.xml debajo de SRC:
Primero, asociamos las restricciones DTD locales, ingresamos las siguientes preferencias de la figura a continuación, ingrese XML en el cuadro de búsqueda, seleccione el nombre de configuración del catálogo XML y luego haga clic en el botón Agregar a la derecha a la derecha
Aparece la interfaz que se muestra en la siguiente figura, donde la ubicación de la ubicación y la ubicación clave están vacías. La figura a continuación está configurada. El contenido clave es -// mybatis.org//dtd config 3.0 // en. El contenido de ubicación es tuyo. Puede seleccionarlo a través del espacio de trabajo, es decir, el archivo DTD que copiamos al proyecto anteriormente (en el paso 4):
Haga clic en Aceptar, ahora podemos escribir el archivo de configuración XML. El propósito de agregar restricciones es estandarizar la escritura del programador para garantizar que MyBatis se pueda analizar normalmente.
Como se muestra en la figura a continuación: seleccione SRC y haga clic con el botón derecho para crear un nuevo archivo myBatis-Config.xml
Nota: El comienzo del archivo XML debe ser rematado, y no debe haber espacios frente a él.
<? xml versión = "1.0" encoding = "utf-8"?> <!-realizar restricciones dtd, donde-// mybatis.org//dtd config 3.0 // en una restricción pública, http://mybatis.org/dtd/mybatis-3-config.dtd es para obtener el dtd la restricción en la red de la red. <! Doctype Configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <figuration> <Pyypealiases> <!-Aliases para la clase de pojo-> <<con " alias = "Student" /> < /typealiases> <!- Configure el entorno de la base de datos donde el desarrollo es el nombre predeterminado de la base de datos. TransactionManager Type es el tipo JDBC. La fuente de datos de la fuente de datos utiliza grupos de conexión-> <entornos default = "desarrollo"> <entorno id = "desarrollo"> <transaccionManager type = "jdbc"> </ transaccionManager> <dataSource type = "agrupado"> <!-Configure la información de la base de datos. Use Oracle Database aquí-> <Property Name = "Driver" Value = "oracle.jdbc.driver.oracledriver" /> <propiedad name = "url" value = "jdbc: oracle: fin:@127.0.0.1: 1521: orcl" /> <propiedad de propiedad = "userName" value = "briUp" /> <name de propiedad = "Value" valor = "value" value " /" "briUp" </entorno> </bossments> <!-Configure la ruta de asignación de archivos XML, donde puede realizar operaciones SQL-> <Mappers> <Mapper Resource = "com/mybatis/mappers/studentmapper.xml"/> </mappers> </figuration>
2) StudentMapper.xml debajo del paquete com.mybatis.mappers:
Primero, implementamos la interfaz com.mybatis.mappers; paquete para crear una nueva interfaz studentMapper.java en el paquete para corresponder a la instrucción SQL (asignación) en el archivo XML, para que podamos llamarlo
paquete com.mybatis.mappers; import java.util.list; import com.mybatis.pojo.student; interfaz pública StudentMapper {list <diesta> findallStudents (); Estudiante FindStudentById (ID de entero); void insertStudent (estudiante estudiante); }Use el mismo método para restringir los archivos mapeadores
Luego escriba el código 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"> <!-- com.mybatis.mappers.StudentMapper is the fully Nombre calificado de la interfaz que definimos. De esta manera, puede usar la interfaz para llamar a la instrucción SQL de mapeo. Este nombre debe corresponder a la interfaz-> <mapper namespace = "com.mybatis.mappers.studentmapper"> <resultmap type = "estudiante" id = "studentResult"> <id propiedad = "studid" column = "stud_id" /> <resulte Property = "nombre" columna = "nombre" /> <Result Property = "Correo electrónico" columna = "Correo electrónico" /> <Result Propiedad = "columna" columna "columna" columna "doB" </resultMap> <select id="findAllStudents" resultMap="StudentResult"> SELECT * FROM STUDENTS </select> <!-- If the column name and the property name are inconsistent, you can give an alias to the query column--> <select id="findStudentById" parameterType="int" resultType="Student"> SELECT STUD_ID AS STUDID,NAME,EMAIL,DOB FROM STUDENTS WHERE Stud_id =#{id} </select> <insert id = "insertStudent" parametertype = "estudiante"> Insertar en estudiantes (stud_id, name, email, doB) valores (#{studid},#{name},#{correos electrónicos},#{doB}) </sert> </pper> **************************************************************
Nota: No escriba un punto y coma al final de la instrucción SQL escrita en el archivo XML, de lo contrario se informará un error. ORA-00911: caracteres inválidos
**************************************************************
6 Configurar la salida del registro en el archivo log4j.properties:
En la ubicación SRC, el nombre del archivo log4j.properties
contenido:
log4j.rootlogger = debug, stdout log4j.appender.stdout = org.apache.log4j.consoleppender log4j.appender.stdout.layout = org.apache.log4j.patternlayout log4j.appender.stdout.layout.conversionpattern =%d [%-5p]%COM 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.preparedstatement
7 Crear una clase de prueba StudentMappertest.java
paquete com.mybatis.test; import java.io.ioException; import java.io.inputstream; import java.util.date; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.sqlsessionFactory; importar org.apache.ibatis.session.sqlsessionFactory; importar org.apache.ibatis.session.sqlsessionFactoryBuilder; importar org.junit.test; import com.mybatis.mappers.studentmapper; import com.mybatis.pojo.student; Public Class StudentMappertest {@Test public void test_insertstudent () {sqlsession session = null; Pruebe {// Obtenga el archivo de configuración InputStream InputStream = Resources.getResourceasStream ("mybatis-config.xml"); // Generar objeto de fábrica sqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (InputStream); // use objeto de fábrica para generar session sqlsession = sqlsessionFactory.opensession (); // Use SQLSession para obtener el objeto de clase de implementación de la interfaz de mapeo. La referencia de la interfaz apunta al objeto de la clase de implementación StudentMapper StudentMapper = session.getMapper (StudentMapper.Class); Estudiante estudiante = nuevo estudiante (1, "Suwu150", "[email protected]", nueva fecha ()); StudentMapper.insertStudent (estudiante); } catch (ioException e) {session.rollback (); E.PrintStackTrace (); }}}8 Después de una operación exitosa, verá la información relevante sobre la ejecución de la salida de este programa por el registro de log4j en la consola, de la siguiente manera:
Puede ver la siguiente información al consultar la base de datos
9 Algunos paquetes básicos para mybatis
Cada vez que se lee el archivo de configuración, se genera un objeto de fábrica SQLSessionFactory y luego se genera el objeto SQLSession. Aunque este proceso no es complicado, también es un proceso de código repetitivo, por lo que simplemente podemos encapsularlo:
paquete com.mybatis.utils; import java.io.ioException; import java.io.inputstream; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.sqlsession; importar org.apache.ibatis.session.sqlsessionFactory; importar org.apache.ibatis.session.sqlsessionFactoryBuilder; clase pública myBAtissqlSessionFactory {private static sqlsessionFactory sqlsessionFactory; public static sqlSessionFactory getSqlSessionFactory () {if (sqlSessionFactory == null) {inputStream inputStream = null; Pruebe {inputStream = Resources.getResourCeasstream ("myBatis-Config.xml"); sqlSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); } catch (ioException e) {E.PrintStackTrace (); tirar nueva runtimeException (e.getCause ()); }} return sqlSessionFactory; } public static sqlsession opensession () {return opensession (falso); // envío manual de forma predeterminada, por lo que debemos enviar cuando llame a} public static sqlsession opensession (boolean autocommit) {return getsqlSessionFactory (). OpenSession (autocommitio); }}Después de eso, cada vez que lo usa, solo necesita llamar a la abertura de método estático en esta clase.
El código anterior se puede abreviar como: // Tenga en cuenta si la transacción se compromete o se compromete automáticamente
MyBAtissqlSessionFactory.opensession ().
10 En la prueba anterior, solo completamos las funciones adicionales. Implementemos las funciones de eliminación, modificación y consulta:
En el archivo de asignación, haga la siguiente configuración:
<?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"> <!-- com.mybatis.mappers.StudentMapper is the fully Nombre calificado de la interfaz que definimos. De esta manera, puede usar la interfaz para llamar a la instrucción SQL de mapeo. Este nombre debe corresponder a la interfaz-> <mapper namespace = "com.mybatis.mappers.studentmapper"> <resultmap type = "estudiante" id = "studentResult"> <id propiedad = "studid" column = "stud_id" /> <resulte Property = "nombre" columna = "nombre" /> <Result Property = "Correo electrónico" columna = "Correo electrónico" /> <Result Propiedad = "columna" columna "columna" columna "doB" </resultMap> <select id="findAllStudents" resultMap="StudentResult"> SELECT * FROM STUDENTS </select> <!-- If the column name and the property name are inconsistent, you can give an alias to the query column--> <select id="findStudentById" parameterType="int" resultType="Student"> SELECT STUD_ID AS STUDID,NAME,EMAIL,DOB FROM STUDENTS WHERE Stud_id =#{id} </select> <insert id = "insertStudent" parametertype = "student"> insertar en estudiantes (stud_id, name, correo electrónico, doB) valores (#{studid},#{name},#{correo electrónico},#{doB}) Stud_id =#{id} </elelete> <update id = "updateStudentByid" parametertype = "estudiante"> actualizar los estudiantes establecidos name =#{name}, correo electrónico =#{correo electrónico} Where stlud_id =#{studid} </palate> </mapper> </mapper>En la clase de interfaz, haga la siguiente configuración:
paquete com.mybatis.mappers; import java.util.list; import com.mybatis.pojo.student; interfaz pública StudentMapper {list <diesta> findallStudents (); Estudiante FindStudentById (ID de entero); void insertStudent (estudiante estudiante); void deletestudentbyid (ID de entero); nulo UpdateTestudentByid (estudiante de estudiante); }Escriba el siguiente código en el archivo de prueba:
paquete com.mybatis.test; import java.io.ioException; import java.io.inputstream; import java.util.date; import java.util.list; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.sqlsessionFactory; importar org.apache.ibatis.session.sqlsessionFactoryBuilder; importar org.junit.test; import com.mybatis.mappers.studentmapper; import com.mybatis.pojo.student; import com.mybatis.utils.mybatissqlsessionFactory; Public Class StudentMappertest {@Test public void test_insertstudent () {sqlsession session = null; Pruebe {// Obtenga el archivo de configuración InputStream InputStream = Resources.getResourceasStream ("mybatis-config.xml"); // Generar objeto de fábrica sqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder (). Build (InputStream); // use objeto de fábrica para generar session sqlsession = sqlsessionFactory.opensession (); // Use SQLSession para obtener el objeto de clase de implementación de la interfaz de mapeo. La referencia de la interfaz apunta al objeto de la clase de implementación StudentMapper StudentMapper = session.getMapper (StudentMapper.Class); Estudiante estudiante = nuevo estudiante (2, "Suwu150", "[email protected]", nueva fecha ()); StudentMapper.insertStudent (estudiante); session.commit (); System.out.println ("Ejecución completada"); } catch (ioException e) {session.rollback (); E.PrintStackTrace (); }} @Test public void test_deletestudentbyid () {sqlsession session = null; sesión = myBAtISSQLSessionFactory.opensession (); // Use la clase encapsulada // use SQLSession para obtener el objeto de clase de implementación de la interfaz de mapeo. La referencia de la interfaz apunta a la clase de implementación Object StudentMapper StudentMapper = Session.getMapper (StudentMapper.Class); StudentMapper.DeletestudentByid (2); session.commit (); System.out.println ("Ejecución completada"); } @Test public void test_UpDateStudentById () {sqlsession session = null; sesión = myBAtISSQLSessionFactory.opensession (); // Use la clase encapsulada // use SQLSession para obtener el objeto de clase de implementación de la interfaz de mapeo. La referencia de la interfaz apunta a la clase de implementación Object StudentMapper StudentMapper = Session.getMapper (StudentMapper.Class); Estudiante estudiante = nuevo estudiante (); Student.SetStudid (1); Student.SetName ("Sususu"); Student.SetEmail ("[email protected]"); StudentMapper.UpdateStudentByid (estudiante); session.commit (); System.out.println ("Ejecución completada"); } @Test public void test_findstudentByid () {sqlsession session = null; sesión = myBAtISSQLSessionFactory.opensession (); // Use la clase encapsulada // use SQLSession para obtener el objeto de clase de implementación de la interfaz de mapeo. La referencia de la interfaz apunta al objeto de la clase de implementación StudentMapper StudentMapper = session.getMapper (StudentMapper.Class); Estudiante estudiante = StudentMapper.FindStudentByid (1); System.out.println (estudiante); System.out.println (estudiante); System.out.println ("Ejecución completada"); } @Test public void test_findallStudents () {sqlsession session = null; sesión = myBAtISSQLSessionFactory.opensession (); // Use la clase encapsulada // use SQLSession para obtener el objeto de clase de implementación de la interfaz de mapeo. La referencia de la interfaz apunta al objeto de la clase de implementación StudentMapper StudentMapper = session.getMapper (StudentMapper.Class); Lista <deuding> list = studentMapper.FindallStudents (); System.out.println (lista); System.out.println ("Ejecución completada"); }}De esta manera, completamos la adición, eliminación, modificación y búsqueda de objetos de los estudiantes.
El anterior es el código de ejemplo de MyBatis agregado, eliminado, modificado y buscado por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!