MyBatis-Spring整合 注入SqlSessionTemplate

MyBatis-Spring整合 注入SqlSessionTemplateSqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的。最终要的是让spring获取到SqlSessionTemplate然后注入给工具类,让工具类操作数据库

大家好,又见面了,我是你们的朋友全栈君。

SqlSessionTemplate
SqlSessionTemplate 是 MyBatis-Spring 的核心。 这个类负责管理 MyBatis 的 SqlSession, 调用 MyBatis 的 SQL 方法, 翻译异常。 SqlSessionTemplate 是线程安全的。
最终要的是让spring获取到SqlSessionTemplate然后注入给工具类,让工具类操作数据库
MyBatis-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);
	}
}

数据库内容
MyBatis-Spring整合 注入SqlSessionTemplate
查询出来内容

MyBatis-Spring整合 注入SqlSessionTemplate

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138130.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx日志格式配置

    nginx日志格式配置nginx作为我们IT中的首选反向代理神器,有时候我们有必要查看nginx中的日志的,但是我们对nginx的日志格式不是很了解怎么办呢?这样以来也是看不懂的。nginx日志nginx的日志分两种一种是access.log一种是error.log。access.log日志为访问日志,也就是相当于流水账记录所有的日志,而error不同只记录错误错误的请求。这两种日志对于我们来说都非常重要。同时这两…

    2022年6月9日
    87
  • Python设计模式——策略模式(孙悟空用什么打妖怪)

    Python设计模式——策略模式(孙悟空用什么打妖怪)

    2022年3月13日
    48
  • conductor使用redis[通俗易懂]

    conductor使用redis[通俗易懂]1.使用gradlebuild命令在文件夹./server/build/libs/中生成conductor-server-all-VERSION.jar**2.server.properties配置文件中配置db=redisworkflow.dynomite.cluster.hosts=222.187.245.149:6379:us-east-1equeues.dynomite.n…

    2022年10月24日
    0
  • matlab中的im2bw函数_matlab中tofloat

    matlab中的im2bw函数_matlab中tofloat函数功能:该函数用于填充bai图像区域和“空洞”。语法格式:BW2=imfill(BW)这种du格式将一张二值图像显示在屏zhi幕上,允许用户使用鼠标在图像上点几个点,这几个点围成的区域即要填充的区域。要以这种交互方式操作,BW必须是一个二维的图像。用户可以通过按Backspace键或者Delete键来取消之前选择的区域;通过shift+鼠标左键单击或者鼠标右键单击或双击可以确定选择区…

    2022年9月12日
    0
  • Vue大数据可视化(大屏展示)解决方案

    Vue大数据可视化(大屏展示)解决方案一个基于vue、datav、Echart框架的大数据可视化(大屏展示)模板,最近更新了详细的介绍说明,实现大数据可视化。通过vue组件实现数据动态刷新渲染,内部图表可自由替换。部分图表使用DataV自带组件,可自由进行更改,持续更新…项目地址:vue-big-screen(码云)一、项目描述一个基于vue、datav、Echart框架的”数据大屏项目”,通过…

    2022年6月7日
    461
  • lte频谱带宽_lte信道带宽可以配置为

    lte频谱带宽_lte信道带宽可以配置为1.频带(Band)所谓频带,指代的是一个频率的范围或者频谱的宽度,即无线解码器的最低工作频率至最高工作频率之间的范围,单位是Hz。为了方便起见,在LTE中,使用数字1-43来表示不同的频带(36101-V10.21.0版本协议),从而指代不同的频率范围。协议36101规定了目前LTE所有的频带、该频带的频率范围和LTE制式,如下图所示。需要注意的是,频带1-32的上下行频率范围是不重叠的,即上行

    2022年10月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号