1. driver=com.mysql.jdbc.Driver
  2. url=jdbc:mysql://localhost:3306/test
  3. user=LF
  4. password=LF
  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:p="http://www.springframework.org/schema/p"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:aop="http://www.springframework.org/schema/aop"
  7. xmlns:context="http://www.springframework.org/schema/context"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/beans
  10. http://www.springframework.org/schema/beans/spring-beans.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context.xsd
  13. http://www.springframework.org/schema/aop
  14. http://www.springframework.org/schema/aop/spring-aop.xsd
  15. http://www.springframework.org/schema/tx
  16. http://www.springframework.org/schema/tx/spring-tx.xsd">
  17.  
  18. <!-- 引入外部文件 -->
  19. <context:property-placeholder location="classpath:jdbc.properties" />
  20. <!-- 配置包扫描 -->
  21. <context:component-scan base-package="cn.zr"/>
  22. <!-- 启用自动代理 -->
  23. <aop:aspectj-autoproxy/>
  24.  
  25. <!-- 配置事务传播属性 -->
  26. <tx:advice id="advice" transaction-manager="transactionManager">
  27. <tx:attributes>
  28. <!-- 所有已get开头的方法都是只读,换句话说,get开始的方法不参与事务
  29. -->
  30. <tx:method name="get*" read-only="true" />
  31. <!-- 其他方法使用默认配置 -->
  32. <tx:method name="*" rollback-for="java.lang.Throwable" />
  33. </tx:attributes>
  34. </tx:advice>
  35.  
  36. <aop:config>
  37. <!-- 配置切点 -->
  38. <aop:pointcut expression="execution(* cn.zr.pringandmybatis.service.impl.*.*(..))" id="pointcut"/>
  39. <!-- 将通知(事务属性)与切点连接一起 -->
  40. <aop:advisor advice-ref="advice" pointcut-ref="pointcut" />
  41. </aop:config>
  42.  
  43. <!-- 配置数据源 -->
  44. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  45. <property name="driverClassName" value="${driver}"></property>
  46. <property name="url" value="${url}"></property>
  47. <property name="username" value="${user}"></property>
  48. <property name="password" value="${password}"></property>
  49. </bean>
  50.  
  51. <!-- 配置事务管理器 -->
  52. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  53. <property name="dataSource" ref="dataSource"></property>
  54. </bean>
  55.  
  56. <!-- mybatis配置 -->
  57. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  58. <!-- 关联数据源 -->
  59. <property name="dataSource" ref="dataSource"/>
  60. <!-- 配置mybatis配置文件的路径 -->
  61. <property name="configLocation" value="classpath:mybatis-config.xml"/>
  62. <!-- 配置要映射类包的路径 -->
  63. <property name="typeAliasesPackage" value="cn.zr.pringandmybatis.pojo"/>
  64. <property name="mapperLocations">
  65. <list>
  66. <value>classpath:cn/zr/pringandmybatis/mapper/xml/*Mapper.xml</value>
  67. </list>
  68. </property>
  69. </bean>
  70.  
  71. <!-- MyBatis扫描 -->
  72. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  73. <!-- 指定对应的接口跟Maper.xml文件映射所在的包 -->
  74. <property name="basePackage" value="cn.zr.pringandmybatis.mapper"/>
  75. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  76. </bean>
  77.  
  78. </beans>
  1. <!DOCTYPE configuration
  2. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4.  
  5. <configuration>
  6. </configuration>
  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="cn.zr.pringandmybatis.mapper.UserMapper">
  7.  
  8. <!-- 配置数据库字段与实体类属性的对应关系 -->
  9. <resultMap type="User" id="userinfo">
  10. <id column="username" property="name" />
  11. <result column="age" property="age"/>
  12. </resultMap>
  13.  
  14. <!-- 查询所有用户的信息 -->
  15. <select id="getAllUserInfo" resultMap="userinfo">
  16. select username,age from user
  17. </select>
  18.  
  19. <!-- 添加用户 -->
  20. <insert id="addUser" parameterType="User">
  21. insert into user (username,age) values(#{name},#{age})
  22. </insert>
  23.  
  24. <!-- 更新用户 -->
  25. <update id="updateUser" parameterType="User">
  26. update user set age = #{age} where username=#{name}
  27. </update>
  28.  
  29. <delete id="deleteUser" parameterType="java.lang.String">
  30. delete from user where username=#{name}
  31. </delete>
  32.  
  33. </mapper>
  1. package cn.zr.pringandmybatis.pojo;
  2.  
  3. public class User {
  4.  
  5. private String name;
  6. private int age;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public int getAge() {
  14. return age;
  15. }
  16. public void setAge(int age) {
  17. this.age = age;
  18. }
  19. public User() {
  20. }
  21. public User(String name, int age) {
  22. this.name = name;
  23. this.age = age;
  24. }
  25. @Override
  26. public String toString() {
  27. return "User [name=" + name + ", age=" + age + "]";
  28. }
  29.  
  30. }
  1. package cn.zr.pringandmybatis.mapper;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.stereotype.Component;
  6.  
  7. import cn.zr.pringandmybatis.pojo.User;
  8.  
  9. @Component
  10. public interface UserMapper {
  11.  
  12. /**
  13. * 获取所有用户的信息
  14. * @return 用户对象的集合
  15. */
  16. public List<User> getAllUserInfo();
  17.  
  18. /**
  19. * 添加用户
  20. * @param user 被添加的用户
  21. * @return 返回成功操作数据库的数据量
  22. */
  23. public int addUser(User user);
  24.  
  25. /**
  26. * 更新用户信息
  27. * @param user 被更新的用户
  28. * @return 返回成功操作数据库的数据量
  29. */
  30. public int updateUser(User user);
  31.  
  32. /**
  33. * 通过用户名删除用户
  34. * @param name 用户名
  35. * @return 返回成功操作数据库的数据量
  36. */
  37. public int deleteUser(String name);
  38. }
  1. package cn.zr.pringandmybatis.service;
  2.  
  3. import java.util.List;
  4.  
  5. import cn.zr.pringandmybatis.pojo.User;
  6.  
  7. public interface OperationService {
  8.  
  9. /**
  10. * 获取所有的用户
  11. * @return 返回用户集合
  12. */
  13. List<User> getAllUserInfo();
  14.  
  15. /**
  16. * 添加用户
  17. * @param user 被添加的用户
  18. * @return 返回成功操作数据库的数据量
  19. */
  20. int addUser(User user);
  21.  
  22. /**
  23. * 更新用户信息
  24. * @param user 被更新的用户
  25. * @return 返回成功操作数据库的数据量
  26. */
  27. int updateUser(User user);
  28.  
  29. /**
  30. * 通过用户名删除用户
  31. * @param name 用户名
  32. * @return 返回成功操作数据库的数据量
  33. */
  34. int deleteUser(String name);
  35.  
  36. }
  1. package cn.zr.pringandmybatis.service.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.annotation.Resource;
  6.  
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Component;
  9.  
  10. import cn.zr.pringandmybatis.mapper.UserMapper;
  11. import cn.zr.pringandmybatis.pojo.User;
  12. import cn.zr.pringandmybatis.service.OperationService;
  13.  
  14. @Component
  15. public class OperationServiceImpl implements OperationService {
  16.  
  17. @Resource
  18. private UserMapper userMapper;
  19.  
  20. @Override
  21. public List<User> getAllUserInfo() {
  22.  
  23. return userMapper.getAllUserInfo();
  24. }
  25.  
  26. @Override
  27. public int addUser(User user) {
  28. return userMapper.addUser(user);
  29. }
  30.  
  31. @Override
  32. public int updateUser(User user) {
  33. return userMapper.updateUser(user);
  34. }
  35.  
  36. @Override
  37. public int deleteUser(String name) {
  38. return userMapper.deleteUser(name);
  39. }
  40.  
  41. }
  1. package cn.zr.pringandmybatis.utils;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.context.ApplicationContext;
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;
  7.  
  8. import cn.zr.pringandmybatis.pojo.User;
  9. import cn.zr.pringandmybatis.service.OperationService;
  10.  
  11. public class TestClass {
  12.  
  13. public static void main(String[] args) {
  14. ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  15. //获取实现类对象
  16. OperationService operationService = (OperationService)ac.getBean(OperationService.class);
  17. /*//查询所有的数据
  18. List<User> list = operationService.getAllUserInfo();
  19. for (User user : list) {
  20. System.out.println(user);
  21. }*/
  22.  
  23. /*// 添加数据
  24. User user = new User("甘", 25);
  25. int count = operationService.addUser(user);
  26. if (count>0) {
  27. System.out.println("添加成功");
  28. }else {
  29. System.out.println("添加失败");
  30. }*/
  31.  
  32. /*// 修改
  33. User user = new User("甘雨路", 20);
  34. int count = operationService.updateUser(user);
  35. if (count>0) {
  36. System.out.println("修改成功");
  37. }else {
  38. System.out.println("修改失败");
  39. }*/
  40.  
  41. // 删除
  42. int count = operationService.deleteUser("甘露");
  43. if (count>0) {
  44. System.out.println("删除成功");
  45. }else {
  46. System.out.println("删除失败");
  47. }
  48.  
  49. }
  50. }

mybatis spring 框架整合的更多相关文章

  1. Mybatis+Spring框架整合

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

  2. Spring+SpringMVC+MyBatis+Maven框架整合

    本文记录了Spring+SpringMVC+MyBatis+Maven框架整合的记录,主要记录以下几点 一.Maven需要引入的jar包 二.Spring与SpringMVC的配置分离 三.Sprin ...

  3. Spring 框架整合Struts2 框架和 Hibernate 框架

    1. Spring 框架整合 Struts2 框架 // [第一种整合方式(不推荐)](http://www.cnblogs.com/linkworld/p/7718274.html) // 从 Se ...

  4. 使用Spring框架整合Java Mail

    我的博客名为黑客之谜,今天演示的案例中会出现我的邮箱,还不赶紧收藏!我现在是小白,但是随着时间的流逝,我会逐渐向大神走进,所以,喜欢我的,或者喜欢大神的,点一波关注吧!顺便说一下,双十二快到了,有什么 ...

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

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

  6. 【Java】MyBatis与Spring框架整合(一)

    本文将利用 Spring 对 MyBatis 进行整合,在对组件实现解耦的同时,还能使 MyBatis 框架的使用变得更加方便和简单. 整合思路 作为 Bean 容器,Spring 框架提供了 IoC ...

  7. spring 框架整合mybatis的源码分析

    问题:spring 在整合mybatis的时候,我们是看不见sqlSessionFactory,和sqlsession(sqlsessionTemplate 就是sqlsession的具体实现)的,这 ...

  8. Spring+mybatis+struts框架整合的配置具体解释

    学了非常久的spring+mybatis+struts.一直都是单个的用他们,或者是两两组合用过,今天总算整合到一起了,配置起来有点麻烦.可是配置完一次之后.就轻松多了,那么框架整合配置具体解释例如以 ...

  9. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSM(Spring+Spring MVC+MyBatis)框架整合搭建详细步骤

    因为 Spring MVC 是 Spring 框架中的一个子模块,所以 Spring 与 SpringMVC 之间不存在整合的问题.实际上,SSM 框架的整合只涉及 Spring 与 MyBatis ...

随机推荐

  1. Mac OS X显示隐藏文件命令

    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder //显示隐藏文件 defaults wr ...

  2. 【spring源码学习】spring的IOC容器在初始化bean过程

    [一]初始化IOC的bean的时候Spring会执行的一些回调方法 (1)spring bean创建的前置处理 =>ApplicationContextAwareProcessor 在创建bea ...

  3. LG4779 【模板】单源最短路径(标准版)

    题意 给定一个 \(N\) 个点,\(M\) 条有向边的带非负权图,请你计算从 \(S\) 出发,到每个点的距离. 数据保证你能从 \(S\) 出发到任意点. \(1≤N≤100000\): \(1≤ ...

  4. win10开始键点击无效果

    1.在键盘上按下win+R键,或在开始菜单图标上点击右键选择运行: 2.输入powershell,按下“确定”运行:3.在窗口里输入或复制粘贴以下命令,注意只有一行: Get-AppxPackage ...

  5. cookie跨站脚本漏洞解决方案

    近日项目碰到一个跨脚本注入的问题: 这安全测评工具也是厉害了,直接将脚本注入到cookie里头,以前没有碰到这样的情况. 之前写过一篇文章过滤跨脚本注入的问题.<浅谈XSS攻击原理与解决方法&g ...

  6. CENTOS7配置静态IP后无法ping通外部网络的问题

    我今天想谈论的并不是如何配置静态IP,这样的话题已经有好多高手再谈. 我想谈的是为什么,我按照他们的教程无论如何也要发生各种问题,没办法连接外网的问题. 先给大家看我的最终版配置方案:我只修改了一个文 ...

  7. ui-router 1.0以上的 $stateChangeStart

    ui-router transitionhooks 统一控制路由跳转, 前台控制如果没有登录就跳转到登录页面, 当然也可以在后台控制, 如果没有登录就返回对应的错误码, 然后在response中直接跳 ...

  8. 对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。

    <property name="connection.url">jdbc:mysql://127.0.0.1/cache?useUnicode=true&cha ...

  9. 运行maven打出来的jar包报错:Unable to locate Spring NamespaceHandler for XML schema namespace

    问题背景:新建了一个maven项目,打了一个可运行jar包,依赖了spring几个jar包,一跑就报错了 E:\workspace\point-circle\target>java -jar p ...

  10. javascript中原型学习

    学习地址:http://www.cnblogs.com/wangfupeng1988/tag/%E5%8E%9F%E5%9E%8B/