【MyBatis系列】:SpringMvc+MyBatis之初始化建表(01)

一、工程目录

二、定义系统初始化核心类

1.com.system.utils.service.SystemInitService

package com.system.utils.service;

import javax.servlet.ServletContext;

import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.system.utils.bean.DataBaseInit;

/**
 * 系统初始化
 * @author Carl
 * @date 2016-09-13
 */
@Service
public abstract class SystemInitService {

    private static final Logger log = Logger.getLogger(SystemInitService.class);

    @Autowired
    private IDataBaseInitService dataBaseInitService;

    /**
     * 获取初始化接口
     * @param beanName
     * @param context
     */
    public final static void initialization(final String beanName, final ServletContext context){
        try {
            final WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(context);
            final SystemInitService initService = (SystemInitService) applicationContext.getBean(beanName, SystemInitService.class);
            initService.init(context);
        } catch (Exception e) {
            log.error(e.getMessage(),e);
        }
    }

    /**
     * 系统初始化数据
     *
     */
    public abstract void initData();

    /**
     * 资源路径
     * @return
     */
    public abstract String resourcePath();
    /**
     * 初始化数据库
     *
     * @author Carl
     */
    private void initDatabase() {
        try {
            if (StringUtils.isEmpty(resourcePath())) {
                return;
            }
            Resource resource = new ClassPathResource(resourcePath());
            final Serializer  serializer = new Persister();
            DataBaseInit dataBaseInit = serializer.read(DataBaseInit.class, resource.getInputStream());
            dataBaseInitService.initDatabase(dataBaseInit);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
    }
    /**
     * 初始化模板
     * @param context
     */
    private void init(final ServletContext context) {
        System.out.println("========================系统开始初始化=======================================");
        initDatabase();
        initData();
        System.out.println("========================系统初始化结束=======================================");
    }
}

SystemInitService实现类 com.nc.rms.service.init.CmsSystemInitServiceImpl

package com.nc.rms.service.init;

import org.springframework.stereotype.Service;

import com.system.utils.service.SystemInitService;

@Service("cmsSystemInitService")
public class CmsSystemInitServiceImpl extends SystemInitService{

    @Override
    public void initData() {
        System.out.println("初始化进行中");
    }

    @Override
    public String resourcePath() {
        return "sql/DatabaseInit.xml";
    }

}

DatabaseInit.xml  数据库建表语句存放路径 create初始化建表语句,update修改数据库表

<?xml version="1.0" encoding="UTF-8"?>
<databaseInit initCode="rms.table.version">

    <create>
        <sqlPath>sql/rms/create_table_mysql.sql</sqlPath>
        <!-- <procPath></procPath> -->
    </create>

    <update updateVersion="1.1">
        <sqlPath>sql/rms/update_table_1.1.sql</sqlPath>
    </update>

</databaseInit>

太多了不想写了,有喜欢的朋友可以直接看源码。

http://pan.baidu.com/s/1jHAcjTO

时间: 2024-10-20 06:07:59

【MyBatis系列】:SpringMvc+MyBatis之初始化建表(01)的相关文章

如何玩转最新的项目的搭配springmvc+mybatis+Redis+Nginx+tomcat+mysql

上一次完成nginx+tomcat组合搭配,今天我们就说说,这几个软件在项目中充当的角色: 要想完成这几个软件的组合,我们必须知道和熟悉应用这个框架, 一: Nginx:在项目中大多数作为反向代理服务器.其目的处理http静态页面.和分发请求给tomcat.是目前处理大量请求的解决方案. tomcat:作为处理动态页面的服务器.由Ngxin 均衡分给的请求来处理. redis:在这个里redis 处理两个重要的功能:第一,nginx分发请求给tomcat.如何保持session的同步.就是利用r

深入迁出mybatis系列

本系列教程均源于南柯梦,经好库文摘转发,感谢南柯梦的辛苦整理. 深入迁出mybatis系列 深入浅出Mybatis系列(一)---Mybatis入门 深入浅出Mybatis系列(二)---配置简介(mybatis源码篇) 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇) 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇) 深入浅出Mybatis系列(五)---TypeHandle

springmvc+mybatis学习笔记(汇总)

springmvc+mybatis学习笔记(汇总) 标签 : springmvc mybaits springmvcmybatis学习笔记汇总 目录 联系作者 笔记分为两大部分:mybatis和springmvc mybatis springmvc 笔记内容主要是mybatis和springmvc的一些基本概念和使用方法,涉及概念介绍.环境搭建.编程细节.运行调试等方面. 这套笔记整体偏入门和应用,适合快速上手,对底层实现和机理并未做过多分析.我后续会研读spring源码,并把学习的收获写成博客

SpringMVC+Mybatis框架整合源码 项目 下载 rest websocket html5 自定义表单

获取[下载地址]   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块B 集成阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Dr

SpringMVC+Mybatis框架整合源码 项目 自定义表单 rest websocket html5

获取[下载地址]   QQ: 313596790   [免费支持更新]三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 集成代码生成器(开发利器);                                         技术:313596790   增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面

SSM框架Spring+SpringMVC+MyBatis——详细整合教程

摘要: 包括SQL Maps和Data Access ObjectsDAOMyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的... 摘要:   spring MVC属于SpringFrameWork的后续产品已经融合在Spring Web Flow里面.Spring MVC 分离了控制器.模型对... 1.基本概念 1.1.Spring Spring是一个开源框架Spring是于2003 年兴起的一个轻量级的Java 开发框架由Rod Johnson 在其著作Expert 

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些.以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下.这次,先说说三大框架整合过程.个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就

SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)【转】

使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些.以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下.这次,先说说三大框架整合过程.个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就

Spring+SpringMVC+MyBatis)

用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些.以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下.这次,先说说三大框架整合过程.个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就变