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原理分析** 在Java Web开发中,Spring框架以其强大的依赖注入和面向切面编程能力,成为了事实上的核心框架。Mybatis则是一个轻量级的持久层框架,它简化了数据库操作,提供了直观的SQL映射。将...
在Spring整合MyBatis的过程中,我们需要在该文件中声明以下关键组件: 1. **数据源(DataSource)**: 数据源定义了如何连接到数据库。Spring支持多种数据源实现,如Apache的DBCP或Tomcat的JDBC数据源。配置中通常...
在Java开发领域,Spring...以上就是Spring集成Mybatis所需的jar包及集成过程中的关键配置和步骤。正确配置这些组件,可以让我们在享受Spring的便利性的同时,充分利用MyBatis的灵活性和高效性,实现高质量的Java应用。
**七、Spring整合MyBatis配置** 1. 在Spring的配置文件`applicationContext.xml`中,配置DataSource、SqlSessionFactory和MapperScannerConfigurer。 2. 配置`mybatis-spring`的`SqlSessionFactoryBean`,指定...
本文将深入探讨如何将Spring与MyBatis进行整合,以及在整合过程中可能遇到的问题和解决方案。 首先,整合Spring与MyBatis的核心在于Spring的DataSource、TransactionManager和SqlSessionFactoryBean。DataSource是...
3. MyBatis-Spring整合库:mybatis-spring。 4. 数据库驱动:如mysql-connector-java(对于MySQL)、ojdbc(对于Oracle)等。 5. 其他依赖库:如log4j或slf4j用于日志记录,asm、cglib等用于AOP代理。 整合过程大致...
下面将详细介绍在Spring整合MyBatis3时所需的jar文件以及它们在整合过程中的作用。 1. **Spring核心模块**: - `spring-context`: 提供了应用上下文和依赖注入的核心接口,是Spring框架的基础。 - `spring-beans`...
Spring整合Mybatis源码解析
在本项目中,我们主要探讨的是如何在IntelliJ IDEA(IDEA)环境下,整合Spring、Mybatis和SpringMVC(SSM)框架,并利用PageHelper分页插件实现高效的数据分页。以下是对这些技术及其整合过程的详细说明: 1. **...
在本项目中,“Spring整合Mybatis简单项目”旨在教授初学者如何将两个流行的Java框架——Spring和Mybatis结合,以实现一个简单的影视资源管理系统。这个系统可能会包括资源的增删改查、分类管理等功能,帮助用户高效...
官方Spring整合Mybatis所需jar包,意味着我们需要确保安装的库文件能够支持这两者之间的无缝协作。Mybatis-3.4.6.jar是Mybatis的主要库文件,包含了Mybatis的核心功能,包括SQL映射文件解析、SQL执行、结果映射等。...
首先,Spring整合MyBatis主要是通过Spring的SqlSessionFactoryBean和MapperScannerConfigurer来完成的。SqlSessionFactoryBean用于创建MyBatis的SqlSessionFactory,它是MyBatis的核心,负责管理SqlSession。...
这是一个web程序的后台代码,整合了spring mvc和mybatis的配置,实现了各地方的电量增删改查,该代码持久层利用mybatis框架,简化了dao层的实现,spring实现了controller层、service层。
将两者整合,形成的SSM(Spring、SpringMVC、Mybatis)架构是Java Web开发中的常见选择。现在我们来详细讨论一下Spring-Mybatis整合的相关知识点。 1. **Spring 概述**: Spring 是一个全面的企业级应用框架,它...
下面我们将详细探讨Spring整合MyBatis过程中所需的jar包以及它们的作用。 1. **Spring框架核心库**: - `spring-context`: 提供了核心的上下文功能,包括依赖注入(DI)和bean工厂。 - `spring-beans`: 包含了...
Spring整合Mybatis是Java开发中常见的一种技术组合,它将Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)能力与Mybatis的灵活SQL映射功能结合,提高了开发效率并...
例如Spring框架核心包、Spring JDBC包、MyBatis核心包以及MyBatis与Spring整合包等。文中提到的版本为Spring 5.2.7.RELEASE和MyBatis 3.5.5,MyBatis-Spring 2.0.4,同时也需要添加数据库连接驱动(如文中提到的...
总之,Spring整合MyBatis的过程涉及到依赖管理、配置文件设置、数据源和事务管理的配置,以及Mapper接口和XML文件的编写。这种整合方式使得开发人员可以充分利用Spring的IoC和AOP特性,同时享受MyBatis提供的灵活的...