Preparación
Para crear un nuevo proyecto Java o proyecto Java WWEB, debe importar los siguientes paquetes.
El trabajo básico se ha completado, y luego comenzaremos a llegar al tema.
Crear una nueva clase de entidad
Crear una nueva clase de entidad correspondiente a la tabla de la base de datos
paquete com.edu.hpu.domain; /***@Author Administrator*Clase de entidad correspondiente a la tabla de usuarios*/Usuario de clase pública {// Los atributos de la clase de entidad y los nombres de campo de la tabla corresponden a ID de INT privado; nombre de cadena privada; edad privada int; // Encapsula los atributos public int getId () {return id; } public void setid (int id) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; } // Agregar método de toString @Override public String toString () {return "user [id =" + id + ", name =" + name + ", edad =" + edad + "]"; }}Agregar clase de herramienta mybatis
La clase de herramienta agregada como se muestra a continuación,
paquete com.edu.hpu.util; import java.io.inputstream; importar org.apache.ibatis.session.sqlsession; importar org.apache.ibatis.session.sqlsessionFactory; importar org.apache.ibatis.session.sqlsessionFactory; importar org.apache.ibatis.session.sqlsessionFactoryBuilder; clase pública mybatisutil {/** * get sqlSessionFactory * @return sqlsessionFactory */public static sqlSessionFactory getsqlSessionFactory () {String Resource = "conf.xml"; // Haga clic en el archivo de configuración InputStream es = myBatisUtil.class.getClassLoader (). SqlSessionFactory fábrica = new SqlSessionFactoryBuilder (). Build (is); Return Factory; } / ** * Get sqlSession * @return sqlsession * / public static sqlSession getSqlSession () {return getSqlSessionFactory (). OpenSession (); } /** * Get SQLSession * @param IsautOcommit * True significa que el objeto SQLSession creado enviará automáticamente la transacción después de que se ejecute SQL * falso significa que el objeto SQLSession creado no enviará automáticamente la transacción después de que se ejecute SQL. En este momento, necesitamos llamar a sqlsession.commit () manualmente para enviar la transacción * @return sqlsession */ public static sqlsession getSqlSession (boolean isAutocommit) {return getSqlSessionFactory (). Opensession (IsauToCommit); }}Hay dos métodos para agregar, eliminar, buscar y modificar datos utilizando MyBatis, a saber, la operación del archivo de configuración y la operación de anotación.
Operación a través de archivos de configuración
El archivo de configuración de la base de datos es el siguiente, configure la información de la base de datos,
<? xml versión = "1.0" encoding = "utf-8"?> < <TransActionManager type = "JDBC" /> <!-Configurar información de conexión de base de datos-> <DataSource type = "Poured"> <Property Name = "Driver" Value = "com.mysql.jdbc.driver" /> <Property Name = "url" valor = "jdbc: mysql: // localhost: 3306/test? useCode = verdadero y característico = utf-8 & zeroDateTetimeBehavior = Converttonull"/> <Property name = "username" valor = "root"/> <name de propiedad = "valores =" administrador "/> </shasource> </balindmenthments> </ambiente </ambiente </ambiente" USERMAPPER.XML FILE, USERMAPPER.XML se encuentra en el paquete com.edu.hpu.mapping, por lo que el recurso se escribe como com/edu/hpu/mapping/usermapper.xml-> <<mapper recursce = "com/edu/hpu/mapping/usermapper.xml"/> <!-<mapper/> </</mapeation
Configurar el archivo de la instrucción de base de datos de operaciones como se muestra a continuación,
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper Namespace = "com.edu.hpu.mapping.usermapper"> <!- Escriba las declaraciones SQL de consulta en la etiqueta Seleccionar, establezca el atributo de identificación de la etiqueta Seleccionar a GetUser. El valor del atributo de identificación debe ser único. El atributo Parametertype no se puede reutilizar para indicar el tipo de parámetro utilizado en la consulta. The resultType attribute indicates the result set type returned by the query resultType="com.edu.hpu.domain.User" means that the query result is encapsulated into an object of the User class and returns to the User class, which is the entity class corresponding to the users table--> <!-- Get a user object based on the id query--> <select id="getUser" parameterType="int" resultType = "com.edu.hpu.domain.user"> select * de usuarios donde id =#{id} </select> <!-Create User (create)-> <Insert ID = "Adduser" ParameterType = "com.edu.hpu.domain.user"> Insertar en los usuarios (nombre, edad) Valores (#{name},#{Age} </inserT) (Insertar>). -> <eliminar id = "deleteuser" parametertype = "int"> eliminar de usuarios donde id =#{id} </elelete> <!-Modify user (update)-> <update id = "updateUser" parametertype = "com.edu.hpu.domain.user"> Update set Name =#{name}, edad =#{Age {Age} Consulta Todos los usuarios-> <select id = "getAllusers" resultType = "com.edu.hpu.domain.user"> select * de usuarios </elect> </ mapper> La adición de la base de datos, la eliminación y la revisión a través de archivos de configuración se han completado básicamente. A continuación, se da la clase de prueba.
Las pruebas se pueden realizar como se muestra a continuación,
paquete com.edu.hpu.test; import java.util.list; import com.edu.hpu.domain.user; import com.edu.hpu.util.mybatisutil; importar org.junit.test; importar org.apache.ibatis.session.sqlsession; public class test2 {@test public void testAdd () {// sqlsession sqlsession = myBatisUtil.getSqlSession (falso); SqlSession sqlsession = myBatisUtil.getSqlSession (verdadero); / ** * MAP SQL Identification String, * com.edu.hpu.mapping.usermapper es el valor del atributo de espacio de nombres de la etiqueta mapper en el archivo usermapper.xml, * adduser es el valor de atributo de identificación de la etiqueta insertar, y el sql que se ejecutará se puede encontrar a través del valor del atributo de identificación de la etiqueta inserta */ string en la declaración = = "com.edu.hpu.mapping.usermapper.adduser"; // map sql identificación cadena user user = new user (); user.setName ("nuevo usuario xiaohuang"); user.setage (20); // Realizar la operación insertar int retreSult = sqlsession.insert (declaración, usuario); // Envíe manualmente transacciones // sqlsession.commit (); // Después de ejecutar SQL usando SQLSession SQLSession.Close (); System.out.println (retresultivo); } @Test public void topUpDate () {sqlSession sqlSession = myBatisUtil.getSqlSession (true); /** * Map SQL Identification String, * com.edu.hpu.mapping.usermapper es el valor del atributo de espacio de nombres de la etiqueta mapper en el archivo usermapper.xml, * UpdateUser es el valor de atributo de identificación de la etiqueta de actualización. El SQL que se ejecutará se puede encontrar a través del valor de atributo de ID de la etiqueta de actualización */string Declaration = "com.edu.hpu.mapping.usermapper.updateuser"; // asignando sql id cadena user user = new user (); user.setID (3); user.setName ("Hello World"); user.setage (25); // Ejecutar la operación de modificación int retressult = sqlsession.update (declaración, usuario); // Después de ejecutar SQL con SQLSession, debe cerrar SQLSession SQLSession.Close (); System.out.println (retresultivo); } @Test public void testDelete () {sqlSession sqlsession = myBatisUtil.getSqlSession (true); / ** * MAP SQL Identification String, * com.edu.hpu.mapping.usermapper es el valor del atributo de espacio de nombres de la etiqueta mapper en el archivo usermapper.xml, * deleteuser es el valor de atributo de identificación de la etiqueta Eliminar, y el sql que se ejecuta se puede encontrar a través del valor de atributo de identificación de la etiqueta deletera */ string en la declaración = = = = = = = = = = "com.edu.hpu.mapping.usermapper.deleteUser"; // Mapeo de la cadena de identificación de SQL // realizar una operación de eliminación int retresulto = sqlsession.delete (declaración, 4); // Después de ejecutar SQL usando SQLSession SQLSession.Close (); System.out.println (retresultivo); } @Test public void testGetAll () {sqlSession sqlsession = myBatisUtil.getSqlSession (); /** * Mapeo de la cadena de identificación de SQL, * com.edu.hpu.mapping.usermapper es el valor del atributo del espacio de nombres de la etiqueta mapper en el archivo usermapper.xml. * GetAllusers es el valor de atributo de identificación de la etiqueta Seleccionar. El SQL que se ejecutará se puede encontrar a través del valor de atributo de ID de la etiqueta select */string Declaration = "com.edu.hpu.mapping.usermapper.getAllusers"; // asignando la cadena de identidad sql // Ejecutar la operación de consulta y encapsular automáticamente el resultado de la consulta en la lista <serve> return <serem> lStusers = sqlsession.selectlist (estado de cuenta (estado de cuenta); // Después de ejecutar SQL con SQLSession, debe cerrar SQLSession SQLSession.Close (); System.out.println (Lstusers); }}Operación a través de anotaciones
La operación a través de anotaciones requiere escribir una interfaz, pero no es necesario implementarse, como se muestra a continuación.
paquete com.edu.hpu.mapping; import java.util.list; import com.edu.hpu.domain.user; importar org.apache.ibatis.annotations.delete; importar org.apache.ibatis.annotations.insert; importar org.apache.ibatis.annotations.select; importar org.apache.ibatis.annotations.update; /** * @author gaCl * Defina la interfaz para la asignación de SQL, especifique que el SQL se ejecute utilizando anotaciones */public interface usermapper_11 {// use la anotación @insert para especificar el sql que se ejecutará mediante el método add @insert ("Insertar en los valores de los usuarios (nombre, edad) ( #{name}, #{edad {edad})") ")") "Usuario); // Use la anotación @Delete para especificar el SQL que se ejecutará mediante el método DeleteByID @Delete ("Eliminar de los usuarios donde id =#{id}") public int deletyById (int id); // Use la anotación @Update para especificar el SQL que se ejecutará mediante el método de actualización @Update ("Usar Users Set Name =#{name}, Age =#{Age} Where id =#{id}") public int Update (usuario de usuario); // Use la anotación @Select para especificar el SQL para ejecutar el método getByID @select ("seleccione * de usuarios donde id =#{id}") Usuario público GetByID (int id); // Use la anotación @Select para especificar el SQL para ejecutar el método getall @Select ("Seleccionar * de los usuarios") Lista pública <serem> getAll (); }Al mismo tiempo, debe agregar la interfaz escrita al archivo de configuración de la base de datos y agregar la siguiente declaración en conf.xml.
<mapper/>
Ok, básicamente se ha completado, aquí está la clase de prueba que se puede probar.
paquete com.edu.hpu.test; import java.util.list; import com.edu.hpu.domain.user; import com.edu.hpu.mapping.usermapper_11; import com.edu.hpu.util.mybatisutil; importar org.apache.ibatis.session.sqlsession; importar org.junit.test; / ***@author Administrator*Annotación de prueba*/ public class test3 {@test public void testAdd () {sqlSession sqlSession = myBatisUtil.getSqlSession (true); // Obtener el objeto de clase de implementación de la interfaz Usermapper. El objeto de clase de implementación de la interfaz Usermapper está construido dinámicamente por sqlsession.getMapper (usermapper.class). Usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); Usuario user = nuevo usuario (); user.setName ("La gran sabiduría es una tontería"); user.setage (20); int add = mApper.Add (usuario); // SQLSession debe cerrarse después de ejecutar SQL con SQLSession SQLSession.Close (); System.out.println (agregar); } @Test public void topupDate () {sqlSession sqlsession = myBatisUtil.getSqlSession (true); // Obtener el objeto de clase de implementación de la interfaz Usermapper. El objeto de clase de implementación de la interfaz Usermapper está construido dinámicamente por sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); Usuario user = nuevo usuario (); user.setID (3); user.setName ("gran sonido y sonido"); user.setage (26); // Ejecutar la operación de modificación int retressult = mApper.Update (usuario); // Después de ejecutar SQL usando SQLSession, debe cerrar sqlsession sqlsession.close (); System.out.println (retresultivo); } @Test public void testDelete () {sqlSession sqlsession = myBatisUtil.getSqlSession (true); // Obtenga el objeto de clase de implementación de la interfaz Usermapper, y el objeto de clase de implementación de la interfaz Usermapper está creado dinámicamente por SQLSession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); // ejecutar la operación de eliminación int retresult = mApper.DeleteById (7); // Después de usar SQLSession para ejecutar SQL, debe cerrar SQLSession SQLSession.Close (); System.out.println (retresultivo); } @Test public void testgetuser () {SQLSession SQLSession = myBatisUtil.getSqlSession (); // Obtener el objeto de clase de implementación de la interfaz Usermapper. El objeto de clase de implementación de la interfaz Usermapperi está construido dinámicamente por sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); // Ejecutar la operación de consulta y encapsular automáticamente el resultado de la consulta en el usuario del usuario user user = mapper.getByid (1); // Después de usar SQLSession para ejecutar SQL, debe cerrar SQLSession SQLSession.Close (); System.out.println (usuario); } @Test public void testGetAll () {sqlSession sqlsession = myBatisUtil.getSqlSession (); // Obtener el objeto de clase de implementación de la interfaz Usermapper. El objeto de clase de implementación de la interfaz Usermapper está construido dinámicamente por sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getMapper (usermapper_11.class); // Ejecutar operaciones de consulta y encapsular automáticamente los resultados de la consulta en la lista <serve> Lista de retorno <serem> lstusers = mApper.getAll (); // Después de usar SQLSession Ejecution SQL, debe cerrar SQLSession SQLSession.Close (); System.out.println (Lstusers); }}Lo anterior es una explicación detallada de la implementación mybatis de la adición de datos, la eliminación y la revisión que el editor le presentó. Espero que te sea útil. Si tiene alguna pregunta, déjeme un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!