`
youyu4
  • 浏览: 444700 次
社区版块
存档分类
最新评论

spring整合Mybatis

 
阅读更多

spring整合Mybatis

 

重点

 

      1. 重要的包:mybatis(实现SQL的封装和结果的映射) 和 mybatis-spring(将Mybatis的配置注入bean)

 

      2. 配置数据源

 

      3. 将sqlSessionFactory注入到bean,将Mybatis的映射文件注入到bean

 

      4. Mybatis映射文件,怎么将结果集和javabean进行映射

 

      5. 跟 spring-jdbc 有所区别的是,spring-jdbc 需要实现类,实现类做封装增删改查,而Mybatis只要定义接口,然后操作全部写在映射文件的SQL中

 

 

 

代码

 

需要的jar包

<!-- 链接MySQL数据库用的 -->
<dependency>  
    <groupId>mysql</groupId>  
    <artifactId>mysql-connector-java</artifactId>  
    <version>5.1.36</version>  
</dependency>  
<!-- 用于spring连接数据库,包括:dataSource、事务、封装数据库操作 -->
<dependency>  
    <groupId>org.springframework</groupId>  
    <artifactId>spring-jdbc</artifactId>  
    <version>4.2.1.RELEASE</version>  
    <scope>compile</scope>  
</dependency>  
<!-- 可以通过spring配置bean的方式进行mybatis配置了,不然需要单独使用mybatis的配置 -->
<dependency>  
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>   
    <version>1.2.3</version>  
</dependency>  
<!-- Mybatis要用的包 -->
<dependency>  
    <groupId>org.mybatis</groupId>  
    <artifactId>mybatis</artifactId>  
    <version>3.3.0</version>  
</dependency>  

 

applicationContext.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:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  

    <!-- 要扫描的包 -->
    <context:component-scan base-package="com.emerson.suzhou" />  
  
    <!-- 用spring jdbc连接数据库 -->
    <bean id="dataSource"  
        class="org.springframework.jdbc.datasource.DriverManagerDataSource" >  
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/your_database" />  
        <property name="username" value="your_username" />  
        <property name="password" value="your_password" />  
    </bean>  
    
    <!-- SqlSessionFactory创建SqlSession对象,打开一个数据库会话 -->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <!-- 使用的数据源 -->
        <property name="dataSource" ref="dataSource" />  
        <!-- 配置Mapper文件所在位置--> 
        <property name="mapperLocations" value="classpath:com/emerson/suzhou/mapping/*.xml"></property>   
    </bean>  

    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.emerson.suzhou.dao" />  
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
    </bean>  
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>  
</beans>  

 

在这个配置文件中,我们指定了:

 

      1. 数据源:用于连接目标数据库

 

      2. Spring扫描路径:会扫描指定路径下的所有Component,为后面的依赖注入做准备。如果我们需要对Mybatis进行一些特别设置,可以在这里指定配置文件的路径

 

      3. 映射文件路径:Mybatis会在指定路径加下加载数据表是映射文件

 

      4. Dao接口包名称:对应着每个数据表的映射文件,我们都会为其编写一个接口

 

 

记得别忘了在web.xml中加入applicationContext.xml文件的配置

<!-- spring-mybatis configuration file location -->  
<context-param>  
    <param-name>contextConfigLocation</param-name>  
    <param-value>classpath:applicationContext.xml</param-value>  
</context-param>  

 

 

javabean

package com.emerson.suzhou.pojo;  
  
import java.sql.Timestamp;  
  
public class User {  
    private int userId;  
  
    private String userPassword;  
      
    private String userName;  
  
    private String nickName;  
  
    private String email;  
  
    private int isValid;  
  
    private Timestamp createdTime;  
  
    private Timestamp updateTime;  
  
    //setter , getter ...  
}  

 

 

Mapper.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="com.emerson.suzhou.dao.IUserDao">  

    <!-- sql查询的字段 -->
    <sql id="columns">user_id, user_name, user_password, nick_name, email,  
        is_valid, created_time, update_time  
    </sql>  
  
    <!-- 查询后的结果集映射 -->
    <resultMap id="userResult" type="com.emerson.suzhou.pojo.User">  
        <id property="userId" column="user_id" />  
        <result property="userName" column="user_name" />  
        <result property="userPassword" column="user_password" />  
        <result property="nickName" column="nick_name" />  
        <result property="email" column="email" />  
        <result property="isValid" column="is_valid" />  
        <result property="createdTime" column="created_time" />  
        <result property="updateTime" column="update_time" />  
    </resultMap>  
  
    <!-- 根据传入的Id值,到数据库中查询记录 -->  
    <select id="getById" parameterType="int" resultMap="userResult">  
        SELECT  
        <include refid="columns"></include>  
        FROM sys_user WHERE user_id = #{id}  
    </select>  
</mapper>  

 

 

Dao接口

package com.emerson.suzhou.dao;  
  
import com.emerson.suzhou.pojo.User;  
  
public interface IUserDao {  
      
    public User getById(int id);  
  
}  

 

 

Service接口

package com.emerson.suzhou.service;  
  
import com.emerson.suzhou.pojo.User;  
  
public interface IUserService {  
    public User getById(int id);  
} 

 

 

Service实现类

package com.emerson.suzhou.service.impl;  
  
import javax.annotation.Resource;  
  
import org.springframework.stereotype.Service;  
  
import com.emerson.suzhou.dao.IUserDao;  
import com.emerson.suzhou.pojo.User;  
import com.emerson.suzhou.service.IUserService;  
  
@Service("userService")  
public class UserSerivceImpl implements IUserService {  
      
    @Resource  
    private IUserDao dao;  
  
    @Override  
    public User getById(int id) {  
        return this.dao.getById(id);  
    }  
}  

 

 

测试类

package com.emerson.suzhou;  
  
import static org.junit.Assert.*;  
  
import javax.annotation.Resource;  
  
import org.apache.log4j.Logger;  
import org.junit.After;  
import org.junit.Before;  
import org.junit.Test;  
import com.emerson.suzhou.pojo.User;  
import com.emerson.suzhou.service.IUserService;  
  
public class TestMybatis {  
      
    private static Logger logger = Logger.getLogger(TestMybatis.class);  
      
    @Resource  
    private IUserService userService = null;  
  
    @Before  
    public void setUp() throws Exception {  
    }  
  
    @After  
    public void tearDown() throws Exception {  
    }  
  
    @Test  
    public void test() {  
        assertNotNull(userService);  
        User user = userService.getById(1);  
        logger.info(user);  
    }  
  
}  

 

 

参考:

http://blog.csdn.net/chris_mao/article/details/48904711

分享到:
评论

相关推荐

    Spring整合Mybatis与SpringBoot整合Mybatis原理分析

    **Spring整合Mybatis原理分析** 在Java Web开发中,Spring框架以其强大的依赖注入和面向切面编程能力,成为了事实上的核心框架。Mybatis则是一个轻量级的持久层框架,它简化了数据库操作,提供了直观的SQL映射。将...

    spring整合mybatis时需要用到的配置文件

    在Spring整合MyBatis的过程中,我们需要在该文件中声明以下关键组件: 1. **数据源(DataSource)**: 数据源定义了如何连接到数据库。Spring支持多种数据源实现,如Apache的DBCP或Tomcat的JDBC数据源。配置中通常...

    Spring集成Mybatis所需jar包

    在Java开发领域,Spring...以上就是Spring集成Mybatis所需的jar包及集成过程中的关键配置和步骤。正确配置这些组件,可以让我们在享受Spring的便利性的同时,充分利用MyBatis的灵活性和高效性,实现高质量的Java应用。

    Spring集成MyBatis完整实例(分享)

    **七、Spring整合MyBatis配置** 1. 在Spring的配置文件`applicationContext.xml`中,配置DataSource、SqlSessionFactory和MapperScannerConfigurer。 2. 配置`mybatis-spring`的`SqlSessionFactoryBean`,指定...

    spring整合mybatis的jar_spring+mybatis_

    本文将深入探讨如何将Spring与MyBatis进行整合,以及在整合过程中可能遇到的问题和解决方案。 首先,整合Spring与MyBatis的核心在于Spring的DataSource、TransactionManager和SqlSessionFactoryBean。DataSource是...

    spring_mybatis 整合jar包

    3. MyBatis-Spring整合库:mybatis-spring。 4. 数据库驱动:如mysql-connector-java(对于MySQL)、ojdbc(对于Oracle)等。 5. 其他依赖库:如log4j或slf4j用于日志记录,asm、cglib等用于AOP代理。 整合过程大致...

    spring整合mybatis3需要的jar文件

    下面将详细介绍在Spring整合MyBatis3时所需的jar文件以及它们在整合过程中的作用。 1. **Spring核心模块**: - `spring-context`: 提供了应用上下文和依赖注入的核心接口,是Spring框架的基础。 - `spring-beans`...

    Spring整合Mybatis源码解析

    Spring整合Mybatis源码解析

    IDEA: spring+mybatis+springMVC SSM框架(三) spring 整合 Mybatis 以及分页插件 PageHelper

    在本项目中,我们主要探讨的是如何在IntelliJ IDEA(IDEA)环境下,整合Spring、Mybatis和SpringMVC(SSM)框架,并利用PageHelper分页插件实现高效的数据分页。以下是对这些技术及其整合过程的详细说明: 1. **...

    spring整合mybatis简单项目

    在本项目中,“Spring整合Mybatis简单项目”旨在教授初学者如何将两个流行的Java框架——Spring和Mybatis结合,以实现一个简单的影视资源管理系统。这个系统可能会包括资源的增删改查、分类管理等功能,帮助用户高效...

    官方Spring整合Mybatis所需jar包

    官方Spring整合Mybatis所需jar包,意味着我们需要确保安装的库文件能够支持这两者之间的无缝协作。Mybatis-3.4.6.jar是Mybatis的主要库文件,包含了Mybatis的核心功能,包括SQL映射文件解析、SQL执行、结果映射等。...

    Spring整合MyBatis完整实例 最新 +详细注释

    首先,Spring整合MyBatis主要是通过Spring的SqlSessionFactoryBean和MapperScannerConfigurer来完成的。SqlSessionFactoryBean用于创建MyBatis的SqlSessionFactory,它是MyBatis的核心,负责管理SqlSession。...

    Spring集成MyBatis示例

    这是一个web程序的后台代码,整合了spring mvc和mybatis的配置,实现了各地方的电量增删改查,该代码持久层利用mybatis框架,简化了dao层的实现,spring实现了controller层、service层。

    Spring-Mybatis整合

    将两者整合,形成的SSM(Spring、SpringMVC、Mybatis)架构是Java Web开发中的常见选择。现在我们来详细讨论一下Spring-Mybatis整合的相关知识点。 1. **Spring 概述**: Spring 是一个全面的企业级应用框架,它...

    spring整合mybatis所需jar包

    下面我们将详细探讨Spring整合MyBatis过程中所需的jar包以及它们的作用。 1. **Spring框架核心库**: - `spring-context`: 提供了核心的上下文功能,包括依赖注入(DI)和bean工厂。 - `spring-beans`: 包含了...

    Spring整合Mybatis

    Spring整合Mybatis是Java开发中常见的一种技术组合,它将Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)能力与Mybatis的灵活SQL映射功能结合,提高了开发效率并...

    Spring 整合mybatis(注解&xml版声明式事务).pdf

    例如Spring框架核心包、Spring JDBC包、MyBatis核心包以及MyBatis与Spring整合包等。文中提到的版本为Spring 5.2.7.RELEASE和MyBatis 3.5.5,MyBatis-Spring 2.0.4,同时也需要添加数据库连接驱动(如文中提到的...

    spring整合mybatis.docx

    总之,Spring整合MyBatis的过程涉及到依赖管理、配置文件设置、数据源和事务管理的配置,以及Mapper接口和XML文件的编写。这种整合方式使得开发人员可以充分利用Spring的IoC和AOP特性,同时享受MyBatis提供的灵活的...

Global site tag (gtag.js) - Google Analytics