简单的来说,Spring主要用于在业务层(当然spring也有数据库交互的模块,个人觉得spring在这方面有一点不如mybatis),而mybatis主要用于数据持久化,在一个完整的项目中无论是业务代码,还是与数据库交互部分的代码缺一不可,下边我来说一下spring和mybatis整合方法。

1.导入依赖:(spring核心依赖包这里就不写了)

  

  1. <dependency>
  2. <groupId>org.mybatis</groupId>
  3. <artifactId>mybatis-spring</artifactId>
  4. <version>1.3.2</version>
  5. </dependency>
  6. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  7. <dependency>
  8. <groupId>org.mybatis</groupId>
  9. <artifactId>mybatis</artifactId>
  10. <version>3.4.1</version>
  11. </dependency>
  12.  
  13. <!--spring与Mybatis整合包-->
  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>5.1.32</version>
  5. </dependency>
  6. <!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
  7. <dependency>
  8. <groupId>c3p0</groupId>
  9. <artifactId>c3p0</artifactId>
  10. <version>0.9.1.2</version>
  11. </dependency>
  12. <!--jdbc依赖和数据源,这里我是用的是c3p0提供的,还有dbcp,和spring自带的-->
  1. <dependency>
  2. <groupId>org.springframework</groupId>
  3. <artifactId>spring-tx</artifactId>
  4. <version>5.1.0.RELEASE</version>
  5. </dependency>
  6. <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
  7. <dependency>
  8. <groupId>org.springframework</groupId>
  9. <artifactId>spring-jdbc</artifactId>
  10. <version>5.1.0.RELEASE</version>
  11. </dependency>
  12. <!--托管事务的依赖-->

2.创建数据表

3.编写java代码

实体类

  1. public class Account {
  2. private int accountid;
  3. private String accountname;
  4. private Double accountmonkey;
  5. //省略set、get方法
  6. }

DAO层接口

  1. //DAO层接口,不写实现类。
  2. public interface AccountDao {
  3. List<Account>getAll();//查询数据库中所有信息
  4. }

Service层接口

  1. public interface AccountService {
  2. List<Account> getAll();//查询所有
  3. }

Service层实现类

  1. public class AccountServiceImpl implements AccountService {
  2. //注入dao接口实例,省略set、get方法
  3. private AccountDao dao;
  4. @Override
  5. public List<Account> getAll() {
  6. return dao.getAll();
  7. }
  8. }

4.数据库连接参数(database.properties)

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3307/account
  3. jdbc.username=root
  4. jdbc.password=root

5.核心配置文件(applicationContext.xml)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. 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 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
  7. <!--引入外部配置文件,这里引入的是保存数据库连接参数的database.properties文件-->
  8. <context:property-placeholder location="classpath:database.properties"/>
  9.  
  10. <!--引入c3p0数据源-->
  11. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  12. <property name="driverClass" value="${jdbc.driver}"/>
  13. <property name="jdbcUrl" value="${jdbc.url}"/>
  14. <property name="user" value="${jdbc.username}"/>
  15. <property name="password" value="${jdbc.password}"/>
  16. </bean>
  17. <!--Mybatis核心配置-->
  18. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  19. <!--配置数据源-->
  20. <property name="dataSource" ref="dataSource"/>
  21. <!--小配置文件的目录-->
  22. <property name="mapperLocations" value="classpath:mapper/*.xml"/>
  23. <!--实体类别名-->
  24. <property name="typeAliasesPackage" value="com.cn.entity"/>
  25. </bean>
  26. <!--mapper代理对象,生成dao动态代理,也就是说每多一个DAO接口,就要创建一个这样的节点-->
  27. <bean id="accountDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
  28. <!--将sqlSessionFactory注入-->
  29. <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
  30. <!--接口注入-->
  31. <property name="mapperInterface" value="com.cn.dao.AccountDao"/>
  32. </bean>
  33. <!--service层bean实例-->
  34. <bean id="service" class="com.cn.service.impl.AccountServiceImpl">
  35. <property name="dao" ref="accountDao"></property>
  36. </bean>
  37. <!--mapper文件扫描,看情况使用(我没用过,应该是在sqlSessionFactory中没有做配置时可以这样配置)-->
  38. <!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  39. <property name="basePackage" value="/com.cn.dao"/>
  40. </bean>-->
  41. <!--开启事务,目前没啥用,就是个习惯-->
  42. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  43. <property name="dataSource" ref="dataSource"/>
  44. </bean>
  45.  
  46. </beans>

哦还有一个小配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.cn.dao.accountDao">
  6. <select id="getAll" resultType="Account">
  7. select * from account
  8. </select>
  9. </mapper>

大功告成,开始测试

  1. public class App
  2. {
  3. public static void main( String[] args )
  4. {
  5. ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
  6. AccountService bean = context.getBean(AccountService.class);
  7. System.out.println(bean.getAll());
  8. }
  9. }

下期使用存java配置方式进行配置

  

Spring+Mybais整合的更多相关文章

  1. struts2 spring mybatis 整合(test)

    这几天搭了个spring+struts2+mybatis的架子,练练手,顺便熟悉熟悉struts2. 环境:myEclipse10+tomcat7+jdk1.6(1.8的jre报错,所以换成了1.6) ...

  2. 【Java EE 学习 79 下】【动态SQL】【mybatis和spring的整合】

    一.动态SQL 什么是动态SQL,就是在不同的条件下,sql语句不相同的意思,曾经在“酒店会员管理系统”中写过大量的多条件查询,那是在SSH的环境中,所以只能在代码中进行判断,以下是其中一个多条件查询 ...

  3. 3.springMVC+spring+Mybatis整合Demo(单表的增删该查,这里主要是贴代码,不多解释了)

    前面给大家讲了整合的思路和整合的过程,在这里就不在提了,直接把springMVC+spring+Mybatis整合的实例代码(单表的增删改查)贴给大家: 首先是目录结构: 仔细看看这个目录结构:我不详 ...

  4. 由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”

    在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Myb ...

  5. spring+websocket整合

    java-websocket的搭建非常之容易,没用框架的童鞋可以在这里下载撸主亲自调教好的java-websocket程序: Apach Tomcat 8.0.3+MyEclipse+maven+JD ...

  6. Hibernate 与 Spring 的整合

    刚刚学习了hibernate和Spring的整合,现在来总结一下. 以实现一个功能为例,与大家分享一下整个过程. 需要实现的功能:建立一个Person类,该类包括name,sex,age,birtha ...

  7. Spring与Struts2整合VS Spring与Spring MVC整合

    Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的 ...

  8. struts2+hibernate-jpa+Spring+maven 整合(1)

    1.0.0 struts2 与 spring 的整合. 1.1.0 新建maven工程 , 编写pom.xml ,这里只需要简单的添加 一个组件就够了: 在myeclipse 生成的pom.xml 添 ...

  9. ASP.NET MVC Spring.NET 整合

    请注明转载地址:http://www.cnblogs.com/arhat 在整合这三个技术之前,首先得说明一下整合的步骤,俗话说汗要一口一口吃,事要一件一件做.同理这个三个技术也是.那么在整合之前,需 ...

随机推荐

  1. 关于自动化打包部署Jenkins的使用和配置

    (未写完整,待续...) 名词解释: 1.Jenkins中对svn进行操作,可通过插件和脚本两种方式进行. 插件方式 在插件管理中安装"Subversion Plug-in",即可 ...

  2. 化 Bernoulli 方程为一阶线性微分方程

    形如 $ {\displaystyle \frac{dy}{dx}+p(x)y=q(x)y^n(n\neq 0,1) \ \ \ \ \ (1)}$ 的方程为 Bernoulli 方程.现在我们考虑其 ...

  3. 1. 现代 javascript 用法 简介 及 babel

    简介 包含 ECMAScript 基本概念,babel 使用 ,eslint 使用 以及新语法的介绍 和使用经验 ECMAScript 概念 ECMASctipt 是一种由 Ecma (前身为欧洲计算 ...

  4. 计算机网络(6): http cookie

    Cookie作用: 1)帮助管理用户会话信息(用户需要记录的信息:登陆状态等) 2)跟踪浏览器的行为 3)用户自定义设置 实现方式: 当用户浏览带有Cookie的网站时,网站自动为其生成一个唯一的标志 ...

  5. share团队冲刺2

    团队冲刺第二天 昨天:在网上学习app开发的简单操作代码,实现了简单的输出界面,学会了添加按钮控件. 今天:继续昨天的进度,先进行登陆界面窗口的制作. 问题:目前只能在activity添加简单代码,复 ...

  6. Aras Innovator客户端批量下载关联文件

    <button onclick="btnDownload();" id="downfilebtn">批量下载关联文件</button> ...

  7. 函数返回值return

    #函数后面如果没有return系统会默认return none def ff(): print("打印return") return 15 # 函数在执行中遇到return就会停止 ...

  8. gitKraken取消/关闭全屏

    如果你找不到在哪里设置的 这是配置文件  注意 fullScreen 字段,改这个字段可以改变是不是全屏,改变之前先关闭软件, 文件目录 第二张图

  9. JavaSE--Comparator 和 Comparable 区别

    public interface Comparable<T> 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法 ...

  10. webapp项目vue框架点击按钮实现微信好友分享,朋友圈分享

    当时做这个这个效果真把人给*了,网上能搜到的基本是微信页面的分享,特征是方法是wx.**开头,不适用于app内.思路都是一样的,先调取服务(这里使用plus的内置方法),再发送分享请求 <tem ...