springBoot整合MyBatise及简单应用

我采用的是 工具IDEA 框架是springBoot+maven+Mybatise

第一步:

pom.xml 引入相关jar包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>cn.xudy.base</groupId>
<artifactId>testMybase</artifactId>
<version>1.0-SNAPSHOT</version> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<mybatis-spring-boot.version>1.2.0</mybatis-spring-boot.version>
<mysql-connector.version>5.1.39</mysql-connector.version>
</properties> <dependencies> <!-- MYSQL -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Spring Boot JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency> <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.7</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot.version}</version>
</dependency> </dependencies> <!--maven打包时应用-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

第二部:

建立两个配置文件类

1、  我采用了c3p0 JDBC 连接池这个文件主要是配置mybatis  的xml配置文件位置

@Configuration
//加上这个注解,使得支持事务
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer { @Bean(name = "dataSource")
@Qualifier(value = "dataSource")
@Primary
@ConfigurationProperties(prefix = "c3p0")
public DataSource dataSource() {
return DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build();
} @Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new DataSourceTransactionManager(dataSource());
} @Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean() {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource());
bean.setTypeAliasesPackage("cn.group.xudy.model");//每一张表对应的实体类
//添加XML目录
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
try {
bean.setMapperLocations(resolver.getResources("classpath:mapper/*Mapper.xml"));//每张表对应的xml文件
return bean.getObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
} @Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
} /**
* 跨域
* @return
*/
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
};
} }

2、配置mapper java文件

/**
* 扫描mybatis的接口
*MyBatis扫描接口,使用的tk.mybatis.spring.mapper.MapperScannerConfigurer,如果你不使用通用Mapper,可以改为org.xxx...
* @author zxj
*
*/
@Configuration
// 因为这个对象的扫描,需要在MyBatisConfig的后面注入,所以加上下面的注解
@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig { @Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
//获取之前注入的beanName为sqlSessionFactory的对象
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
//每张表对应的XXMapper.java interface类型的Java文件
mapperScannerConfigurer.setBasePackage("cn.group.xudy.mapper");
// Properties properties = new Properties();
// properties.setProperty("mappers", "tk.mybatis.springboot.util.MyMapper");
// properties.setProperty("notEmpty", "false");
// properties.setProperty("IDENTITY", "MYSQL");
// mapperScannerConfigurer.setProperties(properties); return mapperScannerConfigurer; }
}

注意 mybatis 的mapper.xml  在IDEA中一定要写到resources下面如图

第三步 :

1.sql以注解的形式访问数据库获取数据

在java下mapper文件下一个下一个简单的注解代码测试下 下面是三种模式


@Select("select * from claims;")
List<Map<String,Object>> find(); @Select("Select * from claims where id = '${id}'")
Map<String,Object> selectClaimsName(@Param("id") String id); @Select("Select * from claims where id = #{id}")
Map<String,Object> selectClaimsName(@Param("id") String id);

写一个调用类根据自己的数据库配置 应该没什么问题了

2、sql语句以xml形式也就是大家常用的mybatis的形式获取数据

在java下mapper中写调用方法

    List<ClaimsModel> getAll();

在resources下xml写到  我写的是一对多的形式 有点乱 ,这部分就不细说了,如果不懂可以看看相关Mybatis的使用这里只介绍集成

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.group.xudy.mapper.claimsMapper"> <resultMap id="BaseResultMap" type="cn.group.xudy.model.ClaimsModel" >
<id column="id" property="id" jdbcType="BIGINT" />
<id column="reason" property="reason" jdbcType="VARCHAR" />
<id column="files" property="files" jdbcType="VARCHAR" />
<!-- ofType指定students集合中的对象类型 -->
<!--<association property="claimFilesModelList" javaType="cn.group.xudy.model.ClaimFilesModel">-->
<!--</association>-->
<collection property="claimFilesModelList" ofType="cn.group.xudy.model.ClaimFilesModel" column="id" select="getStudent"></collection>
<!--<collection property="claimFilesModelList" ofType="cn.group.xudy.model.ClaimFilesModel" column="id">-->
<!--<id column="file_name" property="fileName" jdbcType="VARCHAR" />-->
<!--</collection>-->
</resultMap> <sql id="Base_Column_List" >
id,reason,files
</sql> <select id="getAll" resultMap="BaseResultMap">
-- select * from claims c,claim_files f WHERE c.id=f.claim_id
select * from claims c,claim_files
</select> <select id="getStudent" parameterType="int" resultType="cn.group.xudy.model.ClaimFilesModel">
SELECT * FROM claim_files WHERE claim_id=#{id}
</select> </mapper>

OK  代码附上

https://gitee.com/xdymemory00/testMybase.git

springBoot整合MyBatise及简单应用的更多相关文章

  1. 从无到有Springboot整合Spring-data-jpa实现简单应用

    本文介绍Springboot整合Spring-data-jpa实现简单应用 Spring-data-jpa是什么?这不由得我们思考一番,其实通俗来说Spring-data-jpa默认使用hiberna ...

  2. Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看

    一.前言 搜索引擎还是在电商项目.百度.还有技术博客中广泛应用,使用最多的还是ElasticSearch,Solr在大数据量下检索性能不如ElasticSearch.今天和大家一起搭建一下,小编是看完 ...

  3. springboot整合redis(简单整理)

    Redis安装与开启 我这里是在windows上练习,所以这里的安装是指在windows上的安装,操作非常简单,点击https://github.com/MicrosoftArchive/redis/ ...

  4. MongoDB系列:三、springboot整合mongoDB的简单demo

    在上篇 MongoDB常用操作练习 中,我们在命令提示符窗口使用简单的mongdb的方法操作数据库,实现增删改查及其他的功能.在本篇中,我们将mongodb与spring boot进行整合,也就是在j ...

  5. springboot整合dubbo的简单案例

    使用框架: jdk 1.8 springboot-2.1.3 dubbo-2.6 spring-data-jpa-2.1.5 一.开发dubbo服务接口: 按照Dubbo官方开发建议,创建一个接口项目 ...

  6. SpringBoot整合Redis实现简单的set、get

    一.导入pom.xml文件相关的依赖并配置 <dependency> <groupId>org.springframework.boot</groupId> < ...

  7. SpringBoot整合kafka的简单应用及配置说明

    引入依赖 <!-- https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka --> <de ...

  8. SpringBoot整合SpringSecurity简单实现登入登出从零搭建

    技术栈 : SpringBoot + SpringSecurity + jpa + freemark ,完整项目地址 : https://github.com/EalenXie/spring-secu ...

  9. SpringBoot学习之整合Druid的简单应用

    一.Druid介绍 Druid简介 Druid是目前Java语言中最好的数据库连接池之一.结合了 C3P0.DBCP 等 DB 池的优点,同时加入了日志监控.Druid 是一个分布式的.支持实时多维 ...

随机推荐

  1. grep 过滤.svn文件

    [grep 过滤.svn文件] 问题: 在repository搜索代码时,常常会搜索到.svn的代码,如果不想搜索.svn目录下的相关代码怎么办?    1.使用管道进行双层“过滤”,其中第二次gre ...

  2. 如何在eclipse中添加android ADT(转)

    转自: http://jingyan.baidu.com/article/b0b63dbfa9e0a74a4830701e.html 对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个 ...

  3. Python之Scrapy遇见个坑

    运行Scrapy爬虫被限制抓取,报错: -- :: [scrapy.middleware] INFO: Enabled item pipelines: [] -- :: [scrapy.core.en ...

  4. 安装scrapy解决的坑

    在windows下: pip install scrapy 最后一步报错: 本来以为是缺少 Microsoft Visual C++ 14.0 这个库,一看下载需要400多M,算了再看下报错... 感 ...

  5. jquery对象的遍历$(selector).each()

    <!DOCTYPE html> <html> <head> <script language="javascript" src=" ...

  6. Thrift结构分析及增加取客户端IP功能实现

    目录 目录 1 1. 前言 1 2. 示例Service 1 3. 网络部分类图 2 4. 线程模式 3 4.1. IO线程 3 4.2. 工作线程 4 4.2.1. 工作线程类图 4 4.2.2.  ...

  7. 如何计算服务器能够承受多大的pv?

    你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? PV是什么: PV是page view的简写.PV是指页面的访问次数,每打开或 ...

  8. ZOJ2748 Free Kick 2017-04-18 20:40 40人阅读 评论(0) 收藏

    Free Kick Time Limit: 2 Seconds      Memory Limit: 65536 KB In a soccer game, a direct free kick is ...

  9. tomcat下manager配置

    1 安装Tomcat前需要先安装JDK.安装Tomcat后测试Tomcat成功安装. Tomcat Manager是Tomcat自带的.用于对Tomcat自身以及部署在Tomcat上的应用进行管理的w ...

  10. Android-解析JSON数据(JSON对象/JSON数组)

    在上一篇博客中,Android-封装JSON数据(JSON对象/JSON数组),讲解到Android真实开发中更多的是去解析JSON数据(JSON对象/JSON数组) 封装JSON的数据是在服务器端进 ...