MyBatis与spring框架融合

一.配置环境

项目结构展示:

需要引入的包

我们可以看到 其中有mybatis-spring-1.3.1.jar 这是spring与mybatis连接的桥梁

二.配置文件

mybatis-config.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>

app.xml文件

<?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"
	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">

	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="JDBC:mysql://127.0.0.1:3306/test"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>
	
	<bean class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>
		<property name="mapperLocations" value="classpath:sql/*.xml"></property>
	</bean>
	
	<mybatis-spring:scan base-package="com.zzu"/><!-- 扫描的是接口 -->
	
</beans>

我们将数据库连接池配置到了spring的配置文件中,就是dataSource,此中又可以配置SqlSessionFactoryBean其中第一行是配置dataSource,第二行是配置mybatis-config文件的地址,第三行是配置sql语句的位置。<mybatis-spring:scan> 标签就是扫描 base-package包中的接口

sql文件夹中area.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzu.area.IAreaDao">
	<select id="getName" resultType="java.lang.String">
		select name from area where code = #{code}
	</select>
</mapper>

此中不再解释,在mybatis初识中有介绍。

IAreaDao中的代码

public interface IAreaDao {

	String getName(String code);
}

Test类中代码

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zzu.area.IAreaDao;

public class Test {

	public static void main(String[] args) throws Exception {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("app.xml");
		IAreaDao areaDao = applicationContext.getBean(IAreaDao.class);
		System.out.println(areaDao);
		System.out.println(areaDao.getName("522732"));
		applicationContext.close();
	}
}

运行结果

测试数据

表结构

猜你喜欢

转载自blog.csdn.net/qq_41313587/article/details/97113552
今日推荐