spring和mybatis整合,spring获取sqlsession对象

来源:互联网 发布:淘宝店铺是怎么排名的 编辑:程序博客网 时间:2024/05/29 09:51

这里不做过多解释,主要是把spring和mybatis整合起来,自己在网上找了很久发现获取sqlsession对象的方法比较少

首先还是jar文件一个不能少这个可以自己准备也可以去我上传的资源中找到

mysql表


下面直接上配置

1、配置User类(工具类)
package domain;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import com.sun.org.apache.bcel.internal.generic.Select;
public class User {
private SqlSessionTemplate sqlsession;
public SqlSessionTemplate getSqlsession() {
return sqlsession;
}
public void setSqlsession(SqlSessionTemplate sqlsession) {
this.sqlsession = sqlsession;
}
public void getUser(int id){
System.out.println(sqlsession.selectOne("mapping.userMapper.getUser",id));
}
}

2、配置UserMapper.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD
Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd
">
<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="test.mb.mapping.userMapper"就是test.mb.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
-->
<mapper namespace="mapping.userMapper">
<!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
resultType="test.mb.domain.User"就表示将查询结果封装成一个User类的对象返回
User类就是users表所对应的实体类
-->
<!--
根据id查询得到一个user对象
-->
<select id="getUser" parameterType="int" resultType="java.util.Map">
select * from user where id=#{id}
</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/test?useUnicode=true&amp;characterEncoding=UTF-8
</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="mapping/mybatisconf.xml"></property>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<bean id="getuser" class="domain.User">
<property name="sqlsession" ref="sqlSessionTemplate">
</property>
</bean>
</beans>

4、配置mybatisconf.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>
<mappers>
<mapper resource="mapping/userMapper.xml"/>
</mappers>
</configuration>

5、配置Test测试类
package mapping;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import domain.User;
public class Test1 {
public static void main(String[] args) {
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
User user = (User)ac.getBean("getuser");
user.getUser(1);
}
}

测试结果