java实训笔记_Spring整合MyBatis

1 前言

上一篇写了SpringMVC下MyBatis的逆向工程
这一篇介绍Spring整合MyBatis的步骤

2 引入包

整个项目的包都在这,可以按需取用

<!-- Spring 核心 -->
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.2.7.RELEASE</version>
		</dependency>
	
		<!-- MyBastis -->
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.5</version>
		</dependency>
		<!-- connector -->
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.40</version>
		</dependency>

		<!-- Spring整合MyBatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>2.0.5</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
		<dependency>
			<groupId>com.mchange</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.5.2</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.2.7.RELEASE</version>
		</dependency>

3 配置文件

包含三个配置文件,SqlMapConfig.xml、db.properties、springWithMyBatis.xml

3.1 SqlMapConfig.xml

在SqlMapConfig.xml中指定别名与mapper

<?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>
	<!-- 自定义别名 -->
	<typeAliases>
		<!-- 批量定义列名 -->
		<!-- package:指定包的名称,为该包下的pojo类声明别名,所有定义的别名就是类名
		(首字母大小写都可以) -->
		<package name="com.test.pojo" />
	</typeAliases>

<mappers>
    <!-- package 注册指定包下的所有映射文件  将xml与java类放一起  
    该方法要求mapper接口与mapper映射文件名称一样且在同一目录下 -->
    <package name="com.test.mapper"/>
</mappers>

</configuration>

3.2 db.properties

在db.properties指定数据库连接信息。

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/myssm
name=root
password=

3.3 springWithMyBatis.xml

在springWithMyBatis.xml中指定数据源、SqlSessionFactory、MapperScanner

<?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:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	<context:property-placeholder location="db.properties"/>
	
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${name}"/>
        <property name="password" value="${password}"/>
	</bean>
	
	<bean id="sqlSessionFatory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="SqlMapConfig.xml"></property>
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.test.mapper"></property>
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFatory"></property>
	</bean>

</beans>

4 测试

4.1 Test.java

ApplicationContext applicationContext=new ClassPathXmlApplicationContext("springWithMyBatis.xml");
UserMapper userMapper=(UserMapper) applicationContext.getBean("userMapper");
System.out.println(userMapper.selectByPrimaryKey("1").getUsername());

4.2 运行结果

在这里插入图片描述
红色信息为c3p0连接池的信息,黑色为查询结果。

5 结语

将Spring与MyBatis整合以后,就不需要自己管理SqlSessionFactory那些了,需要的时候获取bean就可以了,其实配置文件叫啥问题不大,重要的是引用的时候要写对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值