I. Introducción
1. Esto es simplemente la integración de la primavera y MybatisPlus, e hizo la prueba más sencilla
2. Integrar primavera y MybatisPlus, en primer lugar a familiarizarse con los Spring Framework
3. Use herramientas de construcción del proyecto maven
En segundo lugar, el paso
1. Crear proyecto se omite, mostrar cómo es simple estructura de directorios. . .
2. dependencias Primero se debe agregar en el archivo POM
<dependencies>
<!-- mp 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.3</version>
</dependency>
<!--junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- c3p0连接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- spring相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
</dependencies>
3. mybatis aprendido debería saber, mybatis hay un archivo de configuración global, pero no requiere la integración con el interior de la primavera después de la adición de contenido, pero generalmente tienen reservas. Construir un directorio de recursos en mybatis-config.xml
el archivo XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
Bajo catálogo de primavera 4.resource para construir un fichero core applicationContext.xml
este archivo XML.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
xmlns="http://www.springframework.org/schema/beans" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd">
<!--引入properties配置文件-->
<context:property-placeholder location="classpath:db.properties" />
<!--配置数据源,使用C3p0连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!--事务管理器-->
<bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--开启基于注解的配置-->
<tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>
<!--整合Mybatis-->
<!--Spring一启动就会创建sqlSessionFactory对象-->
<!--
mybatis提供的:org.mybatis.spring.SqlSessionFactoryBean
mybatisPlus 提供的:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--配置mybatis的全局配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
Construir un directorio bajo 5.resource db.proerties
el archivo de propiedades
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_mybatis_plus?characterEncoding=utf-8
jdbc.username=root
jdbc.password=自己数据的密码
6. Con el fin de facilitar la probarnos, agregue un archivo de registro. construir un directorio de recursos en virtud de log4j.xml
este archivo XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT"
class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
</layout>
</appender>
<logger name="java.sql">
<level value="debug" />
</logger>
<logger name="org.apache.ibatis">
<level value="info" />
</logger>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
7. En cuanto a la prueba, hay que preparar las tablas de la base y las clases de entidad
(1) una tabla de base de datos, utilice la base de datos MySQL, crear una nueva base de datos y tablas y añadir unos datos.
CREATE DATABASE db_mybatis_plus;
USE db_mybatis_plus;
CREATE TABLE tbl_employee(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(50), email VARCHAR(50),
gender INT(1), age INT
);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Tom','[email protected]',1,22);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Jerry','[email protected]',0,25);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('rose','[email protected]',1,30);
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('jack','[email protected]',0,35);
(2) las clases de entidad de Java, los campos de la tabla de base de datos.
private Integer id;
private String lastName;
private String email;
private Integer gender;
private Integer age;
//无参构造
//有参构造
//getter和setter方法
//toString 方法
//太占地了,我就省略l,但是你不要省略,特别的setter和getter方法。
(3) crear una interfaz de asignador, la herencia MybatisPlus mencionan interfaces de BaseMapper proporcionadas, clase de entidad genérico objeto
EmployeeMapper
public interface EmployeeMapper extends BaseMapper<Employee>{
}
No se preocupe, ven las fotos
En tercer lugar, la prueba
1. Primera prueba de la conexión de base de datos no tiene éxito
//获取Spring容器
private ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
private EmployeeMapper employeeMapper = ioc.getBean("employeeMapper",EmployeeMapper.class);
Escribir un método de prueba
@Test
public void testMp() throws SQLException {
DataSource dataSource = ioc.getBean("dataSource",DataSource.class);
System.out.println(dataSource);
Connection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
Para mapa Zhang, no hay error, no hay problema con la configuración Probablemente un
efecto de registro
2. Insertar un método de inserción de prueba a utilizar, por supuesto, lo que la mayoría probablemente quejarse directamente a la prueba de
mensaje 3. error
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.atguigu.mp.beans.Employee' with value '1237661424084324353' Cause: java.lang.IllegalArgumentException: argument type mismatch
4. Solución, añadir anotaciones en la propiedad ID de un tipo de entidad, es una estrategia de crecimiento clave principal autodeclarado
@TableId(type = IdType.AUTO)
5. Ejecutar una vez más una excepción
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mp.employee' doesn't exist
Solución, en la que las clases de entidad anotadas nombre de la clase, de declaración de clases entidad corresponde a una tabla de base de datos (que son incompatibles con los nombres de las clases entidad y de mesa, si esto no se producirá una excepción)
@TableName(value = "tbl_employee")
Las dos excepciones, por supuesto, no hay una solución más fácil, por no mencionar aquí el
6. En el plazo, esto tendrá éxito, devuelve un valor de 1, e imprimir la instrucción SQL
que haya terminado
La escritura no es fácil, si útil para usted, por favor, dar un poco de elogio, los pulgares para mí un gran apoyo y estímulo, gracias! ! !