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 是一个分布式的.支持实时多维 ...
随机推荐
- set 续4
---------siwuxie095 批处理简易计算器 @echo off ::设置窗口标题 title DOS 简易计算器 ::设置窗口大小 ::设置窗口颜色 co ...
- jdeveloper12.1.3的安装与卸载
jdeveloper12.1.3的安装步骤:1>安装jdk7.0 2>在命令行中输入:cd C:\Program Files\Java\jdk1.7.0_60\bin 3>命令行安装 ...
- Photoshop中的高斯模糊、高反差保留和Halcon中的rft频域分析研究
在Halcon的rft变换中,我们经常可以看到这样的算子组合: rft_generic (Image, ImageFFT2, 'to_freq', 'none', 'complex', Width) ...
- sqlserver select 查询字段if判断用法
SELECT TOP 1000 [id], case when group_id>1 then 'vip' else '普通会员' end F ...
- intval()
1.将字符串转换成整数 2.取数字的整数部分
- [SoapUI]怎样保存response到本地文件夹
def myOutFile = "D:/AUS/Aspect Huntley feed URLs/Automation Save Responses/ahresearch.xml" ...
- asp.net core 1.1 mysqlsugarCore mysql.data 要 7.0.5.0
Message=Could not load file or assembly 'MySql.Data, Version=7.0.5.0, Culture=neutral, PublicKeyToke ...
- calico网络
内容请参考:http://www.cnblogs.com/CloudMan6/p/7509975.html
- 用WORD2007发布博客文章
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...
- Jmeter Cookie管理器 获取JSESSIONID
1.打开jmeter.抓包添加Web请求后,添加Cookie管理器.直接添加就行.值要不要都一样 添加值:${COOKIE_JSESSIONID 域:${server} 2.点击载入到当前脚本 3.到 ...