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));
    
    }
    
  • 相关阅读:
    使用javap分析Java的字符串操作
    使用javap深入理解Java整型常量和整型变量的区别
    分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型
    Java动态代理之InvocationHandler最简单的入门教程
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
  • 原文地址:https://www.cnblogs.com/huangwenjie/p/9225898.html
Copyright © 2011-2022 走看看