使用idea 新创建项目

然后 新创建 java 、resources 文件夹......

图上是项目结构

java文件夹下的 文件夹 命名规范 com.nf147(组织名)+ oukele(作者)

然后将 自动生成类 放入 其中 ,运行 ,按照步骤进行操作

每操作完成一步 都需要 刷新一下 maven项目 如:

generatorConfig.xml 文件生成完后 ,刷新maven项目,然后双击红色箭头处后,自动生成 entity dao mapper

自动生成类:

package com.nf147.oukele;

import java.io.*;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; /**
* 自动生成SSM框架需要的东西
*
* @author OUKELE
* @create 2019-03-13 10:57
*/ public class Generate { // 当前项目路径
static String projectPath = System.getProperty("user.dir");
//包名
//static String Package ="com.oukele.demo";
//数据库驱动 只支持 mariadb数据库的)
static String drive = "org.mariadb.jdbc.Driver";
//URL
static String url = "jdbc:mariadb://localhost:3306/test";
//数据库账号
static String user = "oukele";
//数据库密码
static String password = "oukele";
//组织名 用于自动生成 dao 、mapper_xml、entity
static String Package = "com.nf147.oukele";
//项目名
static String projectName = "demo1"; public static void main(String[] args) {
Use();
} //命令式 调用
private static void Use() {
System.out.println("\t\t请输入命令\t\t\n" +
"输入 1 则生成 pom.xml 文件\n" +
"输入 2 则生成 generatorConfig.xml 文件\n" +
"输入 3 则生成 Spring、SpringMVC等 相关xml 文件\n" +
"输入 4 则生成 service、serviceIpml、controller\n" +
"输入 5 则 删除自动生成文件,避免污染项目\n" +
"==================================================");
int number = 0;
Scanner in = new Scanner(System.in);
System.out.println("请输入你的命令:");
number = in.nextInt();
switch (number) {
case 1:
generate_pomXML();
break;
case 2:
generate_generatorConfig();
break;
case 3:
start_1();
System.out.println("请刷新一下 项目,使用 Generator插件 生成 dao、entity、mapper文件夹.. ");
break;
case 4:
start();
break;
case 5:
del();
del_0();
System.out.println(" 自动生成文件已删除......");
System.out.println(" 请刷新 maven项目,然后尽情的使用吧.....");
break;
default:
System.out.println("没有这个命令.....");
break;
} } //生成 自动配置 pom.xml 文件
public static void generate_pomXML() { File f = new File(projectPath + File.separator + "/pom.xml");
try {
OutputStream out = new FileOutputStream(f);
StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
"<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n" +
" <modelVersion>4.0.0</modelVersion>\n" +
"\n" +
" <!--组织名-->\n" +
" <groupId>" + Package + "</groupId>\n" +
" <!--项目名-->\n" +
" <artifactId>" + projectName + "</artifactId>\n" +
" <!--版本信息-->\n" +
" <version>1.0</version>\n" +
" <!--项目类型-->\n" +
" <packaging>war</packaging>\n" +
"\n" +
"\n" +
" <!--版本信息管理-->\n" +
" <properties>\n" +
" <spring.version>5.1.2.RELEASE</spring.version>\n" +
" <springmvc.version>5.1.2.RELEASE</springmvc.version>\n" +
" <!--项目构建编码-->\n" +
" <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n" +
" <!-- maven 编译资源 版本 -->\n" +
" <maven.compiler.source>1.8</maven.compiler.source>\n" +
" <!-- maven 编译目标版本 -->\n" +
" <maven.compiler.target>1.8</maven.compiler.target>\n" +
" <!-- maven 编译插件版本 -->\n" +
" <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>\n" +
" </properties>\n" +
"\n" +
" <!--jar包的依赖-->\n" +
" <dependencies>\n" +
" <!--Spring 的依赖-->\n" +
" <dependency>\n" +
" <groupId>org.springframework</groupId>\n" +
" <artifactId>spring-web</artifactId>\n" +
" <version>${spring.version}</version>\n" +
" </dependency>\n" +
" <dependency>\n" +
" <groupId>org.springframework</groupId>\n" +
" <artifactId>spring-aop</artifactId>\n" +
" <version>${spring.version}</version>\n" +
" </dependency>\n" +
" <dependency>\n" +
" <groupId>org.springframework</groupId>\n" +
" <artifactId>spring-jdbc</artifactId>\n" +
" <version>${spring.version}</version>\n" +
" </dependency>\n" +
" <dependency>\n" +
" <groupId>org.springframework</groupId>\n" +
" <artifactId>spring-test</artifactId>\n" +
" <version>${spring.version}</version>\n" +
" <scope>test</scope>\n" +
" </dependency>\n" +
"\n" +
" <!--Spring MVC 的依赖-->\n" +
" <dependency>\n" +
" <groupId>org.springframework</groupId>\n" +
" <artifactId>spring-webmvc</artifactId>\n" +
" <version>${springmvc.version}</version>\n" +
" </dependency>\n" +
" <dependency>\n" +
" <groupId>org.springframework</groupId>\n" +
" <artifactId>spring-web</artifactId>\n" +
" <version>${springmvc.version}</version>\n" +
" </dependency>\n" +
"\n" +
" <!--mybatis 的依赖-->\n" +
" <dependency>\n" +
" <groupId>org.mybatis</groupId>\n" +
" <artifactId>mybatis</artifactId>\n" +
" <version>3.4.6</version>\n" +
" </dependency>\n" +
" <dependency>\n" +
" <groupId>org.mybatis</groupId>\n" +
" <artifactId>mybatis-spring</artifactId>\n" +
" <version>1.3.2</version>\n" +
" </dependency>\n" +
" <!--mybatis 分页-->\n" +
" <dependency>\n" +
" <groupId>com.github.pagehelper</groupId>\n" +
" <artifactId>pagehelper</artifactId>\n" +
" <version>5.1.7</version>\n" +
" </dependency>\n" +
" <!--c3p0 连接池 -->\n" +
" <dependency>\n" +
" <groupId>com.mchange</groupId>\n" +
" <artifactId>c3p0</artifactId>\n" +
" <version>0.9.5.2</version>\n" +
" </dependency>\n" +
"\n" +
" <!--数据库驱动-->\n" +
" <dependency>\n" +
" <groupId>org.mariadb.jdbc</groupId>\n" +
" <artifactId>mariadb-java-client</artifactId>\n" +
" <version>2.3.0</version>\n" +
" </dependency>\n" +
"\n" +
" <!-- Junit 单元测试-->\n" +
" <dependency>\n" +
" <groupId>junit</groupId>\n" +
" <artifactId>junit</artifactId>\n" +
" <version>4.12</version>\n" +
" <scope>test</scope>\n" +
" </dependency>\n" +
"\n" +
" <!--日志框架 logback-->\n" +
" <dependency>\n" +
" <groupId>ch.qos.logback</groupId>\n" +
" <artifactId>logback-classic</artifactId>\n" +
" <version>1.2.3</version>\n" +
" <scope>test</scope>\n" +
" </dependency>\n" +
"\n" +
" <!--其他-->\n" +
" <!--server 接口 jar包-->\n" +
" <dependency>\n" +
" <groupId>javax.servlet</groupId>\n" +
" <artifactId>javax.servlet-api</artifactId>\n" +
" <version>4.0.1</version>\n" +
" </dependency>\n" +
"\n" +
" <dependency>\n" +
" <groupId>com.google.code.gson</groupId>\n" +
" <artifactId>gson</artifactId>\n" +
" <version>2.8.5</version>\n" +
" </dependency>\n" +
"\n" +
" <dependency>\n" +
" <groupId>javax.servlet</groupId>\n" +
" <artifactId>jstl</artifactId>\n" +
" <version>1.2</version>\n" +
" </dependency>\n" +
" </dependencies>\n" +
"\n" +
" <build>\n" +
" <plugins>\n" +
" <plugin>\n" +
" <groupId>org.mybatis.generator</groupId>\n" +
" <artifactId>mybatis-generator-maven-plugin</artifactId>\n" +
" <version>1.3.7</version>\n" +
" <!--配置信息-->\n" +
" <configuration>\n" +
" <!--配置文件-->\n" +
" <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>\n" +
" <overwrite>true</overwrite>\n" +
" </configuration>\n" +
" <!--数据库的驱动的依赖-->\n" +
" <dependencies>\n" +
" <dependency>\n" +
" <groupId>org.mariadb.jdbc</groupId>\n" +
" <artifactId>mariadb-java-client</artifactId>\n" +
" <version>2.3.0</version>\n" +
" </dependency>\n" +
" </dependencies>\n" +
" </plugin>\n" +
"\n" +
" </plugins>\n" +
" </build>\n" +
"\n" +
"\n" +
"</project>"); out.write(new String(sbf).getBytes());
out.flush();
out.close();
System.out.println("pom.xml 文件 配置成功,请重新刷新一下 maven项目");
} catch (Exception e) {
System.out.println("pom.xml 文件 配置失败,异常信息为:" + e.getMessage());
} } //自动生成 generatorConfig.xml 文件
public static void generate_generatorConfig() {
File f = new File(projectPath + File.separator + "/src/main/resources/generatorConfig.xml"); try {
if (!f.isFile()) {
f.createNewFile();
} OutputStream out = new FileOutputStream(f); StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!DOCTYPE generatorConfiguration\n" +
" PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\"\n" +
" \"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\">\n" +
"\n" +
"<generatorConfiguration>\n" +
"\n" +
" <context id=\"default\" targetRuntime=\"MyBatis3Simple\">\n" +
" <!--创建class时,对注释进行控制-->\n" +
" <commentGenerator>\n" +
" <property name=\"suppressDate\" value=\"true\" />\n" +
" <!--去除注释-->\n" +
" <property name=\"suppressAllComments\" value=\"true\"/>\n" +
" </commentGenerator>\n" +
"\n" +
" <!--jdbc的数据库连接-->\n" +
" <jdbcConnection driverClass=\"" + drive + "\"\n" +
" connectionURL=\"" + url + "\"\n" +
" userId=\"" + user + "\" password=\"" + password + "\">\n" +
" </jdbcConnection>\n" +
" <!-- Model模型生成器\n" +
" targetPackage -> 指定生成的model生成所在的包名\n" +
" targetProject -> 指定在该项目下所在的路径\n" +
" -->\n" +
" <javaModelGenerator targetPackage=\"" + Package + ".entity\" targetProject=\"src/main/java\">\n" +
" <!-- 是否对类CHAR类型的列的数据进行trim操作 -->\n" +
" <property name=\"trimStrings\" value=\"true\" />\n" +
" </javaModelGenerator>\n" +
" <!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件-->\n" +
" <sqlMapGenerator targetPackage=\"Mapper\" targetProject=\"src/main/resources\"/>\n" +
"\n" +
" <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码\n" +
" type=\"ANNOTATEDMAPPER\",生成Java Model 和基于注解的Mapper对象\n" +
" type=\"MIXEDMAPPER\",生成基于注解的Java Model 和相应的Mapper对象\n" +
" type=\"XMLMAPPER\",生成SQLMap XML文件和独立的Mapper接口\n" +
" -->\n" +
" <javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"" + Package + ".dao\" targetProject=\"src/main/java\"/>\n" +
"\n" +
" <!-- tableName 表名 % -> 全部表 -->\n" +
" <table tableName=\"%\">\n" +
" <generatedKey column=\"id\" sqlStatement=\"Mysql\"/>\n" +
" </table>\n" +
" </context>\n" +
"</generatorConfiguration>"); out.write(new String(sbf).getBytes());
out.flush();
out.close();
System.out.println("generatorConfig.xml 文件创建成功,请刷新一下maven项目");
} catch (Exception e) {
System.out.println("generatorConfig.xml 文件创建失败,异常信息为:" + e.getMessage());
} } /**
* 把输入字符串的首字母改成大写
*
* @param str
* @return
*/
private static String initcap(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
} /**
* 把输入字符串的首字母改成小写
*
* @param str
* @return
*/
private static String initlow(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'A' && ch[0] <= 'Z') {
ch[0] = (char) (ch[0] + 32);
}
return new String(ch);
} //首字母转换和下划线转换
private static String tables(String table) {
String[] tables = table.split("_");
table = "";
for (String s : tables) {
table += initcap(s);
}
return table;
} //获取 数据库中的表名
private static List getTable() {
List<String> table_name = new ArrayList<>();
try {
Class.forName(drive);
Connection connection = DriverManager.getConnection(url, user, password); DatabaseMetaData metaData = connection.getMetaData();
ResultSet tables = metaData.getTables(null, null, null, null); while (tables.next()) {
table_name.add(tables(tables.getString("TABLE_NAME")));
} } catch (Exception e) {
e.printStackTrace();
}
return table_name;
} //创建 service 层 /**
* @param tableName 表名
*/
private static String generate_Service(String tableName) { StringBuffer sbf = new StringBuffer("package " + Package + ".service;\n" +
"\n" +
"import " + Package + ".entity." + tableName + ";\n" +
"\n" +
"import java.util.List;\n" +
"\n" +
"public interface " + tableName + "Service {\n" +
"\n" +
" /**\n" +
" * 删除操作 根据id\n" +
" *\n" +
" * @param id\n" +
" * @return\n" +
" */" +
"\n" +
" int deleteByPrimaryKey(Integer id);\n" +
"\n" +
" /**\n" +
" * 添加操作\n" +
" *\n" +
" * @param " + initlow(tableName) + "\n" +
" * @return\n" +
" */" +
"\n" +
" int insert(" + tableName + " " + initlow(tableName) + ");\n" +
"\n" +
" /**\n" +
" * 根据id查询操作\n" +
" *\n" +
" * @param id\n" +
" * @return\n" +
" */" +
"\n" +
" " + tableName + " selectByPrimaryKey(Integer id);\n" +
"\n" +
" /**\n" +
" * 全部查询操作\n" +
" *\n" +
" * @return\n" +
" */" +
"\n" +
" List<" + tableName + "> selectAll();\n" +
"\n" +
" /**\n" +
" * 修改操作\n" +
" *\n" +
" * @param " + initlow(tableName) + "\n" +
" * @return\n" +
" */" +
"\n" +
" int updateByPrimaryKey(" + tableName + " " + initlow(tableName) + ");\n" +
"}");
return new String(sbf);
} /**
* 创建ServiceImpl
*
* @param tableName 数据库表
*/
private static String generate_ServiceImp(String tableName) { String serviceImpl = "package " + Package + ".service.impl;\n" +
"\n" +
"import " + Package + ".dao." + tableName + "Mapper;\n" +
"import " + Package + ".entity." + tableName + ";\n" +
"import " + Package + ".service." + tableName + "Service;\n" +
"import org.springframework.beans.factory.annotation.Autowired;\n" +
"import org.springframework.stereotype.Service;\n" +
"\n" +
"import java.util.List;\n" +
"\n" +
"@Service\n" +
"public class " + tableName + "ServiceImpl implements " + tableName + "Service {\n" +
"\n" +
" @Autowired\n" +
" private " + tableName + "Mapper " + initlow(tableName) + "Mapper;\n" +
"\n" +
" /**\n" +
" * 删除操作 根据id删除\n" +
" *\n" +
" * @param id\n" +
" * @return\n" +
" */\n" +
" @Override\n" +
" public int deleteByPrimaryKey(Integer id) {\n" +
" return " + initlow(tableName) + "Mapper.deleteByPrimaryKey(id);\n" +
" }\n" +
"\n" +
" /**\n" +
" * 添加操作\n" +
" *\n" +
" * @param " + initlow(tableName) + "\n" +
" * @return\n" +
" */\n" +
" @Override\n" +
" public int insert(" + tableName + " " + initlow(tableName) + ") {\n" +
" return " + initlow(tableName) + "Mapper.insert(" + initlow(tableName) + ");\n" +
" }\n" +
"\n" +
" /**\n" +
" * 根据id查询操作\n" +
" *\n" +
" * @param id\n" +
" * @return\n" +
" */\n" +
" @Override\n" +
" public " + tableName + " selectByPrimaryKey(Integer id) {\n" +
" return " + initlow(tableName) + "Mapper.selectByPrimaryKey(id);\n" +
" }\n" +
"\n" +
" /**\n" +
" * 全部查询操作\n" +
" *\n" +
" * @return\n" +
" */\n" +
" @Override\n" +
" public List<" + tableName + "> selectAll() {\n" +
" return " + initlow(tableName) + "Mapper.selectAll();\n" +
" }\n" +
"\n" +
" /**\n" +
" * 修改操作\n" +
" *\n" +
" * @param " + initlow(tableName) + "\n" +
" * @return\n" +
" */\n" +
" @Override\n" +
" public int updateByPrimaryKey(" + tableName + " " + initlow(tableName) + ") {\n" +
" return " + initlow(tableName) + "Mapper.updateByPrimaryKey(" + initlow(tableName) + ");\n" +
" }\n" +
"}\n";
return serviceImpl;
} /**
* 创建Controller
*
* @param tableName 数据库表
*/
private static String generate_Controller(String tableName) {
String controller = "package " + Package + ".controller;\n" +
"import " + Package + ".entity." + tableName + ";\n" +
"import " + Package + ".service.impl." + tableName + "ServiceImpl;\n" +
"import org.springframework.beans.factory.annotation.Autowired;\n" +
"import org.springframework.web.bind.annotation.*;\n" +
"import java.util.List;\n" +
"\n" +
"@RestController\n" +
"@RequestMapping(\"/" + initlow(tableName) + "\")\n" +
"public class " + tableName + "Controller {\n" +
" @Autowired\n" +
" private " + tableName + "ServiceImpl " + initlow(tableName) + "ServiceImpl;\n" +
"\n" +
" /**\n" +
" * 根据id删除\n" +
" * 要求转入 id\n" +
" *\n" +
" * @param id\n" +
" * @return\n" +
" */\n" +
" @GetMapping(\"/deleteByPrimaryKey/{id}\")\n" +
" public Object deleteByPrimaryKey(@PathVariable(\"id\") int id) {\n" +
" try {\n" +
"\n" +
" return " + initlow(tableName) + "ServiceImpl.deleteByPrimaryKey(id) > 0 ? \"删除成功\" : \"删除失败\";\n" +
" } catch (Exception ex) {\n" +
" return \"出错,请重试!\";\n" +
" }\n" +
" }\n" +
"\n" +
" /**\n" +
" * 添加对象" + initlow(tableName) + "\n" +
" *\n" +
" * @param " + initlow(tableName) + "\n" +
" * @return\n" +
" */\n" +
" @PostMapping(\"/insert\")\n" +
" public Object insert(@RequestBody " + tableName + " " + initlow(tableName) + ") {\n" +
" try {\n" +
" return " + initlow(tableName) + "ServiceImpl.insert(" + initlow(tableName) + ") > 0 ? \"添加成功!\" : \"添加失败!\";\n" +
" } catch (Exception ex) {\n" +
" return \"出错,请重试!\";\n" +
" }\n" +
"\n" +
" }\n" +
"\n" +
" /**\n" +
" * 根据id查找对象 最多只能返回一个对象\n" +
" *\n" +
" * @param id \n" +
" * @return\n" +
" */\n" +
" @GetMapping(\"/selectByPrimaryKey/{id}\")\n" +
" public Object selectByPrimaryKey(@PathVariable(\"id\") int id) {\n" +
" try {\n" +
" " + tableName + " " + initlow(tableName) + "1 = " + initlow(tableName) + "ServiceImpl.selectByPrimaryKey(id);\n" +
" if (" + initlow(tableName) + "1 == null) {\n" +
" return \"无数据\";\n" +
" } else {\n" +
" return " + initlow(tableName) + "1;\n" +
" }\n" +
" } catch (Exception ex) {\n" +
" return \"出错,请重试!\";\n" +
" }\n" +
" }\n" +
"\n" +
" /**\n" +
" * 查询所有数据\n" +
" *\n" +
" * @return\n" +
" */\n" +
" @GetMapping(\"/selectAll\")\n" +
" public Object selectAll() {\n" +
" //public Result selectAll(@RequestParam(defaultValue = \"1\") int pageNum, @RequestParam(defaultValue = \"10\") int pageSize) {\n" +
" try {\n" +
" //分页\n" +
" //PageHelper.startPage(pageNum, pageSize);\n" +
" List<" + tableName + "> list = " + initlow(tableName) + "ServiceImpl.selectAll();\n" +
" if (list == null) {\n" +
" return \"无数据\";\n" +
" } else {\n" +
" // return new Result().success(list, " + initlow(tableName) + "Service.count(\"\"));\n" +
" return list;\n" +
" }\n" +
" } catch (Exception ex) {\n" +
" return \"出错,请重试!\";\n" +
" }\n" +
" }\n" +
"\n" +
" /**\n" +
" * 根据id修改全部字段\n" +
" *\n" +
" * @param " + initlow(tableName) + "\n" +
" * @return\n" +
" */\n" +
" @PutMapping(value = \"/updateByPrimaryKey\")\n" +
" public Object updateByPrimaryKey(@RequestBody " + tableName + " " + initlow(tableName) + ") {\n" +
" try {\n" +
" return " + initlow(tableName) + "ServiceImpl.updateByPrimaryKey(" + initlow(tableName) + ") > 0 ? \"修改成功\" : \"修改失败\";\n" +
" } catch (Exception ex) {\n" +
" return \"出错,请重试!\";\n" +
" }\n" +
"\n" +
"\n" +
" }\n" +
"}\n";
return controller;
} //创建 service serviceImp Controller
private static void create(File file, String context) { //获取文件
File parent = file.getParentFile();
//如果不是目录
if (parent != null) {
//创建目录
parent.mkdirs();
}
try {
//创建文件
file.createNewFile();
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file);
fileWriter.write(context);
fileWriter.flush();
fileWriter.close();
} catch (IOException e) { }
} catch (IOException e) {
System.out.println("创建文件失败:" + e.getMessage());
}
} // 调用入口
private static void start() { String path = projectPath + "/src/main/java/";
String[] split = Package.split("\\.");
for (String s : split) {
path += s + "/";
}
List table = getTable();
for (Object str : table) {
create(new File(path + "service/" + str + "Service.java"), generate_Service((String) str));
create(new File(path + "/service" + "/impl/" + str + "ServiceImpl.java"), generate_ServiceImp((String) str));
create(new File(path + "controller/" + str + "Controller.java"), generate_Controller((String) str));
}
} //删除自动生成类
private static void del_0() {
String[] clazzName = Thread.currentThread().getStackTrace()[1].getClassName().split("\\."); String path = projectPath + "/src/main/java/";
String[] split = Package.split("\\.");
for (String s : split) {
path += s + "/";
}
File f = new File(path + clazzName[3] + ".java");
f.delete();
System.out.println(clazzName[3] + ".java 文件已经删除....");
String path1 = projectPath + "/src/main/resources/generatorConfig.xml";
File f1 = new File(path1);
f1.delete();
del_build();
} // 删除 pom.xml 中 build 节点
private static void del_build(){
String propertyPath = System.getProperty("user.dir");
File f = new File(propertyPath + "/pom.xml" ); try {
InputStream in = new FileInputStream(f);
byte[] arr = new byte[(int) f.length()];
in.read(arr);
in.close(); String context = new String(arr); int i = context.indexOf("<build>");
int ii = context.indexOf("</build>") + 8; String replace = context.replace(context.substring(i, ii), ""); OutputStream out = new FileOutputStream(f);
out.write(replace.getBytes());
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
} /**
* ====================================下面是生成配置文件的=======================================================
*/ //删除文件
private static void del() {
String path = System.getProperty("user.dir") + "/src/main/java/"; String[] split = Package.split("\\.");
for (String s : split) {
path += s + "/";
}
String[] className = Thread.currentThread().getStackTrace()[1].getClassName().split("\\."); File f = new File(path + className[3] + ".java");
f.delete(); } //调用入口
private static void start_1() { String path = System.getProperty("user.dir") + "/src/main/resources/";
String path1 = System.getProperty("user.dir") + "/src/main/webapp/WEB-INF/web.xml";
createFile(path + "jdbc.properties", new String(generate_jdbc()));
createFile(path + "mybatis-config.xml", new String(generate_mybatisConfig()));
createFile(path + "logback-config.xml", new String(generate_logBack()));
createFile(path + "spring-root.xml", new String(generate_springRoot()));
createFile(path + "spring-web.xml", new String(generate_springWeb()));
createFile(path1, new String(generate_xml()));
} private static void createFile(String path, String content) {
File f = new File(path);
try {
f.createNewFile();
OutputStream out = new FileOutputStream(f);
out.write(content.getBytes());
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
} //自动生成 jdbc.properties 文件
private static StringBuffer generate_jdbc() {
StringBuffer sbf = new StringBuffer();
sbf.append("jdbc.driver=org.mariadb.jdbc.Driver\n" +
"jdbc.url=" + url + " \n" +
"jdbc.username=" + user + "\n" +
"jdbc.password=" + password + "");
return sbf;
} //自动生成 web.xml 文件
private static StringBuffer generate_xml() {
StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\"\n" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
" xsi:schemaLocation=\"http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd\"\n" +
" version=\"4.0\">\n" +
" <!--项目名-->\n" +
" <display-name>" + projectName + "</display-name>\n" +
"\n" +
" <!--配置spring容器-->\n" +
" <context-param>\n" +
" <param-name>contextConfigLocation</param-name>\n" +
" <param-value>classpath:spring-root.xml</param-value>\n" +
" </context-param>\n" +
" <listener>\n" +
" <!--上下文环境侦听器-->\n" +
" <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n" +
" </listener>\n" +
"\n" +
" <!--配置springMVC容器-->\n" +
" <servlet>\n" +
" <servlet-name>webs</servlet-name>\n" +
" <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>\n" +
" <init-param>\n" +
" <param-name>contextConfigLocation</param-name>\n" +
" <param-value>classpath:spring-web.xml</param-value>\n" +
" </init-param>\n" +
" <multipart-config>\n" +
" <!--上传文件的大小限制,比如下面表示 5 M-->\n" +
" <max-file-size>5242880</max-file-size>\n" +
" <!--一次表单提交中文件的大小限制,必须下面代表 10 M -->\n" +
" <max-request-size>10485760</max-request-size>\n" +
" <!-- 多大的文件会被自动保存到硬盘上。0 代表所有 -->\n" +
" <file-size-threshold>0</file-size-threshold>\n" +
" </multipart-config>\n" +
" </servlet>\n" +
" <!--将所有请求拦截下来,交给spring mvc 处理-->\n" +
" <servlet-mapping>\n" +
" <servlet-name>webs</servlet-name>\n" +
" <url-pattern>/</url-pattern>\n" +
" </servlet-mapping>\n" +
"\n" +
" <!--汉字编码问题-->\n" +
" <filter>\n" +
" <filter-name>setEncoding</filter-name>\n" +
" <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>\n" +
" <init-param>\n" +
" <param-name>encoding</param-name>\n" +
" <param-value>UTF-8</param-value>\n" +
" </init-param>\n" +
" </filter>\n" +
" <filter-mapping>\n" +
" <filter-name>setEncoding</filter-name>\n" +
" <url-pattern>/*</url-pattern>\n" +
" </filter-mapping>\n" +
"</web-app>");
return sbf;
} //自动生成 spring-root.xml 文件
private static StringBuffer generate_springRoot() {
StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
"<beans xmlns=\"http://www.springframework.org/schema/beans\"\n" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
" xmlns:contxt=\"http://www.springframework.org/schema/context\"\n" +
" xsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd\">\n" +
"\n" +
" <!--扫描 service 包中所使用注解的类-->\n" +
" <contxt:component-scan base-package=\"" + Package + ".service.impl\"/>\n" +
"\n" +
"\n" +
" <!--加载jdbc资源文件-->\n" +
" <contxt:property-placeholder location=\"classpath:jdbc.properties\"/>\n" +
" <!--配置数据源-->\n" +
" <bean id=\"dataSource\" class=\"com.mchange.v2.c3p0.ComboPooledDataSource\">\n" +
" <!--加载数据库驱动-->\n" +
" <property name=\"driverClass\" value=\"${jdbc.driver}\"/>\n" +
" <!--连接的数据库字符串-->\n" +
" <property name=\"jdbcUrl\" value=\"${jdbc.url}\"/>\n" +
" <!--账号、密码-->\n" +
" <property name=\"user\" value=\"${jdbc.username}\"/>\n" +
" <property name=\"password\" value=\"${jdbc.password}\"/>\n" +
" </bean>\n" +
"\n" +
" <!--配置mybatis-->\n" +
" <bean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n" +
" <!--实例化数据源-->\n" +
" <property name=\"dataSource\" ref=\"dataSource\"/>\n" +
" <!--加载mybatis的配置-->\n" +
" <property name=\"configLocation\" value=\"classpath:mybatis-config.xml\"/>\n" +
" <!--映射mapper文件-->\n" +
" <property name=\"mapperLocations\" value=\"classpath:Mapper/*.xml\"/>\n" +
" </bean>\n" +
"\n" +
" <!--简化调用-->\n" +
" <bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n" +
" <property name=\"sqlSessionFactoryBeanName\" value=\"sqlSessionFactory\"/>\n" +
" <!--加载使用的接口 -->\n" +
" <property name=\"basePackage\" value=\"" + Package + ".dao\"/>\n" +
" </bean>\n" +
"\n" +
"</beans>");
return sbf;
} //自动生成 spring-web.xml 文件
private static StringBuffer generate_springWeb() { StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
"<beans xmlns=\"http://www.springframework.org/schema/beans\"\n" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
" xmlns:contxt=\"http://www.springframework.org/schema/context\"\n" +
" xmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n" +
" xsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd\">\n" +
"\n" +
" <!--扫描web包中的注解-->\n" +
" <contxt:component-scan base-package=\"" + Package + ".controller\"/>\n" +
"\n" +
" <!--启动 mvc 常用注解-->\n" +
" <mvc:annotation-driven ></mvc:annotation-driven>\n" +
"\n" +
" <!--将所有静态资源交给server处理-->\n" +
" <mvc:default-servlet-handler/>\n" +
" \n" +
" \n" +
" <!--配置视图器-->\n" +
" <!--前后端分离,这里使用不到-->\n" +
" <bean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\">\n" +
" <property name=\"viewClass\" value=\"org.springframework.web.servlet.view.JstlView\"/>\n" +
" <!--前缀、后缀-->\n" +
" <property name=\"prefix\" value=\"/WEB-INF/jsp/\"/>\n" +
" <property name=\"suffix\" value=\".jsp\"/>\n" +
" </bean>\n" +
"\n" +
"</beans>");
return sbf;
} //自动生成 mybatis-config.xml 文件
private static StringBuffer generate_mybatisConfig() {
StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
"<!DOCTYPE configuration PUBLIC \"-//mybatis.org//DTD Config 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n" +
"\n" +
"<configuration>\n" +
" <settings>\n" +
" <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->\n" +
" <setting name=\"useGeneratedKeys\" value=\"true\" />\n" +
" <!-- 使用列别名替换列名 默认:true -->\n" +
" <setting name=\"useColumnLabel\" value=\"true\" />\n" +
" <!-- 开启驼峰命名转换:Table {create_time} -> Entity {createTime} -->\n" +
" <setting name=\"mapUnderscoreToCamelCase\" value=\"true\" />\n" +
" </settings>\n" +
" <!--配置分页插件-->\n" +
" <plugins>\n" +
" <plugin interceptor=\"com.github.pagehelper.PageInterceptor\" />\n" +
" </plugins>\n" +
"\n" +
"</configuration>");
return sbf;
} //自动生成 logback-config.xml 文件
private static StringBuffer generate_logBack() {
StringBuffer sbf = new StringBuffer();
sbf.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
"<configuration >\n" +
" <property name=\"LOG_HOME\" value=\"tp/log\"/>\n" +
"\n" +
" <appender name=\"STDOUT\" class=\"ch.qos.logback.core.ConsoleAppender\" >\n" +
" <!-- 输出的格式 -->\n" +
" <encoder class=\"ch.qos.logback.classic.encoder.PatternLayoutEncoder\">\n" +
" <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}: %msg%n</pattern>-->\n" +
" <pattern>\n" +
" %msg%n\n" +
" </pattern>\n" +
"\n" +
" </encoder>\n" +
" </appender>\n" +
"\n" +
" <!-- 监控 哪些包中的方法调用 输出日志 -->\n" +
" <logger name=\"" + Package + ".dao\" level=\"DEBUG\" additivity=\"false\">\n" +
" <!--<level value=\"INFO\" />-->\n" +
" <appender-ref ref=\"STDOUT\" />\n" +
" </logger>\n" +
"\n" +
" <root level=\"error\" additivity=\"false\" >\n" +
" <appender-ref ref=\"STDOUT\" />\n" +
" </root>\n" +
"</configuration>");
return sbf;
} }

使用IDEA 创建Maven项目,外加SSM框架的更多相关文章

  1. 【SSM】Eclipse使用Maven创建Web项目+整合SSM框架

    自己接触ssm框架有一段时间了,从最早的接触新版ITOO项目的(SSM/H+Dobbu zk),再到自己近期来学习到的<淘淘商城>一个ssm框架的电商项目.用过,但是还真的没有自己搭建过, ...

  2. Eclipse使用Maven创建Web项目+整合SSM框架

    一.准备环境: maven:apache-maven-3.2.3 jdk:jdk1.8.0_25 tomcat:tomcat-9.0 二.配置Maven.jdk 1.Window——>Prefe ...

  3. Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目

    一.前言 如果还不了解剧情,请返回第3集的剧情          Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...

  4. 【MAVEN】如何在Eclipse中创建MAVEN项目

    目录结构: contents structure [+] 1,Maven简介 2,Maven安装 2.1,下载Maven 2.2,配置环境变量 2.3,测试 3,Maven仓库 3.1,Maven仓库 ...

  5. Maven项目整合SSH框架

    ---------------------siwuxie095                                         Maven 项目整合 SSH 框架         创建 ...

  6. Maven项目整合Struts2框架

    -------------------------siwuxie095                                 Maven 项目整合 Struts2 框架         1. ...

  7. JAVA基础之——使用idea创建maven项目 以及使用tomcat本地调试springmvc

    前言:关于这个话题网上有很多,本文旨在引导实战纠偏,理论偏少,如果按照步骤还不能达到本文目的,请留言. 1 环境准备 1.1 软件准备 idea:官方下载社区版,下载后安装 maven:Apache- ...

  8. eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本

    eclipse 创建 maven 项目时如何修改 web 的版本和 jdk 的版本 在使用 eclipse 创建 maven 项目的时候,默认的 web.xml 的版本时 2.3,默认 jre 的版本 ...

  9. 十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法

    Maven 是一个优秀的项目管理工具,它为我们提供了一个构建完整的生命周期框架.现在,就让我们一起看看如何利用 IntelliJ IDEA 快速的创建 Maven 项目吧! 如上图所示,点击Creat ...

  10. java web开发入门九(Maven使用&idea创建maven项目)基于intellig idea

    Maven 1.解决的问题 jar包的依赖和管理:版本.依赖关系等 自动构建项目 2.maven介绍 1.Maven是什么? Apache Maven是一个软件项目管理的综合工具.基于项目对象模型(P ...

随机推荐

  1. 网站私有CA证书制作

              所谓的网站安全证书 是通过在客户端浏览器和Web服务器之间建立一条SSL安全通道保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否真实可靠. 大体步骤: ...

  2. 用了 10 多年的 Tomcat 居然有bug !

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 为了解决分布式链路追踪的问题,我们引入了实现OpenTracing的Jaeger来实现.然后我们为SpringBoot框架写 ...

  3. 只使用非递归的mutex

    mutex分为递归(以下简写为rm)和非递归(以下简写为nrm)两种,它们的唯一区别在于:同一个线程可以重复对rm加锁,但是不能重复对nrm加锁. 虽然rm使用起来要更加方便一些,并且不用考虑一个线程 ...

  4. Java中HashSet和HashMap

    Set中存储元素为什么不重复(即使hashCode相同)? HashSet中存放自定义类型元素时候,需要重写对象中的hashCode方法和equals方法, HashSet中存放自定义类型元素时候,需 ...

  5. thinkphp5发送邮件(实例代码 非常适合新手)

    第一步:在(https://pan.baidu.com/s/1Fq6lONHlft5D6jvOnNwtoA)下载 phpmailer.rar 解压 然后把文件放入 vendor目录下 第二步:在 ap ...

  6. 【问题解决方案】word2010中Mathtype公式偏上的问题解决

    参考百度百科 段落-中文版式-文本对齐方式-居中 END

  7. k3 cloud付款单提示余额不足,科目余额表中余额为正,银行存款流水账中未负数

    对比科目余额表中的科目明细账和银行存款流水账,发现科目余额表不全,这说明有部分凭证没做,付款的时候验证的主要以银行流水账为主(主要来自现金流量表),这时候需要调整出纳部分和总账部分

  8. es7.2版本安装ik分词

    (一)到官网下载https://github.com/medcl/elasticsearch-analysis-ik对应版本的ik(直接下载releases版本,避免maven打包!!!如果不是这个版 ...

  9. android——屏幕适配

    一,基本概念 1:dip: 其实也就是dp,与像素无关 2:px: 像素,在安卓布局中不用px,因为每个手机像素不同,px显示的布局大小也就不同 3:dpi: 通俗点就是每英寸多少个像素,简称像素密度 ...

  10. dsLinq.Count() 引发了“System.NullReferenceException”类型的异常

    DataTable dt = PurchaseArriveInfoBus.GetPurchaseArriveInfo(companyCD, txtArriveNo, txtTitle, txtProv ...