Spring入门4 Spring和MyBatis整合 事物管理

2018年1月25日13:27:30

Spring入门4 Spring和MyBatis整合 事物管理如果异常,数据库是不会修改的,保证数据的一致性准确性。

 

 

步骤

//  第一步 新建项目把一堆包粘贴到lib里添加依赖
//  
//  第二步 把建设Spring 把mybatis-config.xml和log4j.properties和applicationContext.xml在SRC里
//  
//  第三步 applicationContext.xml文件第一个bean的url行改库名字
//  
//  第四步 com.bdqn.entity包创建User实体类 序列号 set get toString
//  
//  第五步 com.bdqn.dao 包创建 UserMapper.java接口 写增删改查模糊查抽象方法 把UserMapper.xml粘贴进去 命名空间写到包名.接口名 id是各个抽象方法名字
//  
//  第六步 com.bdqn.service 创建UserService接口 粘贴抽象方法
//  
//  第七步 com.bdqn.serviceimpl包实现UserService接口 私有化dao包里的接口  private UserMapper userMapper; set get 方法 重写方法 返回的是userMapper。方法名
//  
//  第八步 applicationContext.xml文件配置DAO和配置业务Bean里 注意修改包名类名
//  
//  第九步 测试类就根据id获得bian了

 

 

 

 

 

 

 

创建数据库的语句

//  CREATE DATABASE USER CHAR SET utf8;
//  USE USER;
//  CREATE TABLE USER(
//   uId INT(20)AUTO_INCREMENT NOT NULL PRIMARY KEY ,
//   uName VARCHAR(20),
//   uPwd VARCHAR(20)
//  )CHARSET="utf8";
//  INSERT INTO USER VALUES(1,"张三","123");
//  INSERT INTO USER(uName,uPwd) VALUE("李四","456");
//  INSERT INTO USER(uName,uPwd) VALUE("王五","789");
//  INSERT INTO USER(uName,uPwd) VALUE("杨六","741");
//  UPDATE USER SET uName="教的授",uPwd="677" WHERE uId=5;
//  DELETE FROM USER WHERE uId=4;
//  SELECT * FROM USER WHERE uName LIKE "%老%";

 

 

 

 

 

 

测试类的main方法测试

  User u=new User();
  u.setuId(7);
  u.setuName("老铁dd头");
  u.setuPwd("666878");
  int num=userService.addUser(u);
  System.out.println(num);
  
//  User u=new User();
//  u.setuId(7);
//  u.setuName("老铁头");
//  u.setuPwd("6667");
//  int num=userService.updateUser(u);
//  System.out.println(num);
  
  
//  User u=new User();
//  u.setuId(3);
//  u.setuName("老w铁头");
//  u.setuPwd("66d67");
//  int num=userService.delUser(u);
//  System.out.println(num);
  
//  User u=new User();
//  u.setuId(39);
//  u.setuName("铁");
//  u.setuPwd("6644d67");
//  List<User> list=userService.mohu(u);
//  for (User user : list) {
//   System.out.println(user.toString());
//  }

 

 

 

 

 

 

 

 

 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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

 <!-- 第一个bean是读取以前JDBC的数据库驱动XML文件 第一行第固定的 不要带 后面是改库名 用户名 密码 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <!-- <property name="url">
            <value><![CDATA[jdbc:mysql://127.0.0.1:3306/user?
                    useUnicode=true&characterEncoding=utf-8]]></value>
        </property> -->
       
        <!-- 这一个连接到名叫user的数据库 -->
       
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/user?
                        useUnicode=true&amp;characterEncoding=utf-8" />
        <property name="username" value="root" />
        <property name="password" value="root" />
    </bean>

    <!-- 配置SqlSessionFactoryBean 是以前读取MyBatis的mybatis-config.xml文件-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 引用数据源组件 驱动-->
        <property name="dataSource" ref="dataSource" />
        <!-- 引用MyBatis配置文件中的配置 mybatis核心XML-->
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <!-- 配置SQL映射文件信息 -->
        <!-- <property name="mapperLocations">
            <list>
                <value>classpath:cn/smbms/dao/**/*.xml</value>
            </list>
        </property> -->
    </bean>
   
    <!-- 配置DAO -->
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
     <!-- value改包名.接口名 可以点过去就OK-->
        <property name="mapperInterface" value="com.bdqn.dao.UserMapper" />
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>
   
    <!-- 配置业务Bean -->
    <!-- 改包名.serviceImpl所在 能点过去就OK-->
    <bean id="userService" class="com.bdqn.serviceimpl.UserServiceImpl">
        <property name="userMapper" ref="userMapper" />
    </bean>
   
     <!-- 定义事务管理器  为什么使用事物 保持数据的一致性 准确性-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <tx:advice id="txAdvice">
        <tx:attributes>
                  <tx:method name="find*" propagation="SUPPORTS" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="del*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>
    <!-- 定义切面 -->
    <aop:config>
    <!-- expression="execution(* com.bdqn.service..*.*(..))" -->
        <aop:pointcut id="serviceMethod"
            expression="execution(* com.bdqn.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
    </aop:config>
   
</beans>

 

 mybatis-config.xml 文件

取别名 到包就可以

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--类型别名 -->
    <typeAliases>
        <package name="com.bdqn.entity" />
    </typeAliases>
</configuration>

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值