Primavera MybatisPlus integración, así como algunos de los problemas encontrados

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. . .
Aquí Insertar imagen Descripción
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.xmlel 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.xmleste 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.proertiesel 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.xmleste 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
Aquí Insertar imagen Descripción

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
Aquí Insertar imagen Descripción
efecto de registro
Aquí Insertar imagen Descripción
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
Aquí Insertar imagen Descripción
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)

Aquí Insertar imagen Descripción
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
Aquí Insertar imagen Descripción
6. En el plazo, esto tendrá éxito, devuelve un valor de 1, e imprimir la instrucción SQL
Aquí Insertar imagen Descripciónque 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! ! !

Publicado 10 artículos originales · ganado elogios 4 · Vistas 435

Supongo que te gusta

Origin blog.csdn.net/qq_44719527/article/details/104798849
Recomendado
Clasificación