《Java Spring框架》通过Idea 整合Spring和Mybatis

Posted 加速丨世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Java Spring框架》通过Idea 整合Spring和Mybatis相关的知识,希望对你有一定的参考价值。

1. Jar包下载

百度云下载:链接: https://pan.baidu.com/s/1sVUovsBfj8NWdthGIbyqGA 提取码: 8v3u 复制这段内容后打开百度网盘手机App,操作更方便哦

2 通过IDEA整合

第一步:新增项目

第二步:不通过Gradle也可以的,选好java 和 web 点击下一步。

第三步:取个名字

第四步:设置Gradle 和 JDK版本,当然没有gradle也不影响的。

第五步:新增lib文件,用于存放下载的jar包,也可以通过Gradle下载。

第六步:build.gradle文件 ,引入jar包。

group \'ssm\'
version \'1.0-SNAPSHOT\'

apply plugin: \'java\'
apply plugin: \'war\'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: \'junit\', name: \'junit\', version: \'4.12\'
    compile files(\'lib/c3p0-0.9.5.2.jar\')
    compile files(\'lib/com.springsource.org.aopalliance-1.0.0.jar\')
    compile files(\'lib/com.springsource.org.apache.commons.logging-1.1.1.jar\')
    compile files(\'lib/com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar\')
    compile files(\'lib/mchange-commons-java-0.2.11.jar\')
    compile files(\'lib/mysql-connector-java-5.1.46-bin.jar\')
    compile files(\'lib/ojdbc7.jar\')
    compile files(\'lib/spring-aop-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-aspects-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-beans-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-context-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-core-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-expression-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-jdbc-5.0.8.RELEASE.jar\')
    compile files(\'lib/spring-tx-5.0.8.RELEASE.jar\')
    compile files(\'lib/mybatis-3.4.6.jar\')
    compile files(\'lib/mybatis-spring-1.3.2.jar\')
    compile group: \'org.springframework\', name: \'spring-test\', version: \'5.0.8.RELEASE\'
}

跑了测试案例:

数据库表数据如下:

目录结构:

/**
 * 账户
 * @author hubt
 */
public class Account {
    private Integer id;
    private String name;
    private Double money;
    
    //转账金额
    private Double tranferMoney;
    public Double getTranferMoney() {
        return tranferMoney;
    }
    public void setTranferMoney(Double tranferMoney) {
        this.tranferMoney = tranferMoney;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getMoney() {
        return money;
    }
    public void setMoney(Double money) {
        this.money = money;
    }
}
import com.tao.bean.Account;

/**
 * 账户mapper接口
 * @author Joey
 *
 */
public interface AccountMapper {
    //操作数据库扣款和加款
    
    //扣款
    void subMoney(Account pay);
    
    
    //加款
    void addMoney(Account collect);
}
/**
 * 账户接口
 * @author hubt
 *
 */
public interface AccountService {
    
    //转账方法
    void updateTranferAccount();
}
import javax.annotation.Resource;

import com.tao.bean.Account;
import com.tao.mapper.AccountMapper;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(isolation= Isolation.DEFAULT, propagation= Propagation.REQUIRED, readOnly=false)
public class AccountServiceImpl implements AccountService {
    
    @Resource(name = "accountMapper")
    private AccountMapper mapper;

    @Override
    public void updateTranferAccount() {
        Double tranferMoney = 1000d;
        Account pay = new Account();
        pay.setId(1);
        pay.setTranferMoney(tranferMoney);
        //先扣款
        mapper.subMoney(pay);
        Account collect = new Account();
        collect.setId(2);
        collect.setTranferMoney(tranferMoney);
        //加款
        mapper.addMoney(collect);
    }
}
import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.tao.service.AccountService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class MapperTest {

    @Resource(name="accountService")
    private AccountService as;

    @Test
    public void Test1() {
        as.updateTranferAccount();
    }
}

配置文件: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:context="http://www.springframework.org/schema/context"
    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-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
        
    <!-- 读取配置文件 -->
    <context:property-placeholder location="db.properties"/>
    
    <!-- 配置 dataSource -->
    <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
        <property name="user" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    
    <!-- mybatis -->
    <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
    </bean>
    
    <!-- mapper工厂 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.tao.mapper"/>
    </bean>
    
    <!-- service -->
    <bean name="accountService" class="com.tao.service.AccountServiceImpl"></bean>

    <!-- 需要事务核心管理器 -->
    <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 开启注解事务 -->
    <tx:annotation-driven/>
    
</beans>

配置文件:db.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/work_db
jdbc.user=root
jdbc.password=******

sqlMapConfig.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.tao.bean"/>
      </typeAliases>
  </configuration>

运行结果:

总结:就这样的完美。

以上是关于《Java Spring框架》通过Idea 整合Spring和Mybatis的主要内容,如果未能解决你的问题,请参考以下文章

Java之SSM框架整合-案例IDEA版(一篇文章精通系列)Spring+SpringMVC+MyBatis(整合源代码)

Java之Spring Boot入门到精通IDEA版SpringBoot整合其他框架Junit,Redis,MyBatis(一篇文章精通系列)中

SSM 框架 搭建整合(IDEA)保姆级

使用IDEA搭建SSM框架

史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

IDEA+Maven+SSM框架实现的简单的增删改查