Spring与Mybatis初步整合示例

Spring与Mybatis初步整合示例


由于学完mybatis和spring的大概内容之后,想对知识做一个大概的总结以及一些拓展,提供一个较为常见的模型,故写了这篇博客,利用一个javaweb项目(使用maven)与其结合,这里主要提供配置文件的内容以及基础的文件结构,而不提供具体代码

梗概

实现一个简单的条目查询的功能,布局在一个jsp页面上


pom.xml

<dependencies>
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.bundles</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2_1</version>
        </dependency>
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>mchange-commons-java</artifactId>
            <version>0.2.11</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <dependency>
            <groupId>cn.easyproject</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
    </dependencies>

前端结构

在这里插入图片描述
只有一个item_list.jsp界面用于显示信息


后端结构

主要类:
ItemInfo——数据库映射类
ItemController——数据查询处理类(返回数据给jsp)
ItemMapper——与ItemMapper.xml映射文件相关联
ItemService及其实现类——业务处理类
在这里插入图片描述
配置文件:
ItemMapper.xml——mybatis映射文件
SpringConfig.xml——Spring配置文件

文件内容

SpringConfig.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: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.xsd
       http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

<!--	开启组件扫描-->
    <context:component-scan base-package="com.wfh"/>

这里连接池使用的是c3p0

<context:property-placeholder location="classpath:db.properties"/>
<!--	配置数据库连接池-->
    <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

启用了默认的事务核心管理器类

<!--    事务核心管理器-->
    <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <tx:annotation-driven/>

配置SQLSessionFactoryBean来代替之前mybatis中的SQLSessionFactoryBuilder和SQLSessionFactory类,内配置数据库映射类的别名设置、数据库连接池对象以及mybatis映射文件位置(注意放在resources下的文件路径需要加classpath),相当于原先我们mybatis配置文件的作用,这样我们就可以不用写sqlMapperConfig.xml文件了

<!--    配置SqlSessionFactoryBean-->
    <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value="com.wfh.bean"/>
        <property name="mapperLocations" value="classpath:mappers/*.xml"/>
    </bean>

而上面这个bean我们自己不会拿来用而是拿来做MapperScannerConfigurer的参数引用,其中basePackage参数用于配置Mapper.xml对应的Mapper接口所在的包路径,然后spring会为这些接口配置bean,自动用xml文件中的sql语句来实例化接口方法;

<!--    配置Mapper扫描器-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.wfh.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
</beans>

ItemServiceImpl:

@Service
public class ItemServiceImpl implements ItemService{


    @Autowired
    private ItemMapper itemMapper;

    public List<ItemInfo> selectAllItem() {
        return itemMapper.selectAllItem();
    }

    public ItemInfo selectById(String id){
        return itemMapper.selectById(id);
    }

    public void deleteById(String id) {
        itemMapper.deleteById(id);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值