spring和mybatis整合,spring獲取sqlsession對象

這裏不做過多解釋,主要是把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/aop
http://www.springframework.org/schema/context
http://www.springframework.org/schema/tx
">
<數據源>
<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);
}
}

測試結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章