com.jcin.cms.web.setup.SetupController.java Source code

Java tutorial

Introduction

Here is the source code for com.jcin.cms.web.setup.SetupController.java

Source

/**
 * ?????<br/>
 * @author 
 * @date 2015-6-2,?10:25:58
 *
 */
package com.jcin.cms.web.setup;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;

import org.apache.ibatis.jdbc.ScriptRunner;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;

import com.jcin.cms.web.domain.Hostsetting;

@Controller
@RequestMapping("/setup")
public class SetupController {

    /**
     * 1.
     * 
     * @return
     */
    @RequestMapping(value = "/license")
    public String license() {
        return "index";
    }

    /**
     * 2.?
     * 
     * @return
     */
    @RequestMapping(value = "/database")
    public String database() {
        return "database";
    }

    /**
     * 3.?
     * 
     * @return
     */
    @RequestMapping(value = "/finish")
    public String finish(@Valid Hostsetting hostsetting, BindingResult result, Model uiModel,
            HttpServletRequest httpServletRequest, HttpServletResponse response) {
        if (result.hasErrors()) {
            populateEditForm(uiModel, hostsetting);
            return "database";
        }

        URL url = SetupController.class.getClassLoader().getResource("");
        String filePath = url.getPath();
        filePath += "database" + File.separator + "db.sql";
        File file = new File(filePath);

        String dbdriver = "com.mysql.jdbc.Driver";
        String dburl = "jdbc:mysql://" + hostsetting.getHost() + ":" + hostsetting.getPort() + "/"
                + hostsetting.getDbname();
        Connection con = null; // ?
        //      PrintWriter out = null;
        String object = "";
        try {
            //         out = response.getWriter();
            Class.forName(dbdriver).newInstance();
            con = DriverManager.getConnection(dburl, hostsetting.getUsername(), hostsetting.getPassword()); // 2??

            ScriptRunner runner = new ScriptRunner(con);
            InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
            runner.runScript(isr);

            if (con != null)
                object = "success";
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (!object.equals("success"))
                object = "?url,???????";
            //         out.write(object);
            //         out.flush();
            //         out.close();
        }
        return "redirect:/setup/success";
    }

    @RequestMapping(value = "/success")
    public String success(HttpServletRequest httpServletRequest, HttpServletResponse response) {
        return "success";
    }

    /**
     * 
     * 
     * @return
     * @throws UnsupportedEncodingException
     */
    @RequestMapping(value = "/testSetting")
    public void testSetting(@Valid Hostsetting hostsetting, BindingResult result, Model uiModel,
            HttpServletRequest httpServletRequest, HttpServletResponse response)
            throws UnsupportedEncodingException {
        // ?
        httpServletRequest.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = null;
        String object = "";

        String dbdriver = "com.mysql.jdbc.Driver";
        String dburl = "jdbc:mysql://" + hostsetting.getHost() + ":" + hostsetting.getPort() + "/"
                + hostsetting.getDbname();
        Connection con = null; // ?
        try {
            out = response.getWriter();
            Class.forName(dbdriver).newInstance();
            con = DriverManager.getConnection(dburl, hostsetting.getUsername(), hostsetting.getPassword()); // 2??
            if (con != null)
                object = "success";
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (!object.equals("success"))
                object = "?url,???????";
            out.write(object);
            out.flush();
            out.close();
        }
    }

    void populateEditForm(Model uiModel, Hostsetting hostsetting) {
        uiModel.addAttribute("hostsetting", hostsetting);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}