一、建立数据库、建表

二、新建maven项目

三、添加依赖

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>3.8.1</version>
  6. <scope>test</scope>
  7. </dependency>
  8. <!-- mybatis -->
  9. <dependency>
  10. <groupId>org.mybatis</groupId>
  11. <artifactId>mybatis</artifactId>
  12. <version>3.5.0</version>
  13. </dependency>
  14.  
  15. <dependency>
  16. <groupId>org.mybatis</groupId>
  17. <artifactId>mybatis-spring</artifactId>
  18. <version>1.3.0</version>
  19. </dependency>
  20. <!-- mysql -->
  21. <dependency>
  22. <groupId>mysql</groupId>
  23. <artifactId>mysql-connector-java</artifactId>
  24. <version>8.0.13</version>
  25. </dependency>
  26.  
  27. <!-- spring -->
  28. <dependency>
  29. <groupId>org.springframework</groupId>
  30. <artifactId>spring-core</artifactId>
  31. <version>4.3.2.RELEASE</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>org.springframework</groupId>
  35. <artifactId>spring-context</artifactId>
  36. <version>4.3.2.RELEASE</version>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-test</artifactId>
  41. <version>4.3.2.RELEASE</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.springframework</groupId>
  45. <artifactId>spring-tx</artifactId>
  46. <version>4.3.2.RELEASE</version>
  47. </dependency>
  48. <dependency>
  49. <groupId>org.springframework</groupId>
  50. <artifactId>spring-beans</artifactId>
  51. <version>4.3.2.RELEASE</version>
  52. </dependency>
  53. <dependency>
  54. <groupId>org.springframework</groupId>
  55. <artifactId>spring-jdbc</artifactId>
  56. <version>4.3.2.RELEASE</version>
  57. </dependency>
  58. <!-- c3p0 -->
  59. <dependency>
  60. <groupId>com.mchange</groupId>
  61. <artifactId>c3p0</artifactId>
  62. <version>0.9.5.2</version>
  63. </dependency>
  64. <dependency>
  65. <groupId>commons-io</groupId>
  66. <artifactId>commons-io</artifactId>
  67. <version>2.4</version>
  68. </dependency>
  69.  
  70. </dependencies>

四、建立包,搭建项目架构

五、根据数据库写对应的pojo类

  1. package com.dongtian.MyBatis_Spring.pojo;
  2.  
  3. import java.util.Date;
  4.  
  5. public class User {
  6. private int id;
  7. private String username;
  8. private Date birthday;
  9. private String sex;
  10. private String address;
  11.  
  12. public int getId() {
  13. return id;
  14. }
  15.  
  16. public void setId(int id) {
  17. this.id = id;
  18. }
  19.  
  20. public String getUsername() {
  21. return username;
  22. }
  23.  
  24. public void setUsername(String username) {
  25. this.username = username;
  26. }
  27.  
  28. public Date getBirthday() {
  29. return birthday;
  30. }
  31.  
  32. public void setBirthday(Date birthday) {
  33. this.birthday = birthday;
  34. }
  35.  
  36. public String getSex() {
  37. return sex;
  38. }
  39.  
  40. public void setSex(String sex) {
  41. this.sex = sex;
  42. }
  43.  
  44. public String getAddress() {
  45. return address;
  46. }
  47.  
  48. public void setAddress(String address) {
  49. this.address = address;
  50. }
  51.  
  52. @Override
  53. public String toString() {
  54. return "User [id=" + id + ", username=" + username + ", birthday=" + birthday + ", sex=" + sex + ", address="
  55. + address + "]";
  56. }
  57. }

六、写映射器和接口

  1. package com.dongtian.MyBatis_Spring.mapper;
  2.  
  3. import org.springframework.stereotype.Repository;
  4.  
  5. import com.dongtian.MyBatis_Spring.pojo.User;
  6. @Repository
  7. public interface UserMapper {
  8. public void insertUser(User user);
  9. }
  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.  
  6. <mapper namespace="com.dongtian.MyBatis_Spring.mapper.UserMapper">
  7. <insert id="insertUser" parameterType="com.dongtian.MyBatis_Spring.pojo.User">
  8. insert into user(username,sex,address)
  9. values(#{username},#{sex},#{address})
  10. </insert>
  11. </mapper>

七、写业务层接口和接口实现类

  1. package com.dongtian.MyBatis_Spring.service;
  2.  
  3. import com.dongtian.MyBatis_Spring.pojo.User;
  4.  
  5. public interface UserService {
  6. public void insertUser(User user);
  7. }
  1. package com.dongtian.MyBatis_Spring.serviceImp;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import org.springframework.transaction.annotation.Isolation;
  6. import org.springframework.transaction.annotation.Propagation;
  7. import org.springframework.transaction.annotation.Transactional;
  8.  
  9. import com.dongtian.MyBatis_Spring.mapper.UserMapper;
  10. import com.dongtian.MyBatis_Spring.pojo.User;
  11. import com.dongtian.MyBatis_Spring.service.UserService;
  12.  
  13. @Service
  14. public class UserServiceImp implements UserService{
  15. @Autowired
  16. private UserMapper userMapper = null;
  17.  
  18. @Transactional(propagation = Propagation.REQUIRES_NEW,
  19. isolation=Isolation.READ_COMMITTED
  20. )
  21. public void insertUser(User user) {
  22. userMapper.insertUser(user);
  23. }
  24.  
  25. }

八、简单测试

  1. package com.dongtian.MyBatis_Spring;
  2.  
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5.  
  6. import com.dongtian.MyBatis_Spring.pojo.User;
  7. import com.dongtian.MyBatis_Spring.service.UserService;
  8.  
  9. public class TestMyDemo {
  10. public static void main(String[] args) {
  11. //加载配置文件
  12. ApplicationContext applicationContext =
  13. new ClassPathXmlApplicationContext("applicationContext.xml");
  14. //获取代理对象
  15. UserService userService = applicationContext.getBean(UserService.class);
  16. //通过接口对象调用接口方法
  17. User user = new User();
  18. user.setUsername("王力宏");
  19. user.setSex("男");
  20. user.setAddress("上海");
  21. userService.insertUser(user);
  22. System.out.println(user);
  23. }
  24. }

九、流程逻辑比较简单:

  通过拿到业务层接口的代理对象,代理对象调用接口中的方法,接口方法调用映射器中的方法,由mapper操作数据库。

十、重点在配置文件中

(1)sqlMapConfig.xml : 大部分事情都交给了spring

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <mappers>
  7. <package name="com.dongtian.MyBatis_Spring.mapper"/>
  8. </mappers>
  9. </configuration>

(2)applicationContext.xml

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  7. http://www.springframework.org/schema/mvc
  8. http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-3.2.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
  15.  
  16. <!-- 启动扫描机制 -->
  17. <context:annotation-config/>
  18. <context:component-scan base-package="com.dongtian.MyBatis_Spring.*"/>
  19. <!-- 加载配置文件 -->
  20. <context:property-placeholder location="classpath:db.properties" />
  21. <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  22. <property name="driverClass" value="${jdbc.driver}"></property>
  23. <property name="jdbcUrl" value="${jdbc.url}"></property>
  24. <property name="user" value="${jdbc.username}"></property>
  25. <property name="password" value="${jdbc.password}"></property>
  26. </bean>
  27.  
  28. <!-- sqlSessinFactory -->
  29. <bean id="sqlSFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  30. <property name="configLocation" value="sqlMapConfig.xml" />
  31. <property name="dataSource" ref="datasource" />
  32. </bean>
  33.  
  34. <!-- mapper批量扫描,从mapper包中扫描出mapper接口,自动创建代理对象并且在spring容器中注册
  35. 自动扫描出来的mapper的bean的id为mapper类名(首字母小写)
  36. -->
  37. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  38. <property name="basePackage" value="com.dongtian.MyBatis_Spring.mapper"/>
  39. <property name="sqlSessionFactoryBeanName" value="sqlSFactory"/>
  40. <property name="annotationClass" value="org.springframework.stereotype.Repository"></property>
  41. </bean>
  42.  
  43. <!-- 事务管理器配置数据源事务 -->
  44. <bean id="transactionManager"
  45. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  46. <property name="dataSource" ref="datasource"></property>
  47. </bean>
  48. <!-- 使用注解来定义事务 -->
  49. <tx:annotation-driven transaction-manager="transactionManager"/>
  50.  
  51. </beans>

Mybatis+Spring的整合练习的更多相关文章

  1. 学习spring第五天 mybatis+spring的整合(maven多模块数据查询使用了分页和连接池),以及aop

    mybatis+spring的整合: 导入的依赖:1.数据库连接:mysql-connector-java 2.连接池:druid 3.servlet:javax.servlet-api 4.jstl ...

  2. Mybatis+Spring框架整合

    1.整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代 ...

  3. mybatis spring 框架整合

    driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test user=LF password=LF <?xml versi ...

  4. springMVC+MyBatis+Spring+maven 整合(1)

    1.首先第一步.部署mybatis ; 1.1 下载myBatis MyBits前身是iBitis,相对于Hibernate而言,它是半自动化ORM框架.由于老板对性能要求的比较苛刻,不得不放弃我亲爱 ...

  5. MyBatis+Spring+Spring MVC整合开发

    MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuy ...

  6. idea spring+springmvc+mybatis环境配置整合详解

    idea spring+springmvc+mybatis环境配置整合详解 1.配置整合前所需准备的环境: 1.1:jdk1.8 1.2:idea2017.1.5 1.3:Maven 3.5.2 2. ...

  7. Spring+Mybatis基于注解整合Redis

    基于这段时间折腾redis遇到了各种问题,想着整理一下.本文主要介绍基于Spring+Mybatis以注解的形式整合Redis.废话少说,进入正题. 首先准备Redis,我下的是Windows版,下载 ...

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

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

  9. springMVC+mybatis+spring整合案例

    1.web.xml a:配置spring监听,使web容器在启动时加载spring的applicationContext.xml <listener> <listener-class ...

随机推荐

  1. P1028

    一开始没看懂题,看了题解才明白的 = =.思路是,先找规律,会发现有重合部分,利用这些重合部分,写出递推公式. num = 0 时,只有 1 种组合: num = 1 时,只有 1 种组合: num ...

  2. python实现直方图均衡化,理想高通滤波与高斯低通滤波

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验二,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验二. 由于时间紧张,代码没有进行任何优化, ...

  3. VBA 学习笔记 - 运算符

    学习资料:https://www.yiibai.com/vba/vba_operators.html 算术运算符 加减乘除模指,这个没啥特别的. 比较运算符 和 Lua 相比,判断相等变成了一个等于号 ...

  4. JDBC 通过读取文件进行初始化

  5. html 中js 如何给字符串加换行符

    var str = 你好'+"\n"+ '世界'; 这种写法在html中是会被识别为"你好\n世界" 那么如何保证其这么写会被识别,只需要在该div的样式中加入 ...

  6. 树莓派Raspberry实践笔记—显示分辨率配置

    转载:http://www.cnblogs.com/atsats/p/6607886.html 如果未接显示设备,使用VNC登录后,显示分辨率很小,应该是480p,导致使用很不方便. 这里通过修改/b ...

  7. Cisco AP-AP重置操作

    Resetting to Default Settings Using the MODE Button/spanFollow these steps to reset the access point ...

  8. 2016-2017学年第三次测试赛 习题E 林喵喵算术

    时间限制: 1 Sec  内存限制: 128 MB 提交: 70  解决: 25 提交统计讨论版 题目描述 给你两个八进制数,你需要在八进制计数法的情况下计算a-b. 如果结果为负数,你应该使用负号代 ...

  9. java操作nginx

    一,判断程序的部署环境是nginx还是windows /** * 判断操作系统是不是windows * * @return true:是win false:是Linux */ public stati ...

  10. ipfs 资料汇集

    目录 js ipfs u can use wikipeida here js ipfs https://github.com/ipfs/js-ipfs u can use wikipeida here ...