如何使用eclipse自动创建mysql数据库中的实体类(表){直接复制粘贴就能使用了!!!}

使用方法_注:1_2只适用于普通的web项目绿色部分,_Maven只适用于maven项目蓝色部分),使用建实体类的方式(黑色部分),在util包下创建,创建类后直接运行此类,使用此类前,要先与数据库进行连接

 

package club.lygangdai.a;

 

import java.io.File;  

import java.io.FileWriter;  

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintWriter;  

import java.sql.Connection;  

import java.sql.DriverManager;  

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;  

import java.sql.SQLException;

import java.sql.Statement;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Properties;

 

 

 

 

 

 

/**

 * @ClassName: GeneratingEntityClass

 * @Description: TODO(根据数据库表名生成对应实体类,注意:同一路径下对已存在相同类名的类会被替换)

 * @author Uncle liu

 * @date 2018年6月11日 下午2:11:18

 *  

 */

public class GeneratingEntityClass_1_2 {

 

    private String packageOutPath; //指定实体生成所在包的路径  

    private String authorName; //作者名字  

    private String tablename; //表名  

    private String explain; //类说明

    private String[] colnames; // 列名数组  

    private String[] colTypes; //列名类型数组  

    private int[] colSizes; //列名大小数组  

    private boolean f_util = false; // 是否需要导入包java.util.*  

    private boolean f_sql = false; // 是否需要导入包java.sql.*  

    private Connection con = null;

    private String outputPath = null;//生成路径

 

/**

 *

 * @Description: TODO(无参构造方法)

 */

public GeneratingEntityClass_1_2() {

 

}

    

    /**

     *

     * @Description: TODO(有参构造函数/用于生成一个表实体类/生成一个多表联查)

     * @param packageOutPath 指定实体生成所在包的路径 (如:com.ly.calculator.entity)

     * @param tablename 表名  

     * @param authorName 作者名字

     * @param explain 类说明

     * @param Connection 传入数据库连接

     * 根据数据库表名生成对应实体类,注意:同一路径下对已存在相同类名的类会被替换

     */

    public GeneratingEntityClass_1_2(String packageOutPath,String tablename,String authorName,String explain,Connection con){  

     this.packageOutPath=packageOutPath;

     this.tablename=tablename;

     this.authorName=authorName;

     this.explain=explain;

     this.con=con;

    }  

 

    /**

     *

     * @Title: ToPerformAll

     * @Description: TODO(匹配无参构造方法一起使用,生成对应数据库所有表实体类)

     * @param packageOutPath 指定实体生成所在包的路径 (如:com.ly.calculator.entity)

     * @param authorName 作者名字

     * @param Connection 传入数据库连接

     */

    public void ToPerformAll(String packageOutPath,String authorName,Connection con) {

     this.packageOutPath=packageOutPath;

     this.authorName=authorName;

     this.con=con;

     Statement stmt = null;

try {

stmt = con.createStatement();

//      执行语句!

     ResultSet rs = stmt.executeQuery("show tables; ");

//      使用ResultSet对象!

     while (rs.next()) {

     this.tablename=rs.getString(1);//表名

            //生成实体类

           generate();

     }

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    }

 

    /**

     *

     * @Title: generate

     * @Description: TODO(生成实体类)  void

     */

    public void generate() {

     try {

            //查要生成实体类的表  

            String sql = "select * from " + tablename;  

            PreparedStatement pStemt = null;  

                pStemt = con.prepareStatement(sql);  

                ResultSetMetaData rsmd = pStemt.getMetaData();  

                int size = rsmd.getColumnCount();   //统计列  

                colnames = new String[size];  

                colTypes = new String[size];  

                colSizes = new int[size];  

                for (int i = 0; i < size; i++) {  

                    colnames[i] = rsmd.getColumnName(i + 1);  

                    colTypes[i] = rsmd.getColumnTypeName(i + 1);  

                      

                    if(colTypes[i].equalsIgnoreCase("datetime")){  

                        f_util = true;  

                    }  

                    if(colTypes[i].equalsIgnoreCase("image") || colTypes[i].equalsIgnoreCase("text")){  

                        f_sql = true;  

                    }  

                    colSizes[i] = rsmd.getColumnDisplaySize(i + 1);  

                }  

                String content = parse(colnames,colTypes,colSizes);  

                try {  

                    File directory = new File("");  

                    //String path=this.getClass().getResource("").getPath();  

                    String outputPath = directory.getAbsolutePath()+ "\\src\\"+this.packageOutPath.replace(".", "\\")+"\\"+initcap(tablename) + ".java";  

                    FileWriter fw = new FileWriter(outputPath);  

                    PrintWriter pw = new PrintWriter(fw);  

                    pw.println(content);  

                    pw.flush();  

                    pw.close();  

                } catch (IOException e) {  

                    e.printStackTrace();  

                }  

} catch (Exception e) {

// TODO: handle exception

}

    }

    

    /**

     *

     * @Title: generateSelect

     * @Description: TODO(多表联查生成实体类)

     * @param sql 查询sql

     * @param alias 查询表的别名

     */

    public void generateSelect(String sql) {

     try {

     PreparedStatement pStemt = null;  

            pStemt = con.prepareStatement(sql);  

            ResultSetMetaData rsmd = pStemt.getMetaData();  

            int size = rsmd.getColumnCount();   //统计列  

            colnames = new String[size];  

            colTypes = new String[size];  

            colSizes = new int[size];  

            for (int i = 0; i < size; i++) {  

                colnames[i] = rsmd.getColumnName(i + 1);  

                colTypes[i] = rsmd.getColumnTypeName(i + 1);  

                  

                if(colTypes[i].equalsIgnoreCase("datetime")){  

                    f_util = true;  

                }  

                if(colTypes[i].equalsIgnoreCase("image") || colTypes[i].equalsIgnoreCase("text")){  

                    f_sql = true;  

                }  

                colSizes[i] = rsmd.getColumnDisplaySize(i + 1);  

            }  

            String content = parse(colnames,colTypes,colSizes);  

            try {  

                File directory = new File("");  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse使用JSP文件创建数据库的过程分为以下几步: 1. 在Eclipse创建Java Web项目,包括WebContent文件夹和src文件夹; 2. 在WebContent文件夹下创建一个JSP文件,用于建操作; 3. 在JSP文件编写Java代码,使用JDBC连接数据库,并执行建语句。 下面是一个简单的示例: 1. 在Eclipse创建一个Java Web项目,并在WebContent文件夹下创建一个名为"create_table.jsp"的JSP文件; 2. 在JSP文件添加以下代码: ```jsp <%@ page import="java.sql.*"%> <% Connection conn = null; PreparedStatement pstmt = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); // 创建 String sql = "CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, age INT NOT NULL, PRIMARY KEY(id))"; pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); // 输出成功信息 out.print("创建成功!"); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭数据库连接 try { if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } %> ``` 3. 在JSP文件运行该代码,即可在数据库创建名为"user"的。 需要注意的是,建语句应该根据实际需求进行修改,以适应不同的数据结构。同时,为了保证数据安全,建议在实际项目使用连接池管理数据库连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值