MyBatis-Spring整合 注入SqlSessionTemplate

SqlSessionTemplate
SqlSessionTemplate 是 MyBatis-Spring 的核心。 这个类负责管理 MyBatis 的 SqlSession, 调用 MyBatis 的 SQL 方法, 翻译异常。 SqlSessionTemplate 是线程安全的。
最终要的是让spring获取到SqlSessionTemplate然后注入给工具类,让工具类操作数据库
为了方便看,把所有文件都放一个文件夹里了。
总共是5个文件:
1.Mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"  
	"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<mappers>
		<mapper resource="bs/UserMapper.xml" />
			<!-- 连接配置文件 -->
	</mappers>
</configuration>
2. UserMapper.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="UserMapper">
	 <select id="insert" parameterType="Map" resultType="java.util.Map">
		INSERT INTO user
		(id) 
		VALUES
		(#{id})
	</select>
	
	<select id="findById" parameterType="int" resultType="java.util.Map">
		SELECT *
		FROM user
		WHERE id=#{id}
	</select>
	
<!-- 	<select id="findList" resultType="mybatis.User" parameterType="int">
		SELECT * FROM user 
		<if test="_parameter!=null and _parameter!=' '">
				WHERE uid=#{_parameter}
		</if>
	</select> -->
</mapper>

 
3. spring.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:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/aop 
      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
 ">

	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>org.gjt.mm.mysql.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://localhost:3306/zdy?useUnicode=true&characterEncoding=UTF-8
			</value>
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password">
			<value>1111</value>
		</property>
	</bean>
	
		<!-- 获取会话工厂,并注入Mybatis,和dateSource数据库链接 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="bs/Mybatis.xml"></property>
	</bean>
	
		<!-- 在会话工厂中取出SqlSessionTemplate这个对象 -->
     <bean id="sqlsessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>
		
		<!-- 把sqlsessionTemplate注入到UserMapper中去。UserMapper才能对数据进行操作 -->
	<bean id="user" class="bs.UserImpl">
	<property name="sqlsession" ref="sqlsessionTemplate">
	</property>
	</bean>
</beans>


4. UserImpl.java :操作数据库工具类
package bs;

import java.util.List;
import java.util.Map;

import org.mybatis.spring.SqlSessionTemplate;

public class UserImpl {
	//注入以后就可以直接使用sqlsession
	private SqlSessionTemplate sqlsession;
	public void setSqlsession(SqlSessionTemplate sqlsession) {
		this.sqlsession = sqlsession;
	}
	//用sqlsession去操作数据库
	public void insert(Map user){
		sqlsession.insert("UserMapper.insert", user);
	}
	public void findById(int id){
		 sqlsession.selectOne("UserMapper.findById", id);
		 System.out.println(sqlsession.selectOne("UserMapper.findById", id));
		 //因为输出值是一个map集合,所以打印一个map
	}
}


 
5. Test.java
package bs;

import java.util.Map;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
	public static void main(String[] args) {

		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bs/spring.xml");
		UserImpl userImpl = (UserImpl)ctx.getBean("user");
		//固定格式  取出bean中创建的UserMapper对象		
		userImpl.findById(1);
	}
}

数据库内容
查询出来内容

 
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
SpringMyBatis是两种流行的Java框架,它们可以相互结合使用以提高应用程序的效率和可维护性。下面是SpringMyBatis整合的步骤: 1.在pom.xml文件中添加SpringMyBatis的依赖项: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.9</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.9</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.9</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.7</version> </dependency> ``` 2.创建一个Spring配置文件和MyBatis配置文件,例如applicationContext.xml和mybatis-config.xml。 3.在Spring配置文件中添加以下bean: ```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" /> <property name="username" value="root" /> <property name="password" value="password" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean> ``` 4.在MyBatis配置文件中配置mapper接口和SQL语句。 5.创建一个mapper接口和对应的SQL映射文件,例如UserMapper和UserMapper.xml。 6.在Spring配置文件中添加以下bean: ```xml <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.example.mapper.UserMapper" /> <property name="sqlSessionTemplate" ref="sqlSession" /> </bean> ``` 7.在Java代码中使用@Autowired注解或者@Resource注解注入mapper接口,例如: ```java @Autowired private UserMapper userMapper; ``` 至此,SpringMyBatis已经整合完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值