springboot 结合mybatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
注意:
mysql-connector-java 5.X版本与6.X包类的路径有很大区别,驱动类5.X(com.mysql.jdbc.Driver) 6.X(com.mysql.cj.jdbc.Driver),结合使用时,注意显式依赖。
springboot版本1.5.6.RELEASE是内含mysql-connector-java 5.1.34的版本
可以下载此简易封装的jar(增加些常用类型的转换,旧的时间calendar转换,统一处理枚举类型转换数值型)
源代码下载路径:https://gitee.com/zss_376987715/mybatis-dao
如何使用:
1、pom.xml导入依赖
<dependency>
<groupId>com.mybatis.dao</groupId>
<artifactId>mybatis-dao</artifactId>
<version>2.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version><!--$NO-MVN-MAN-VER$-->
</dependency>
2、需要枚举转成int存储的枚举 必需实现接口implements DescriptionID
3、添加mybatisConfig配置类
@Configuration
@PropertySource(value={"classpath:/config/jdbc_mysql.properties"},encoding="UTF-8",ignoreResourceNotFound=true) //数据库相关配置信息
@MapperScan("com.song.boot.mapper")//mybatis mapper接口包路径
public class MybatisConfig {
@Autowired
private Environment env;
@Bean
public FactoryConfig initDBConfig(){
FactoryConfig config = new FactoryConfig();
config.setJdbcDriverClass(env.getProperty("jdbc.driverClass"));
config.setJdbcUrl(env.getProperty("jdbc.url"));
config.setJdbcUsername(env.getProperty("jdbc.username"));
config.setJdbcPassword(env.getProperty("jdbc.password"));
config.setTypeAliasPackage("com.song.boot.domain");//需要映射的实体包路径
config.setScanEnumPackage("com.song.boot.enumerated");//需要转换的枚举包路径
return config;
}
@Bean
public SessionFactoryConfig initSession(){
return new SessionFactoryConfig();
}
@Bean
public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException{
return initSession().createSqlSessionFactoryBean();
}
}
相关代码:
public interface MemberMapper {
@Select("select * from sale_member where account = #{account}")
public Member queryMemberByAccount(String account);
@Insert("insert into member(account,sex,lastLoginTime,birthday) "
+ " values(#{account},#{sex},#{lastLoginTime},#{birthday})")
public int add(Member member);
}
@RestController
@RequestMapping("member")
public class MemberController {
@Autowired
private MemberMapper memberMapper;
}
public class Member {
private long id;
private String account;
private Sex sex;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lastLoginTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthday ;
}
springboot 结合mybatis的更多相关文章
- SpringBoot整合MyBatis
转载请在文章最上方加上此句话:原文地址:http://www.cnblogs.com/zhuxiaojie/p/5836159.html 前言:这段时间用springboot感觉确实挺好用的,很大程度 ...
- spring-boot整合mybatis(1)
sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置.接下来开始spring-boot与mybatis的整合. 1.创建一个maven工程命名为spring-boot- ...
- SpringBoot整合Mybatis之项目结构、数据源
已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...
- Springboot与Mybatis整合
最近自己用springboot和mybatis做了整合,记录一下: 1.先导入用到的jar包 <dependency> <groupId>org.springframework ...
- SpringBoot与Mybatis整合方式01(源码分析)
前言:入职新公司,SpringBoot和Mybatis都被封装了一次,光用而不知道原理实在受不了,于是开始恶补源码,由于刚开始比较浅,存属娱乐,大神勿喷. 就如网上的流传的SpringBoot与Myb ...
- springboot+springmvc+mybatis项目整合
介绍: 上篇给大家介绍了ssm多模块项目的搭建,在搭建过程中spring整合springmvc和mybatis时会有很多的东西需要我们进行配置,这样不仅浪费了时间,也比较容易出错,由于这样问题的产生, ...
- SpringBoot14 SpringBoot整合mybatis
1 版本说明 springboot:2.0 jdk:1.8 2 创建springBoot项目 创建项目时勾选必要web,MySQL,mybatis相关依赖 创建完成后再pom文件中添加自动部署.lom ...
- springboot集成mybatis(二)
上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...
- springboot集成mybatis(一)
MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyB ...
- SpringBoot配置mybatis
一直都说SpringBoot是零配置,当然,真正实现零配置是不可能的,但是在配置mybatis这里真的是太简单了,哈哈,下面我们一起看一下. 1.先导入基于SpringBoot的mybatis依赖包 ...
随机推荐
- 根据自己的博客数据统计国内IT人群
装上百度统计有一段时间了,今天突然找出报表看看,发现一个很有意思的事情.访问来源TOP5依次是:北京,上海,深圳,杭州,广州 虽然大部分文章都是当时特别白的时候记录下来的遇到过的问题,但受众确实应该只 ...
- C# 串口接收数据中serialPort.close()死锁
最近在做一个有关高铁模拟仓显示系统的客户端程序,在这个程序中要运用串口serialPort传输数据,因为每次接收数据结束后要更新UI界面,所以就用到了的Invoke,将更新UI的程序代码封装到一个方法 ...
- 从今天起开始记录下在freecodecamp学习的一些tip吧(所有内容都在这个随笔的评论里面记录)
因为可能东西会很零碎 所以就放在随笔里吧 当需要在字符串中使用一个: " 或者 ' 时 可以通过在引号前面使用 反斜杠 (\) 来转义引号. var sampleStr = "Al ...
- selenium定位tr及td,并获取其文本及属性
#获取所有的trtrlist=brower.find_elements_by_tag_name("tr")for tr in trlist: #获取tr中的所有td tdlist= ...
- java二进制相关基础
转载请注明原创出处,谢谢! 说在前面 之前在JVM菜鸟进阶高手之路十(基础知识开场白)的时候简单提到了二进制相关问题,最近在看RocketMQ的源码的时候,发现涉及二进制的内容蛮多,jdk源码里面也是 ...
- 快速搭建一个本地的FTP服务器
快速搭建一个本地的FTP服务器 如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试. 第一步:配置IIS Web服务器 1.1 控制面板中找到"程序& ...
- 深入讲解HashMap原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变 ...
- Spring Data 整合 ElasticSearch搜索服务器
一.基于 maven 导入坐标(pom.xml文件) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...
- 第七届C/C++B-方格填数 DFS
方格填数 如下的10个格子 +--+--+--+ | | | | +--+--+--+--+ | | | | | +--+--+--+--+ | | | | +--+- ...
- mysql分区分表
为毛要分表和分区,,,,所有数据库的通病,文件越大,性能越低...那问题就来了.数据越多文件越大...无解?哎,所以说知道 为毛要分区了吧!那分表又是毛线?分表就是把一张表拆分成若干表,,,根据情况常 ...