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


浙公网安备 33010602011771号