Spring MyBatis整合

更新时间:2023-09-02 18:29:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Spring+MyBatis整合教程

一、添加需要的jar包

1加入Spring jar包

(注意:在这里需要添加Spring3.X以上版本,Spring2.5不支持Mybatis整合)

我在这里添加添加Spring-3.1.0版本

2、添加mybatis jar和mybatis-spring jar包mybatis-spring.jar是mybatis

提供的一个jar包

3、在这里使用DBCP数据源

4、添加驱动包这里使用mysql数据库为例子

添加junit-4.11测试包

添加完成之后的jar截图如下:

二、添加配置文件

主要需要以下配置文件

Jdbc.properties:配置jdbc连接数据库的相关属性

Log4j.properties:log4j日志工具的配置文件

Spring-mybatis.xml:spring+mybatis整合的主要配置文件

Mybatis.xml:mybatis主配置文件

Jdbc.properties文件

配置了连接数据需要的一些选项

我们以映射一个User对象为例子

1、建立实体并且生成相应的getter setter方法

public class User{

private Integer id;

private String name;

}

2创建映射接口

public interface UserMapper{

/**根据主键查询对象*/

int findById(Integer id);

/**根据主键删除对象*/

int deleteById(Integer id);

/**将对象更新到数据库*/

int update(User user);

/**新增加对象到数据库*/

int insert(User user);

}

3、在同一个包下面创建映射文件

UserMapper.xml(文件名字与映射接口名字保持一致)

这里需要注意的映射语句id属性时候名称要与映射接口名称保持一致<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC"-//http://www.77cn.com.cn//DTD Mapper 3.0//EN" "http://www.77cn.com.cn/dtd/mybatis-3-mapper.dtd">

<mapper namespace="http://www.77cn.com.cnerMapper">

<resultMap id="BaseResultMap"type="User">

<id column="id"property="id"jdbcType="BIGINT"/>

<result column="NAME"property="name"jdbcType="VARCHAR"/>

</resultMap>

<sql id="Base_Column_List">

id,NAME

</sql>

<select id="findById"

resultMap="BaseResultMap"parameterType="http://www.77cn.com.cnng.Integer"> select

<include refid="Base_Column_List"/>

from user

where id=#{id,jdbcType=BIGINT}

</select>

<delete id="deleteById"parameterType="http://www.77cn.com.cnng.Integer">

delete from user

where id=#{id,jdbcType=BIGINT}

</delete>

<update id="update"parameterType="User">

update user

set NAME=#{name,jdbcType=VARCHAR}

where id=#{id,jdbcType=BIGINT}

</update>

<insert id="insert"parameterType="User">

insert into user(id,NAME)

values(#{id,jdbcType=BIGINT},#{name,jdbcType=VARCHAR})

</insert>

</mapper>

4、好了现在我们的映射文件写好了下面开始配置mybatis主配置也就是

Mybatis.xml这个配置文件主要是用来设置mybatis运行时候一些全局的配置

Spring和Mybatis整合时候其实这个主配置文件的作用也不太大,要不要都可以,因为与Spring整合的话就是要它的控制权交给spring容器来管理,在这里我们添上这个主配置,再后面Spring中引入就行了,一般就用两个配置:

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC"-//http://www.77cn.com.cn//DTD Config 3.0//EN" "http://www.77cn.com.cn/dtd/mybatis-3-config.dtd">

<configuration>

<!---这个配置是给后面映射的类取别名,在后面使用就很方便-->

<typeAliases>

<typeAlias type="http://www.77cn.com.cner"alias="User"/>

</typeAliases>

<!--这个配置是将映射文件加入进去-->

<mappers>

<mapper resource="com/ib/mapper/UserMapper.xml"/> </mappers>

</configuration>

5、下面我们要进行Spring的核心配置

Spring-Mybatis.xml文件

<?xml version="1.0"encoding="UTF-8"?>

<beans xmlns="http://www.77cn.com.cn/schema/beans"

xmlns:xsi="http://www.77cn.com.cn/2001/XMLSchema-instance"

xmlns:context="http://www.77cn.com.cn/schema/context"

xmlns:tx="http://www.77cn.com.cn/schema/tx"

xsi:schemaLocation="http://www.77cn.com.cn/schema/beans http://www.77cn.com.cn/schema/beans/spring-beans-2.5.xsd

http://www.77cn.com.cn/schema/context

http://www.77cn.com.cn/schema/context/spring-context-2.5.xsd http://www.77cn.com.cn/schema/tx

http://www.77cn.com.cn/schema/tx/spring-tx-2.5.xsd"> <!--导入外部的properties文件-->

<context:property-placeholder

location="classpath:jdbc.properties"/>

这里我们的数据源使用的dbcp

<!--1、配置数据源-->

<bean id="dataSource"

class="http://www.77cn.com.cnmons.dbcp.BasicDataSource">

<property name="driverClassName"value="${jdbc_driverClassName}"/> <property name="url"value="${jdbc_url}"/>

<property name="username"value="${jdbc_username}"/>

<property name="password"value="${jdbc_password}"/> </bean>

<!--2、配置sqlSessionFactory-->

<bean id="sqlSessionFactory"

Class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource"ref="dataSource"/>

<!--注意这里:这里是将mybatis的主配置文件读取进来-->

<property name="configLocation"value="classpath:mybatis.xml" />

<!--这里如果我们不需要配置mybatis主配置文件的话也可以通过以下配置将文件自动扫描-->

<!--<property name="mapperLocations"value ="classpath:com/ib/mapper/*.xml"/>-->

</bean>

</beans>

至此:我们可以添加测试类进行测试:

public class TestUser{

private SqlSessionFactory sessionFactory;

@Before

public void before(){

ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-mybatis.xml");

sessionFactory=(SqlSessionFactory) applicationContext.getBean("sqlSessionFactory");

}

@Test

public void testUserCDUI(){

/*获得session获得的这个session是默认提交事务*/

SqlSession session=sessionFactory.openSession(true);

/*获取User对象的映射器*/

UserMapper userMapper=session.getMapper(UserMapper.class);

//测试添加一个对象

User user=new User();

user.setId(1);

user.setName("敏敏");

userMapper.insert(user);

}

}

我们可以看到对象已经保存到数据库,其它方法大家可以去测试

总结:

通过自己学习,与大家分享这种心情的喜悦的,小弟能力有限,有什么不足的,希望大家多多指出!谢谢!

本文来源:https://www.bwwdw.com/article/7l8i.html

Top