springBoot整合MyBatise及简单应用
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及简单应用的更多相关文章
- 从无到有Springboot整合Spring-data-jpa实现简单应用
本文介绍Springboot整合Spring-data-jpa实现简单应用 Spring-data-jpa是什么?这不由得我们思考一番,其实通俗来说Spring-data-jpa默认使用hiberna ...
- Springboot整合ElasticSearch进行简单的测试及用Kibana进行查看
一.前言 搜索引擎还是在电商项目.百度.还有技术博客中广泛应用,使用最多的还是ElasticSearch,Solr在大数据量下检索性能不如ElasticSearch.今天和大家一起搭建一下,小编是看完 ...
- springboot整合redis(简单整理)
Redis安装与开启 我这里是在windows上练习,所以这里的安装是指在windows上的安装,操作非常简单,点击https://github.com/MicrosoftArchive/redis/ ...
- MongoDB系列:三、springboot整合mongoDB的简单demo
在上篇 MongoDB常用操作练习 中,我们在命令提示符窗口使用简单的mongdb的方法操作数据库,实现增删改查及其他的功能.在本篇中,我们将mongodb与spring boot进行整合,也就是在j ...
- springboot整合dubbo的简单案例
使用框架: jdk 1.8 springboot-2.1.3 dubbo-2.6 spring-data-jpa-2.1.5 一.开发dubbo服务接口: 按照Dubbo官方开发建议,创建一个接口项目 ...
- SpringBoot整合Redis实现简单的set、get
一.导入pom.xml文件相关的依赖并配置 <dependency> <groupId>org.springframework.boot</groupId> < ...
- SpringBoot整合kafka的简单应用及配置说明
引入依赖 <!-- https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka --> <de ...
- SpringBoot整合SpringSecurity简单实现登入登出从零搭建
技术栈 : SpringBoot + SpringSecurity + jpa + freemark ,完整项目地址 : https://github.com/EalenXie/spring-secu ...
- SpringBoot学习之整合Druid的简单应用
一.Druid介绍 Druid简介 Druid是目前Java语言中最好的数据库连接池之一.结合了 C3P0.DBCP 等 DB 池的优点,同时加入了日志监控.Druid 是一个分布式的.支持实时多维 ...
随机推荐
- Git报错的解决方案汇总
错误1: error: Your local changes to the following files would be overwritten by merge:Please, commit y ...
- 0. ACM系列算法
0.1 数学 0.1.1 概率 http://www.cnblogs.com/jiu0821/tag/%E6%A6%82%E7%8E%87/ 0.1.2 代数 0.1.2.1 Polya 0.1.2. ...
- 四种常见的 POST 提交数据方式,使用postman会用到
http://www.aikaiyuan.com/6324.html 用postman时候,选错了就出不来结果.用postman选择 application/x-www-form-urlencoded
- 综合:bool类型 命名空间 输入输出
----------siwuxie095 题目要求: 使用一个函数找出一个整型数组中的最大值或最小值 注意: 1.直接书写 cin cout endl, ...
- Shadow Map 实现极其细节
这里不介绍算法原理,只说说在实现过程中遇到的问题,以及背后的原因.开发环境:opengl 2.0 glsl 1.0. 第一个问题:产生深度纹理. 在opengl中每一次离屏渲染需要向opengl提供 ...
- vs与qt
http://blog.csdn.net/woniuye/article/details/54928477 1. #include "qmessagebox.h" QMessage ...
- TableLayout 里的TextView等组的LayoutParams参数问题
TableLayout 里的TextView等组的LayoutParams参数不能是LinearLayout.LayoutParams这样来定义, 只能是用TableRow.LayoutParams ...
- knn的python代码
import heapq import random class Classifier: def __init__(self, bucketPrefix, testBucketNumber, data ...
- 使用Git 管理heroku的项目(windows)
此过程与管理github中的项目类似,即是普通的git配置 安装 Heroku Toolbelt, 里面包含了 msygit Foreman,以及heroku的命令行界面 1.首先在heroku上新建 ...
- HRBUST1313 火影忍者之~静音 2017-03-06 16:11 39人阅读 评论(0) 收藏
火影忍者之-静音 传说中的火之国一年一度的公务员选拔又开始了!木叶忍者村此次也要从中选拔出5人来,作为即将上任的新火影纲手的小弟-,可是报考公务员的人数实在是太--多啦!所以纲手的贴身随从-静音小姐, ...