日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

生成pojo mysql_通过数据库表反向生成pojo类

發布時間:2025/4/16 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生成pojo mysql_通过数据库表反向生成pojo类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 com.onedear.util.database.DataBaseType;

/**

* 數據庫工具類

*

* @author onedear

* @data:2010-10-21 下午06:12:39

*/

public class DBUtil {

public static final int SQLSERVER = 1;

public static final int MYSQL = 2;

public static final int ORACLE = 3;

private static final String LINE = "\r\n";

private static final String TAB = "\t";

/**

* 用于調試,懶得寫相應的參數

*

* @return

* @throws SQLException

* @throws ClassNotFoundException

*/

public static Connection getConnection() throws ClassNotFoundException, SQLException {

return getConnection("192.168.0.161:1997", "ETForMonitor_V2", "sa",

"password", DBUtil.SQLSERVER);

}

/**

*

* 通過jdbc獲取相應的數據庫鏈接connection

*

* @param ipport

* ip+port ,eg.: 192.168.0.161:1997

* @param dbName

* databaseName ,eg. : ETForMonitor_V2

* @param username

* eg.:sa

* @param password

* eg. :password

* @param type

* 請看本類的靜態變量

* @return

* @throws ClassNotFoundException

* @throws SQLException

*/

public static Connection getConnection(String ipport, String dbName,

String username, String password, int type)

throws ClassNotFoundException, SQLException {

String jdbcString = null;

if (type == SQLSERVER) {

jdbcString = "jdbc:jtds:sqlserver://" + ipport + ";databaseName="

+ dbName;

Class.forName("net.sourceforge.jtds.jdbc.Driver");

} else if (type == MYSQL) {

jdbcString = "jdbc:mysql://" + ipport + "/" + dbName;

Class.forName("org.gjt.mm.mysql.Driver");

} else if (type == ORACLE) {

jdbcString = "jdbc:oracle:thin:@" + ipport + ":" + dbName;

Class.forName("oracle.jdbc.driver.OracleDriver");

}

Connection connection = null;

connection = DriverManager

.getConnection(jdbcString, username, password);

return connection;

}

/**

* 數據庫表生成相應的java類,生成規則

* 類名= 表名(第一個字母大寫)

* 屬性名= 數據庫列名

* get/set方法 = 根據標準生成

* 其中生成的基本類型均為包裝類,例如Integer , Long , Boolean , String

* @param connection

* @param tableName

* @param dbType

* @param path

* @param isCreateFile

* @return

* @throws SQLException

*/

public static String table2pojo(Connection connection, String tableName,

int dbType, String path , boolean isCreateFile) throws SQLException {

String sql = "select * from " + tableName + " where 1 <> 1";

PreparedStatement ps = null;

ResultSet rs = null;

ps = connection.prepareStatement(sql);

rs = ps.executeQuery();

ResultSetMetaData md = rs.getMetaData();

int columnCount = md.getColumnCount();

StringBuffer sb = new StringBuffer();

tableName = tableName.substring(0, 1).toUpperCase() +tableName.subSequence(1, tableName.length());

sb.append("public class " + tableName + " {");

sb.append(LINE);

for (int i = 1; i <= columnCount; i++) {

sb.append(TAB);

sb.append("private "

+ DataBaseType.getPojoType(md.getColumnTypeName(i)) + " "

+ md.getColumnName(i) + ";");

// System.out.println("name : " + md.getColumnName(i) +

// " , type :"

// + md.getColumnTypeName(i));

sb.append(LINE);

}

for (int i = 1; i <= columnCount; i++) {

sb.append(TAB);

String pojoType = DataBaseType.getPojoType(md.getColumnTypeName(i));

String columnName = md.getColumnName(i);

String getName = null;

String setName = null;

if (columnName.length() > 1) {

getName = "public "+pojoType+" get" + columnName.substring(0, 1).toUpperCase()

+ columnName.substring(1, columnName.length()) + "() {";

setName = "public void set" + columnName.substring(0, 1).toUpperCase()

+ columnName.substring(1, columnName.length()) + "("

+ pojoType + " " + columnName + ") {";

} else {

getName = "public get" + columnName.toUpperCase() + "() {";

setName = "public set" + columnName.toUpperCase() + "(" + pojoType

+ " " + columnName + ") {";

}

sb.append(LINE).append(TAB).append(getName);

sb.append(LINE).append(TAB).append(TAB);

sb.append("return " + columnName +";");

sb.append(LINE).append(TAB).append("}");

sb.append(LINE);

sb.append(LINE).append(TAB).append(setName);

sb.append(LINE).append(TAB).append(TAB);

sb.append("this." + columnName + " = " + columnName +";" );

sb.append(LINE).append(TAB).append("}");

sb.append(LINE);

}

sb.append("}");

System.out.println(sb.toString());

if(isCreateFile)

FileUtils.stringToFile(null,tableName +".java" , sb.toString());

return null;

}

public static void main(String[] args) throws SQLException, ClassNotFoundException {

Connection con = getConnection();

table2pojo(con, "PlayBackVisitorControl", DBUtil.SQLSERVER, "" , true);

}

}

總結

以上是生活随笔為你收集整理的生成pojo mysql_通过数据库表反向生成pojo类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。