Prefacio
Hoy, aprendamos sobre Springboot integrando mybatis. Generalmente hay dos formas de integrar mybatis. Uno se basa en la anotación y el otro se basa en la configuración XML. Hoy, primero aprendamos sobre la integración MyBatis basada en anotaciones. No diré mucho a continuación, echemos un vistazo a la introducción detallada
Debido a que es mybatis, debe estar relacionado con mybatis, y uso mysql, por lo que también necesita introducir MySQL relacionado.
< <version>1.3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency>
Aquí se crea un modelo de usuario, lo cual es conveniente para compararse con la tabla de la base de datos. Aquí, se crea una base de datos llamada MyBatis en MySQL, y se crea una tabla de usuario. Al mismo tiempo, se crea una clase de enumeración UsersExenum.
Crear tabla `user` (` id` int (11) no nulo auto_incement, `name` varchar (20) predeterminado nulo,` age` int (11) predeterminado nulo, `sex` varchar (20) predeterminado nulo, clave primaria (` id`)) motor = innoDB Auto_incement = 9 Charset predeterminado = utf8;
paquete com.example.model; import java.io.Serializable; public class User implementa serializable {@Override public String toString () {// TODO Método Generado automático Stub Return "User [id =" + id + ", name =" + name + ", edad =" + edad + "]"; } public int getId () {return id; } public void setid (int id) {id = id; } public String getName () {nombre de retorno; } public void setName (name de cadena) {name = name; } public int getAge () {return Age; } public void setAge (int Age) {edad = edad; } private int id; nombre de cadena privada; edad privada int; usuarios privados sexoxenum sexo; Public UsersExenum getsex () {return sex; } public void setsex (usersexenum sex) {sex = sex; }} paquete com.example.model; public enum Usersexenum {hombre, mujer}Aquí necesitamos comparar el modelo con el SQL que opera la base de datos. ¿Qué comparación debemos usar? Entonces necesitamos crear un mapeador. Hay adiciones, deleciones, modificaciones y búsquedas aquí.
paquete com.example.mapper; import java.util.list; importar org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; importar org.apache.ibatis.annotations.result; import.apache.ibatis.annotations.Results; importar org.apache.ibacations; org.apache.ibatis.annotations.update; import com.example.model. * ;; interfaz pública usermapper {@select ("select * from user") @Results ({@Result (Property = "sexo", columna = "sexo", javatype = usersexenum.class), @Result (property = "name", column = "name") getAll (); @Select ("Seleccionar * de User Where id = #{id}") @Results ({@Result (Property = "Sex", column = "Sex", javatype = UsersExeNum.class), @Result (Property = "Name", columna = "name")}) Getone (int id); @Insert ("Insertar en los valores de usuario (nombre, edad, sexo) ( #{name}, #{edad}, #{sex})") void insert (usuario de usuario); @Update ("actualizar user set name =#{username}, Age =#{Age} Where id =#{id}") Void Update (usuario de usuario); @Delete ("Eliminar desde el usuario donde id =#{id}") void delete (int id);}El mapeador está configurado arriba, entonces, ¿cómo puede el sistema saber dónde se coloca el mapeador? Entonces hay anotación @mapperscan.
paquete com.example.demo; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; import og.springframework.boot.autoconfigure.springbootapplation {public static void main (string [] args) {springapplication.run (demoApplication.class, args); }}Aquí, se crea UserController, uno es mostrar a todos los usuarios y el otro es agregar un nuevo usuario y luego mostrar todos los usuarios.
paquete com.example.demo; import java.util.list; import org.springframework.beans.factory.annotation.autewired; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation org.springframework.web.bind.annotation.requestmethod; import com.example.mapper.usermapper; import com.example.model.user; import com.example.model.usersexenum;@controlador@requestmapping ("/user") Public Usercontroller {@autowed privado Usermapper USermapper; @RequestMapping (valor = "/alluser.do",method = requestmethod.get) public String getAllusers (modelo modelo) {list <serer> users = usermapper.getall (); model.addattribute ("usuarios", usuarios); devolver "UserList"; } @RequestMapping (valor = "/insert.do",method = requestmethod.get) public string addUser (modelo modelo) {user user = new user (); user.setName ("Cuiyw"); user.setage (27); user.setsex (UsersExenum.man); usermapper.insert (usuario); Lista <serem> users = usermapper.getall (); model.addattribute ("usuarios", usuarios); devolver "UserList"; }}El mapeador y el modelo también se establecen arriba. Para interactuar con la base de datos, debe configurar la dirección de la base de datos y otra información. Se informó un error cuando se ejecutó aquí. La excepción anidada es Java.sql.SqLException: el valor de la zona horaria del servidor 'öð¹ú ± ê × ¼ê ± ¼ä' no es reconocido o representa más de una zona horaria. Debe configurar el servidor o el controlador JDBC (a través de la propiedad de configuración de SerververImezone) para utilizar un valor de zona horaria más específico si desea utilizar soporte de zona horaria. La siguiente zona de tiempo se establece en mysql: set global time_zone = '+8:00';
spring.mvc.view.prefix =/view/spring.mvc.view.suffix = .jspmybatis.type-aliases-package = com.example.modelspring.dataSource.driverClassName = com.mysql.cj.jdbc.diverspring.dataSource.url = jdbc: mysql: // localhost: 3306/mybatisspring.datasource.username = rootspring.dataSource.password = 123456
7. Cree una página para mostrar
Aquí todavía usaremos JSP para mostrar datos de acuerdo con el blog anterior.
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> < 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "content-type" content = "text/html; <tr> <th> name </th> <th> edad </th> <th> género </th> </tr> <c: foreach elementos = "$ {users}" var = "item"> <tr> <td> $ {item.name} </td> <td> $ {item.age} </td> <td> $ {item.sex} </t> <td> </t> </tr4 </c: foreach> </table> </body> </html>Aquí, primero abra http: // localhost: 8080/user/aluser.do En el navegador, puede ver la lista de usuarios y luego ingresar http: // localhost: 8080/user/insert.do, y verá que la lista muestra una línea adicional de datos.
El uso de la integración de mybatis basada en anotaciones es más fácil y más conveniente, pero tiene ventajas y desventajas. Puede ser menos conveniente que se conecten múltiples tablas, y puede ser mejor usar la configuración basada en XML.
De acuerdo, lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.