SpringBoot零基础入门指南5--druid + mabatis + mysql进行数据库数据使用

添加依赖,在<properties>标签中添加

<!--阿里数据源-->
<druid-version>1.1.5</druid-version>

<!--mybatis-->
<mybatis.version>3.2.7</mybatis.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<mybatis.spring-boot.version>1.0.0</mybatis.spring-boot.version>

 

 

 

 

在< dependencies>中添加

<!-- 阿里巴巴数据源 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>${druid-version}</version>
</dependency>

<!-- mybatis start-->
<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>${mybatis.version}</version>
</dependency>

<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis-spring</artifactId>
   <version>${mybatis.spring.version}</version>
</dependency>
<!--mybatis spring-boot-->
<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>${mybatis.spring-boot.version}</version>
</dependency>
<!--mybatis end-->

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

 

 

 

 

 

application-dev.yml中添加数据库相关配置,此处为最简配置

dataSource:
  type:
com.alibaba.druid.pool.DruidDataSource
  driver-class-name: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/test?autoReconnect:true&characterEncoding=UTF-8
  username: root
  password: root

 

创建下列文件

 

 

DruidConfig.java

package com.xingquan.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;

@Configuration
@EnableTransactionManagement
public class DruidConfig {

    @Value("${dataSource.type}")
    private Class<? extends DataSource> dataSourceType;

    @Primary
    @Bean(name = "dataSource")
    @ConfigurationProperties(prefix = "dataSource")
    public DruidDataSource dataSource() {

        return (DruidDataSource) DataSourceBuilder.create().type(dataSourceType).build();
    }

}

 

 

MybatiesConfig.java

package com.xingquan.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.session.SqlSessionFactory;
import org.hibernate.dialect.MySQLDialect;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.Properties;

@Configuration
@EnableTransactionManagement
@MapperScan("com.xingquan.persistence")
@AutoConfigureAfter({DruidConfig.class})
public class MybatiesConfig extends DataSourceTransactionManagerAutoConfiguration {

    @Autowired
    @Qualifier("dataSource")
    private DruidDataSource dataSource;

    private Log _log = LogFactory.getLog(MybatiesConfig.class);

    /**
     * session
工厂
     * @return SqlSessionFactory
     */
   
@Bean
    public SqlSessionFactory sqlSessionFactory() {
        SqlSessionFactoryBean sqlBean = new SqlSessionFactoryBean();
        sqlBean.setDataSource(dataSource);

        _log.info(dataSource);

        //扫描路径
        sqlBean.setTypeAliasesPackage("com.xingquan");

        //添加数据库方言
        Properties properties = new Properties();
        properties.setProperty("dialectClass", MySQLDialect.class.getName());

        //添加xml目录
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

        try {
            sqlBean.setMapperLocations(resolver.getResources("classpath:/com/xingquan/**/*.xml"));
            return sqlBean.getObject();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }


    /**
     * sqlSession
模板
     *
     * @param
sqlSessionFactory session工厂
     * @return SqlSessionTemplate
     */
   
@Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

    /**
     *
开启事务
     *
     * @return PlatformTransactionManager
     */
   
@Bean(name = "transactionManager")
    public PlatformTransactionManager annotationDrivenTransactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }

}

 

DataService.java

package com.xingquan.service;

import com.xingquan.entity.A;

/**
 * Created by USERA on 2017/11/22.
 */
public interface DataService {
    A getData();
}

 

DataServiceImpl.java

package com.xingquan.service.serviceImpl;

import com.xingquan.entity.A;
import com.xingquan.persistence.AMapper;
import com.xingquan.service.DataService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DataServiceImpl implements DataService {
    @Autowired
    private AMapper aMapper;

    private Log _log = LogFactory.getLog(DataService.class);

    @Override
    public A getData() {

        A a = aMapper.selectByPrimaryKey(1);

        _log.info(a.getName());

        return a;
    }
}

 

 

DataController.java中添加

package com.xingquan.controller;

import com.xingquan.entity.A;
import com.xingquan.service.DataService;
import com.xingquan.service.YmlService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author panjianghong
 * @Since 2017/11/21.
 */
@RestController
@RequestMapping("/")
public class DataController {

    @Autowired
    private DataService dataService;

    @RequestMapping("getdata")
    public A getData() {

        A a = dataService.getData();
        return a;
    }


}

 

启动程序后输入:http://localhost:8080/getdata

 

 

posted @ 2017-12-12 09:48  凭栏独倚  阅读(233)  评论(0)    收藏  举报