zoukankan      html  css  js  c++  java
  • Spring整合Mybatis

    1. 新建Maven项目,添加依赖

    新建时,选择maven-archetype-quickstart

    1.1. 添加Spring依赖包

    <!-- spring 依赖 -->
    <!-- spring 核心依赖 -->
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context</artifactId>
    	<version>${spring.version}</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-beans</artifactId>
    	<version>${spring.version}</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-core</artifactId>
    	<version>${spring.version}</version>
    </dependency>
    
    <!-- spring dao 依赖 -->
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-jdbc</artifactId>
    	<version>${spring.version}</version>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-tx</artifactId>
    	<version>${spring.version}</version>
    </dependency>
    

    1.2. 添加Mybatis依赖包

    <!-- DAO框架:mybatis依赖 -->
    <dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis</artifactId>
    	<version>3.3.0</version>
    </dependency>
    
    <dependency>
    	<groupId>org.mybatis</groupId>
    	<artifactId>mybatis-spring</artifactId>
    	<version>1.2.3</version>
    </dependency>
    

    1.3. 添加其他依赖包

    <!-- 日志相关 -->
    <dependency>
    	<groupId>org.logback-extensions</groupId>
    	<artifactId>logback-ext-spring</artifactId>
    	<version>0.1.4</version>
    </dependency>
    <dependency>
    	<groupId>org.slf4j</groupId>
    	<artifactId>jcl-over-slf4j</artifactId>
    	<version>1.7.12</version>
    </dependency>
    <dependency>
    	<groupId>org.slf4j</groupId>
    	<artifactId>slf4j-api</artifactId>
    	<version>1.7.12</version>
    </dependency>
    
    <dependency>
    	<groupId>ch.qos.logback</groupId>
    	<artifactId>logback-core</artifactId>
    	<version>1.1.1</version>
    </dependency>
    <dependency>
    	<groupId>ch.qos.logback</groupId>
    	<artifactId>logback-classic</artifactId>
    	<version>1.1.1</version>
    </dependency>
    
    <!-- 数据库连接池 -->
    <dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>druid</artifactId>
    	<version>1.0.15</version>
    </dependency>
    

    2. 配置Spring

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
    		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"
    >
    
    	<context:property-placeholder ignore-resource-not-found="false" location="classpath:jdbc.properties" />
    
    	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    		<property name="driverClassName" value="${jdbc.driverClassName}" />
    		<property name="url" value="${jdbc.url}" />
    		<property name="username" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    		<property name="initialSize" value="${jdbc.initialSize}" />
    		<property name="maxActive" value="${jdbc.maxActive}" />
    		<property name="filters" value="${jdbc.filters}" />
    		<property name="maxWait" value="${jdbc.maxWait}" />
    		<property name="minIdle" value="${jdbc.minIdle}" />
    		<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />
    		<property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />
    		<property name="validationQuery" value="${jdbc.validationQuery}" />
    		<property name="testWhileIdle" value="${jdbc.testWhileIdle}" />
    		<property name="testOnBorrow" value="${jdbc.testOnBorrow}" />
    		<property name="testOnReturn" value="${jdbc.testOnReturn}" />
    		<property name="poolPreparedStatements" value="${jdbc.poolPreparedStatements}" />
    		<property name="maxPoolPreparedStatementPerConnectionSize" value="${jdbc.maxPoolPreparedStatementPerConnectionSize}" />
    		<property name="removeAbandoned" value="${jdbc.removeAbandoned}" />
    		<property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}" />
    		<property name="logAbandoned" value="${jdbc.logAbandoned}" />
    	</bean>
    
    	<!-- 配置 sqlSessionFactory 自定义实现了typeAliasesPackage支持通配符的功能 -->
    	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<!-- 注入数据库连接池 -->
    		<property name="dataSource" ref="dataSource" />
    		<!-- 配置mybatis全局配置文件 -->
    		<property name="configLocation" value="classpath:mybatis-config.xml" />
    		<!-- 扫描entity包,使用别名 -->
    		<property name="typeAliasesPackage" value="com.hwj.*.model" />
    		<!-- 扫描sql配置文件:映射需要的xml文件 -->
    		<property name="mapperLocations" value="classpath:sqlmap/**/*.xml" />
    	</bean>
    
    	<!-- 扫描所有Mybatis相关的接口 -->
    	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    		<property name="basePackage" value="com.hwj.*.dao" />
    	</bean>
    
    	<!-- 配置事务管理器 -->
    	<bean id="transactionManager" class=" org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<!-- 注入数据库连接池 -->
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    </beans>
    
    

    3. 配置Mybatis

    <?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>
    	<settings>
    		<setting name="cacheEnabled" value="true" />
    		<setting name="lazyLoadingEnabled" value="true" />
    		<setting name="multipleResultSetsEnabled" value="true" />
    		<setting name="useColumnLabel" value="true" />
    		<setting name="defaultExecutorType" value="REUSE" />
    		<setting name="defaultStatementTimeout" value="25000" />
    		<setting name="mapUnderscoreToCamelCase" value="true" />
    		<setting name="jdbcTypeForNull" value="NULL" />
    		<setting name="logImpl" value="SLF4J" />
    	</settings>
    
    </configuration>
    

    4. 测试

    @Test
    public void test() {
    	ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    	DonorInfoMapper mapper = ctx.getBean(DonorInfoMapper.class);
    	System.out.println(mapper);
    	DonorInfo info = mapper.selectByPrimaryKey("4AE8395D0931489AB4179935E459896B");
    	System.out.println("------------------------------------------:" + ToStringBuilder.reflectionToString(info));
    
    }
    
  • 相关阅读:
    idea编译eclipse项目时修改java代码后运行不生效
    IDEAL启动项目的时候报java.lang.NoClassDefFoundError: javax/servlet/Filter错误
    springboot项目运行报错Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
    Error:(5, 25) java: 程序包javax.servlet.jsp不存在
    未载入,因为它的 MIME 类型 "text/html" 不是 "text/css"
    Win10下PHP加载php8_module报错“Can‘t locate API module structure `php8_module‘ in file XXX“解决方法供参考
    apache启动服务报错ServerRoot must be a valid directory
    如何从Apache官网下载windows版apache服务器
    解决request.getServletContext()方法报红问题
    [Cloud DA] Serverless Framework with AWS
  • 原文地址:https://www.cnblogs.com/huangwenjie/p/9225898.html
Copyright © 2011-2022 走看看