springboot 学习(一) 配置mybatis ,全局日期处理

试着写一写一系列博客,主要是记录从搭建框架,到集成一些相关的demo,以便以后在项目中用到的时候可以快速拷贝代码。

计划是一步一步的集成一些技术,比如,拦截器的使用,easypoi 的使用demo,Redis 的使用demo ,利用Redis做缓存,限流处理。rabbitmq 的使用demo

文件上传demo ,集成shiro 的demo,一些工具类的收集。等等想到什么写什么

项目结构:

MybatisConfigurer

@Configuration
public class MybatisConfigurer {

	private final static String ENTITY_PACKAGE ="com.zh.demo.entity";
	private final static String MAPPER_PACKAGE ="com.zh.demo.dao";
	//Mapper插件基础接口的完全限定名
	private final static String MAPPER_INTERFACE_REFERENCE ="com.zh.demo.core.Mapper";
	@Bean
	public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
		SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
		factory.setDataSource(dataSource);
		factory.setTypeAliasesPackage(ENTITY_PACKAGE);
		// 配置分页插件,详情请查阅官方文档
		PageHelper pageHelper = new PageHelper();
		Properties properties = new Properties();
		properties.setProperty("pageSizeZero", "true");// 分页尺寸为0时查询所有纪录不再执行分页
		properties.setProperty("reasonable", "true");// 页码<=0 查询第一页,页码>=总页数查询最后一页
		properties.setProperty("supportMethodsArguments", "true");// 支持通过 Mapper 接口参数来传递分页参数
		pageHelper.setProperties(properties);
		// 添加插件
		factory.setPlugins(new Interceptor[] { pageHelper });
		// 添加XML目录
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		// https://blog.csdn.net/kkdelta/article/details/5507799
		factory.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml"));
		return factory.getObject();
	}
	@Bean
	public MapperScannerConfigurer mapperScannerConfigurer() {
		MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
		mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
		mapperScannerConfigurer.setBasePackage(MAPPER_PACKAGE);
		// 配置通用Mapper,详情请查阅官方文档
		Properties properties = new Properties();
		properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE);
		properties.setProperty("notEmpty", "false");// insert、update是否判断字符串类型!=‘‘ 即 test="str !=
													// null"表达式内是否追加 and str != ‘‘
		properties.setProperty("IDENTITY", "MYSQL");
		mapperScannerConfigurer.setProperties(properties);
		return mapperScannerConfigurer;
	}
}

  DateConverterConfig:全局handler前日期统一处理(特别是查询的时候,日期控件传回来的日期,需要转换)

@Component
public class DateConverterConfig implements Converter<String, Date> {
	private static final List<String> formarts = new ArrayList<>(4);
	static {
		formarts.add("yyyy-MM");
		formarts.add("yyyy-MM-dd");
		formarts.add("yyyy-MM-dd HH:mm");
		formarts.add("yyyy-MM-dd HH:mm:ss");
	}

	@Override
	public Date convert(String source) {
		String value = source.trim();
		if ("".equals(value)) {
			return null;
		}
		if (source.matches("^\\d{4}-\\d{1,2}$")) {
			return parseDate(source, formarts.get(0));
		} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
			return parseDate(source, formarts.get(1));
		} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")) {
			return parseDate(source, formarts.get(2));
		} else if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
			return parseDate(source, formarts.get(3));
		} else {
			throw new IllegalArgumentException("Invalid boolean value ‘" + source + "‘");
		}
	}
	/**
	 * 格式化日期
	 * @param dateStr String 字符型日期
	 * @param format String 格式
	 * @return Date 日期
	 */
	public Date parseDate(String dateStr, String format) {
		Date date = null;
		try {
			DateFormat dateFormat = new SimpleDateFormat(format);
			date = dateFormat.parse(dateStr);
		} catch (Exception e) {
		}
		return date;
	}
}

  

  

原文地址:https://www.cnblogs.com/zzllx/p/9972495.html

时间: 2024-11-05 17:32:12

springboot 学习(一) 配置mybatis ,全局日期处理的相关文章

SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例

SpringBoot 使用yml配置 mybatis+pagehelper+druid+freemarker实例 这是一个简单的SpringBoot整合实例 这里是项目的结构目录 首先是pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

SpringBoot学习--04SpringBoot整合Mybatis(上)(配置mybatis generator,PageHelper)

陆陆续续又忙了几天,继续写. 本篇仿照着优秀的文章的书写,加上自己的理解和踩过的坑,原文地址:https://www.jianshu.com/p/5cd772c07041?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weixin 环境/版本一览: 开发工具:eclipse springboot: 2.0.1.RELEASE jdk:1.8.0_40 maven:3.3.9 额外功能:

尚硅谷springboot学习23-SpringMVC配置

1. Spring MVC auto-configuration 以下是SpringBoot对SpringMVC的默认配置:(WebMvcAutoConfiguration) Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans. 自动配置了ViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何渲染(转发?重定向?)) ContentNegotiatingVi

SpringBoot五步配置Mybatis

第一步:Maven里面添加mybatis的引用jar包: <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <depen

SpringBoot学习:整合Mybatis,使用HikariCP超高性能数据源

一.添加pom依赖jar包: 1 <!--整合mybatis--> 2 <dependency> 3 <groupId>org.mybatis.spring.boot</groupId> 4 <artifactId>mybatis-spring-boot-starter</artifactId> 5 <version>1.1.1</version> 6 </dependency> 7 8 <!

spring-boot学习之集成mybatis

一.关于spring boot 1.spring boot 简而言之就是使spring启动更容易,它的座右铭是"just run",大多数spring应用程序仅仅需要很少的配置,使用spring-boot将大大减少编写spring相关的代码量和xml配置文件 2.通常情况下spring-boot会在classpath下寻找application.properties或者application.yml配置文件,绝大多数的应用都会在此配置文件里配置 二 spring boot集成Mybat

SpringBoot学习--07配置Druid数据库连接池

Druid介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快). Druid的作用 1.充当数据库连接池.2.可以监控数据库访问性能3.获得SQL执行日志 配置参数 和其它连接池一样Druid的DataSource类为:com.alibaba.druid.pool.DruidDat

学习myBatis - 如何配置myBatis

这篇文章主要学习如何配置myBatis. 要学习新东西要讲究方法,我觉得要从三个层面去理解它:它是什么(what),为什么要学它(why),怎么用它(how).有了学习方法学习的效率才高. 1.myBatis是什么(what) myBatis的官方用户指南上面是这样写的:MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接

struts2国际化---配置国际化全局资源文件并输出国际化资源信息

我们首先学习怎么配置国际化全局资源文件,并输出资源文件信息 1.首先struts2项目搭建完成后,我们在src目录下,即struts2.xml同级目录下创建资源文件,资源文件的名称格式为: XXX_语言_国家.properties XXX:资源文件名称,可以随意定义 语言.国家:必须是java所支持的语言和国家,例如: 中国大陆:语言   zh   国家  CN 美国:语言  en   国家 US 所以我们可以这么取名: 例如:itheima_zh_CN.properties itheima_e