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

Posted gulp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
	}
}

  

  

以上是关于springboot 学习 配置mybatis ,全局日期处理的主要内容,如果未能解决你的问题,请参考以下文章

第275天学习打卡(知识点回顾 springboot整合MyBatis操作)

springboot学习笔记-2 一些常用的配置以及整合mybatis

第276天学习打卡(知识点回顾 springboot整合mybatis-plus)

springboot学习入门简易版八---springboot2.0多环境配置整合mybatis mysql8+(19-20)

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

dubbo学习 springboot整合dubbo mybatis mysql