`
mr.lili
  • 浏览: 152738 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类

java ResultSet获得数据库表信息和表字段信息,自动生成pojo和spring 框架的service 和dao

 
阅读更多

package com.hskj.operateDbUtils;

 

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

 

/**

 * 

 * @创建时间:2017年3月14日 @创建人:lili @类说明: @修改时间: @修改人: @修改说明:

 */

public class ReadDb {

 

private static String url = "jdbc:mysql://10.0.1.1/newspaper?useUnicode=true&characterEncoding=utf8&autoReconnect=true";// 简单写法:url

private static String user = "root";

private static String password = "hskj2015";

 

private static Connection conn = null;

private static Statement stmt = null;

private static ResultSet rs = null;

 

public static void main(String[] args) {

//System.out.println(">>>");

ReadDb obj = new ReadDb();

obj.getCon();

//obj.query();

 

List<String> tbList = obj.getTables();//获得数据库里所有表名称

for (String str : tbList) {

System.out.println("///////////////////////");

if("categoryTb".equalsIgnoreCase(str.trim())){

//System.out.println("表名:"+str);

 

System.out.println("表名:"+str);

List<String> colList = obj.getCols(str);

//for (String col : colList) {

//System.out.println("列:"+col);

//}

//

GenerateClass.generatePojo(str, colList, "f:/pojo/","com.hskj.model");//生成pojo

GenerateClass.generateDao(str, colList, "f:/dao/","com.hskj.dao");//生成 dao

GenerateClass.generateService(str, colList, "f:/service/","com.hskj.service");//生成 dao

 

}

//break;

}

 

}

 

 

 

/**

* 获得表信息

*/

public List<String> getTables() {

List<String> tbList = new ArrayList<String>();

try {

DatabaseMetaData m_DBMetaData = conn.getMetaData();

ResultSet tbRs = m_DBMetaData.getTables(null, "%", "%", new String[] { "TABLE" });

String tmp = "";

while (tbRs.next()) {

tbList.add(tbRs.getString("TABLE_NAME"));

// System.out.println(tbRs.getString("TABLE_NAME"));

}

if(null != tbRs ){

tbRs.close();

tbRs = null;

}

 

 

} catch (Exception e) {

System.out.println("获得数据库表名错误");

e.printStackTrace();

}

 

return tbList;

}

 

/**

* 获得表里所有 字段

* @param tbName

*/

public List<String> getCols(String tbName) {

List<String> colsList = new ArrayList<String>();

try {

DatabaseMetaData m_DBMetaData = conn.getMetaData();

ResultSet colRet = m_DBMetaData.getColumns(null, "%", tbName, "%");

String col = "";

String colType = "";

while (colRet.next()) {

col = colRet.getString("COLUMN_NAME");

colsList.add(col);

//colType = colRet.getString("TYPE_NAME");

}

if(null != colRet ){

colRet.close();

colRet = null;

}

} catch (Exception e) {

System.out.println("获得" + tbName + "表字段错误");

e.printStackTrace();

}

return colsList;

}

 

/**

* 查询

*/

public void query() {

try {

stmt = conn.createStatement();

String sql = "select * from userTb";// dept这张表有deptno,deptname和age这三个字段

rs = stmt.executeQuery(sql);// 执行sql语句

while (rs.next()) {

System.out.print(" --------------- ");

System.out.print(rs.getString("id") + "  , ");

System.out.print(rs.getString("account") + "  , ");

System.out.println(rs.getString("phoneNumber") + "   ");

}

} catch (SQLException e) {

System.out.println("数据操作错误");

e.printStackTrace();

}

}

 

/**

* 获得连接

*/

public void getCon() {

try {

Class.forName("com.mysql.jdbc.Driver"); // 加载mysq驱动

 

} catch (ClassNotFoundException e) {

System.out.println("驱动加载错误");

e.printStackTrace();// 打印出错详细信息

}

try {

conn = DriverManager.getConnection(url, user, password);

} catch (SQLException e) {

System.out.println("数据库链接错误");

e.printStackTrace();

}

}

 

/**

* 关闭连接

*/

public void colseCon() {

// 关闭数据库

try {

if (null != rs) {

rs.close();

rs = null;

}

if (null != stmt) {

stmt.close();

stmt = null;

}

if (null != conn) {

conn.close();

conn = null;

}

} catch (Exception e) {

System.out.println("数据库关闭错误");

e.printStackTrace();

}

}

 

}

 

//////////////////////////////////////////////////////////////////////////////////////////

package com.hskj.operateDbUtils;

 

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

 

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.jpa.repository.Modifying;

import org.springframework.data.jpa.repository.Query;

import org.springframework.stereotype.Repository;

import org.springframework.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;

 

import com.hskj.dao.UserDao;

import com.hskj.dao.UserDaoImpl;

import com.hskj.model.Admin;

import com.hskj.model.User;

import com.hskj.service.UserService;

import com.hskj.utils.BaseDao;

import com.hskj.utils.BasoDaoImpl;

 

/**

 * 

 * @创建时间:2017年3月14日 @创建人:lili

 * @类说明:生成类文件 @修改时间: @修改人: @修改说明:

 */

public class GenerateClass {

 

// private static String filePath = "f:";

 

public static void main(String[] args) {

String tbName = "adminTb";

tbName = tbName.replaceAll("(?i)tb", "");

System.out.println(tbName);// 替换所有大小写的tb

tbName = tbName.substring(0, 1).toUpperCase() + tbName.substring(1);

System.out.println(tbName);// 替换所有大小写的tb

 

generatePojo(tbName, null, "/pojo/", "com.hskj.model");

// if(){

//

// }

}

 

/**

* 生成dao

* @param tbName

*            表名称

* @param colList

*            访表下面相应的字段

*/

public static void generateService(String tbName, List<String> colList, String fileNamePath, String packageStr) {

String replacTbStr = tbName.replaceAll("(?i)tb", "");// 替换所有大小写的tb

String fileName = replacTbStr;

fileName = fileName.substring(0, 1).toUpperCase() + fileName.substring(1);// 首字母大写

fileName = fileName.trim();

try {

 

// 生成dao文件

File file = new File(fileNamePath + fileName + "Service.java");

if (!file.exists()) {

file.createNewFile();

}

 

FileWriter fw = new FileWriter(file);

BufferedWriter bw = new BufferedWriter(fw);

StringBuffer sb = new StringBuffer();

 

sb.append(" package " + packageStr + ";\r\n");

 

sb.append(" import java.util.List;\r\n");

sb.append(" import com.hskj.model." + fileName + ";\r\n");

sb.append("   \r\n");

 

sb.append(" public interface " + fileName + "Service{  \r\n");

 

sb.append("   \r\n");

 

//根据id获得Obj

sb.append(" /**  \r\n");

sb.append(" * 根据用户id获得Obj对象信息  \r\n");

sb.append(" *   \r\n");

sb.append(" * @param id  \r\n");

sb.append(" * @return  \r\n");

sb.append(" */  \r\n");

sb.append(" public "+fileName+" getObjByid(String id);  \r\n");

 

//根据ids删除

sb.append(" /** \r\n");

sb.append("  * 批量删除Obj \r\n");

sb.append(" *  \r\n");

sb.append(" * @param ids \r\n");

sb.append(" */ \r\n");

sb.append(" public void delete"+fileName+"ByIds(List<String> ids); \r\n");

 

//根据条件查询

sb.append(" /** \r\n");

sb.append(" * 根据对象信息条件查询对象信息 \r\n");

sb.append(" *  \r\n");

sb.append(" * @param o \r\n");

sb.append(" * @return \r\n");

sb.append(" */ \r\n");

sb.append(" public List<"+fileName+"> getDatasBycods("+fileName+" o); \r\n");

 

//添加和修改

sb.append(" /** \r\n");

sb.append(" * 添加或修改对象 \r\n");

sb.append(" * @param o  对象实体 \r\n");

sb.append(" * @return \r\n");

sb.append(" */ \r\n");

sb.append(" public void addOrUpdate"+fileName+"("+fileName+" o); \r\n");

 

sb.append("  \r\n");

 

 

sb.append(" } " + "\r\n");

 

bw.write(sb.toString());

bw.close();

 

 

// 生成daoImpl文件

// 生成dao文件

file = new File(fileNamePath + "/Impl/" + fileName + "ServiceImpl.java");

if (!file.exists()) {

file.createNewFile();

}

 

fw = new FileWriter(file);

bw = new BufferedWriter(fw);

sb = new StringBuffer();

 

sb.append(" package " + packageStr + ".Impl;\r\n");

 

sb.append(" import java.util.List; \r\n");

sb.append(" import java.util.ArrayList; \r\n");

sb.append(" import java.util.Arrays; \r\n");

 

sb.append(" import javax.persistence.criteria.CriteriaBuilder; \r\n");

sb.append(" import javax.persistence.criteria.CriteriaQuery; \r\n");

sb.append(" import javax.persistence.criteria.Predicate; \r\n");

sb.append(" import javax.persistence.criteria.Root; \r\n");

 

sb.append(" import org.apache.commons.lang3.StringUtils; \r\n");

sb.append(" import org.springframework.beans.factory.annotation.Autowired; \r\n");

sb.append(" import org.springframework.data.domain.Page; \r\n");

sb.append(" import org.springframework.data.domain.PageRequest; \r\n");

sb.append(" import org.springframework.data.domain.Pageable; \r\n");

sb.append(" import org.springframework.data.jpa.domain.Specification; \r\n");

sb.append(" import org.springframework.stereotype.Service; \r\n");

 

String tmp0 = packageStr.replace("service", "model");

String tmp1 = packageStr.replace("service", "dao");

 

sb.append(" import "+ tmp0 +"."+ fileName + "; \r\n");

sb.append(" import "+ tmp1 +"."+ fileName + "Dao; \r\n");

sb.append(" import "+ tmp1 +"."+ fileName + "DaoImpl; \r\n");

sb.append(" import "+ packageStr+"." + fileName + "Service; \r\n");

 

 

sb.append("   \r\n");

 

sb.append(" @Service(\""+replacTbStr+"Service\") \r\n");

sb.append(" public class "+fileName+"ServiceImpl implements "+fileName+"Service{ \r\n");

 

sb.append("   \r\n");

 

sb.append(" @Autowired \r\n");

sb.append(" private "+fileName+"Dao "+replacTbStr+"Dao; \r\n");

sb.append(" @Autowired \r\n");

sb.append(" private "+fileName+"DaoImpl "+replacTbStr+"DaoImpl; \r\n");

 

 

//根据id获得Obj

sb.append(" /**  \r\n");

sb.append(" * 根据用户id获得Obj对象信息  \r\n");

sb.append(" *   \r\n");

sb.append(" * @param id  \r\n");

sb.append(" * @return  \r\n");

sb.append(" */  \r\n");

sb.append(" @Override  \r\n");

sb.append(" public "+fileName+" getObjByid(String id){  \r\n");

sb.append(" return "+replacTbStr+"Dao.getObjByid(id); \r\n");

sb.append(" } \r\n");

 

//根据ids删除

sb.append(" /** \r\n");

sb.append("  * 批量删除Obj \r\n");

sb.append(" *  \r\n");

sb.append(" * @param ids \r\n");

sb.append(" */ \r\n");

sb.append(" public void delete"+fileName+"ByIds(List<String> ids){ \r\n");

sb.append(" "+replacTbStr+"Dao.delete"+fileName+"(ids); \r\n");

sb.append(" } \r\n");

 

//根据条件查询

sb.append(" /** \r\n");

sb.append(" * 根据对象信息条件查询对象信息 \r\n");

sb.append(" *  \r\n");

sb.append(" * @param o \r\n");

sb.append(" * @return \r\n");

sb.append(" */ \r\n");

sb.append(" public List<"+fileName+"> getDatasBycods("+fileName+" o){ \r\n");

sb.append(" return "+replacTbStr+"DaoImpl.getDatasBycods(o); \r\n");

sb.append(" } \r\n");

 

//添加和修改

sb.append(" /** \r\n");

sb.append(" * 添加或修改对象 \r\n");

sb.append(" * @param o  对象实体 \r\n");

sb.append(" * @return \r\n");

sb.append(" */ \r\n");

sb.append(" public void addOrUpdate"+fileName+"("+fileName+" o){ \r\n");

sb.append(" "+replacTbStr+"Dao.save(o); \r\n");

sb.append(" } \r\n");

sb.append("  \r\n");

 

 

sb.append(" } " + "\r\n");

 

bw.write(sb.toString());

bw.close();

 

System.out.println("Done");

 

} catch (IOException e) {

System.out.println("写dao文件出错:" + tbName);

e.printStackTrace();

}

}

 

/**

* 生成dao

* @param tbName

*            表名称

* @param colList

*            访表下面相应的字段

*/

public static void generateDao(String tbName, List<String> colList, String fileNamePath, String packageStr) {

String fileName = tbName.replaceAll("(?i)tb", "");// 替换所有大小写的tb

fileName = fileName.substring(0, 1).toUpperCase() + fileName.substring(1);// 首字母大写

fileName = fileName.trim();

try {

 

// 生成dao文件

File file = new File(fileNamePath + fileName + "Dao.java");

if (!file.exists()) {

file.createNewFile();

}

 

FileWriter fw = new FileWriter(file);

BufferedWriter bw = new BufferedWriter(fw);

StringBuffer sb = new StringBuffer();

 

sb.append(" package " + packageStr + ";\r\n");

 

sb.append(" import org.springframework.data.jpa.repository.Modifying;\r\n");

sb.append(" import org.springframework.data.jpa.repository.Query;\r\n");

sb.append(" import org.springframework.transaction.annotation.Transactional;\r\n");

sb.append(" import com.hskj.model." + fileName + ";\r\n");

sb.append(" import com.hskj.utils.BaseDao;\r\n");

sb.append(" import java.util.List; \r\n");

sb.append("   \r\n");

 

sb.append(" public interface " + fileName + "Dao extends BaseDao<" + fileName + ", Integer>{  \r\n");

 

sb.append("   \r\n");

 

sb.append(" /** \r\n");

sb.append(" * 根据用户id获得Obj对象信息\r\n");

sb.append(" * @param id\r\n");

sb.append(" * @return \r\n");

sb.append(" */ \r\n");

sb.append(" @Query(\"select o from " + fileName + " o where o.id=?1 and o.isDelete = '0' \") \r\n");

sb.append(" public "+fileName+" getObjByid(String id); \r\n");

 

sb.append("  \r\n");

sb.append("  /** \r\n");

sb.append("  * 批量删除Obj \r\n");

sb.append("  * @param ids \r\n");

sb.append("  */ \r\n");

sb.append("  @Transactional \r\n");

sb.append("  @Modifying \r\n");

sb.append("  @Query(\"update " + fileName + " o set o.isDelete='1' where o.id in(?1)\") \r\n");

sb.append("  public void delete" + fileName + "(List<String> ids); \r\n");

 

sb.append(" } " + "\r\n");

 

bw.write(sb.toString());

bw.close();

 

// 生成daoImpl文件

// 生成dao文件

file = new File(fileNamePath + fileName + "DaoImpl.java");

if (!file.exists()) {

file.createNewFile();

}

 

fw = new FileWriter(file);

bw = new BufferedWriter(fw);

sb = new StringBuffer();

 

sb.append(" package " + packageStr + "; \r\n");

 

sb.append(" import java.util.ArrayList; \r\n");

sb.append(" import java.util.List; \r\n");

sb.append(" import javax.persistence.Query; \r\n");

sb.append(" import org.springframework.stereotype.Repository; \r\n");

sb.append(" import org.springframework.transaction.annotation.Transactional; \r\n");

sb.append(" import com.hskj.model." + fileName + "; \r\n");

sb.append(" import com.hskj.utils.BasoDaoImpl; \r\n");

 

sb.append("   \r\n");

// sb.append(" @Repository \r\n");

sb.append(" public class " + fileName + "DaoImpl extends BasoDaoImpl{ \r\n");

 

sb.append(" /** \r\n");

sb.append(" * 根据对象信息条件查询对象信息 \r\n");

sb.append(" * @param o \r\n");

sb.append(" * @return \r\n");

sb.append(" */ \r\n");

sb.append(" public List<"+fileName+"> getDatasBycods("+fileName+" o) { \r\n");

sb.append(" StringBuilder hql = new StringBuilder(); \r\n");

sb.append(" hql.append(\"select o from "+fileName+" o where o.isDelete = '0' \"); \r\n");

sb.append(" Query query = em.createQuery(hql.toString()); \r\n");

sb.append(" List<"+fileName+"> vList = new ArrayList<"+fileName+">(); \r\n");

sb.append(" vList = query.getResultList(); \r\n");

sb.append(" return vList; \r\n");

sb.append(" } \r\n");

 

sb.append(" } " + "\r\n");

 

bw.write(sb.toString());

bw.close();

 

System.out.println("Done");

 

} catch (IOException e) {

System.out.println("写dao文件出错:" + tbName);

e.printStackTrace();

}

}

 

/**

* 生成pojo

* @param tbName

*            表名称

* @param colList

*            访表下面相应的字段

*/

public static void generatePojo(String tbName, List<String> colList, String fileNamePath, String packageStr) {

// System.out.println("表名:" + tbName);

// String packageStr = "com.hskj.model";

 

String fileName = tbName.replaceAll("(?i)tb", "");// 替换所有大小写的tb

fileName = fileName.substring(0, 1).toUpperCase() + fileName.substring(1);// 首字母大写

try {

// String content = "This is the content to write into file";

File file = new File(fileNamePath + fileName + ".java");

if (!file.exists()) {

file.createNewFile();

}

 

FileWriter fw = new FileWriter(file);

BufferedWriter bw = new BufferedWriter(fw);

StringBuffer sb = new StringBuffer();

 

sb.append(" package " + packageStr + ";\r\n");

 

sb.append(" import javax.persistence.*; \r\n");

sb.append(" @Entity \r\n");

sb.append(" @Table(name = \"" + tbName + "\") \r\n");

sb.append(" public class " + fileName + "{ \r\n");

// sb.append(" ");

 

// 属性

for (String col : colList) {

// System.out.println("列:" + col);.

sb.append(" private String  " + col + "; \r\n");

}

// 构造方法

sb.append(" public " + fileName + "() { " + "\r\n");

sb.append(" super(); " + "\r\n");

sb.append(" } " + "\r\n");

 

String tmp = "";

for (String col : colList) {

if ("id".equalsIgnoreCase(col)) {// 如果是主键id

sb.append(" @Id " + "\r\n");

sb.append(" @Column(name = \"" + col + "\") " + "\r\n");

 

tmp = col;

tmp = tmp.substring(0, 1).toUpperCase() + tmp.substring(1);// 首字母大写

sb.append(" public String get" + tmp + "() { " + "\r\n");

sb.append(" return id; " + "\r\n");

sb.append(" } " + "\r\n");

 

sb.append(" public void set" + tmp + "(String id) { " + "\r\n");

sb.append(" this.id = id; " + "\r\n");

sb.append(" } " + "\r\n");

 

} else {

tmp = col;

tmp = tmp.substring(0, 1).toUpperCase() + tmp.substring(1);// 首字母大写

sb.append(" public String get" + tmp + "() { " + "\r\n");

sb.append(" return " + col + "; " + "\r\n");

sb.append(" } " + "\r\n");

sb.append(" public void set" + tmp + "(String " + col + ") { " + "\r\n");

sb.append(" this." + col + " = " + col + "; " + "\r\n");

sb.append(" } " + "\r\n");

}

}

sb.append(" } " + "\r\n");

 

bw.write(sb.toString());

bw.close();

 

System.out.println("Done");

 

} catch (IOException e) {

System.out.println("写pojo文件出错:" + tbName);

e.printStackTrace();

}

}

}

 

分享到:
评论

相关推荐

    java如何获得数据库表中各字段的字段名

    ### Java如何获得数据库表中各字段的字段名 在Java编程中,经常需要与数据库进行交互,例如查询、更新或删除等操作。其中一项常见需求是获取数据库表中的所有字段名称。这通常在动态生成报表或者需要根据数据库结构...

    Java+RestltData获取数据库、数据库表、表字段、执行sql等数据源操作源码

    本篇将围绕Java结合`RestltData`获取数据库、数据库表、表字段以及执行SQL等数据源操作的相关知识点进行深入探讨。 首先,`RestltData`这个名字可能是"Result Data"的缩写,它可能是一个用来封装查询结果的对象,...

    Java源码获取数据库中表的字段信息

    在Java编程中,获取数据库中表的字段信息是一项常见的任务,尤其在开发数据操作相关的应用程序时。这通常涉及到反射、JDBC(Java Database Connectivity)以及SQL查询。下面将详细介绍如何通过Java来实现这一功能。 ...

    java生成数据库表序列号

    在Java编程中,生成数据库表序列号通常涉及到数据库序列(Sequence)的概念,这是数据库系统用于自动为表生成唯一标识符的一种机制。Oracle、PostgreSQL等数据库支持序列,而MySQL等数据库可能通过自增主键来实现...

    JAVA Dao 数据库操作

    Java DAO(Data Access Object)模式是Java编程中用于数据库操作的一种设计模式,它提供了一种在业务逻辑和数据库之间解耦的方式。DAO类是专门用来与数据库进行交互的,负责执行SQL语句,处理结果集,以及进行事务...

    java数据库连接ResultSet

    Java 数据库连接 ResultSet Java 数据库连接中的 ResultSet 是一个非常重要的概念,它包含符合 SQL 语句中条件的所有行,并且提供了对这些行中数据的访问。ResultSet 通过一套 get 方法访问当前行中的不同列,例如 ...

    java程序读取数据库表 转为sql文件 仅供参考 不得宣传

    在Java编程环境中,读取数据库表并将其转换为SQL文件是一项常见的任务,特别是在数据迁移、备份或测试场景中。下面将详细介绍如何实现这个过程,并基于给出的标题和描述进行讲解。 1. **配置文件读取**: 首先,...

    java生成数据库字典表mysql doc-generator

    Java生成数据库字典表MySQL Doc-Generator是一款实用的工具,旨在帮助开发者将MySQL数据库中的表结构信息导出为Word文档,方便进行数据库设计文档的整理和分享。这个工具简化了手动编写数据库字典表的过程,提高了...

    java判断数据库表是否存在

    ### Java判断数据库表是否存在 在Java开发中,经常会遇到需要检查特定表是否存在于数据库中的情况。这通常是数据库操作流程中的一个重要环节,确保后续的操作(如插入、更新或删除数据)能够顺利进行。本文将详细...

    java连接mysql数据库实例框架

    在Java编程领域,连接MySQL数据库是一项基础且重要的任务,它涉及到Java数据库连接(JDBC)技术的使用。本文将深入探讨如何在Eclipse编辑器环境下,利用JDBC API实现一个简单的登录注册框架,以与MySQL数据库进行...

    JAVA根据数据库表生成word表格文档

    本篇文章将深入探讨如何使用Java和Apache POI从数据库表中读取数据并将其转化为Word表格。 首先,你需要在项目中引入Apache POI库。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org....

    java获取数据库主外键

    本文将详细介绍如何使用Eclipse和JDBC API来获取MySQL数据库中的表结构以及主外键信息。 #### 一、准备工作 在开始之前,请确保你的开发环境已经安装了Eclipse IDE,并且项目中已经配置好了MySQL的JDBC驱动。此外...

    Java EE 查询 将数据库中对应的表逐行转换成DAO实体类。List方式返回。自动赋值时忽略大小写的名称进行匹配,自动赋值到指定的实体类中。

    首先,DAO实体类是Java编程中表示数据库表结构的对象,它通常包含对应于数据库表字段的属性,并且提供一些基本的CRUD(创建、读取、更新、删除)操作方法。例如,如果你有一个名为`User`的数据库表,那么对应的DAO...

    javaResultSet常用方法.pdf

    Java ResultSet是Java数据库连接(JDBC)中最重要的组件之一,用于存储和处理数据库查询结果。在Java中,ResultSet对象是通过Statement对象的executeQuery()方法或prepareStatement()方法执行SQL语句后生成的。...

    java 自动生成数据库字典

    在Java开发中,自动化生成数据库字典可以极大地提高工作效率,减少手动编写文档的工作量,确保信息的准确性和一致性。本篇文章将深入探讨如何使用Java来实现这一功能,并结合MySQL数据库和Markdown格式进行讲解。 ...

    oracle数据库表,字段信息导出为excel

    总的来说,通过结合JDBC和Apache POI,我们可以实现从Oracle数据库中提取表结构信息,并将其导出为Excel文件,以满足数据管理和共享的需求。这个过程中,需要注意处理可能的异常,优化性能,以及保持代码的可读性...

    表字段描述依赖包

    标题中的“表字段描述依赖包”指的是在数据库操作中,特别是使用ORM(对象关系映射)框架时,需要处理数据库表的字段描述信息。ORMlite是这样的一个框架,它允许开发者用面向对象的方式操作数据库,将数据库表与Java...

    JAVA 版本ResultSet 转换为JAVABEAN的工具类

    在Java编程中,ResultSet是处理数据库查询结果的主要接口,它由Statement或PreparedStatement对象执行SQL查询后返回。而JavaBean是一种符合特定规范的Java类,通常用于封装数据,便于数据的传输和操作。当我们从...

    Java实验8 数据库.doc

    实验8 数据库编程是Java高级程序设计中的一项重要内容,它涉及到Java如何与数据库进行交互,以便执行CRUD(创建、读取、更新、删除)操作。在这个实验中,学生需要编写一个Java程序来操作名为Staff的数据库表。以下...

    数据库dao操作jdbc

    在Java中,通常会为每个数据库表创建一个DAO类,用于执行CRUD(Create、Read、Update、Delete)操作。 JDBC(Java Database Connectivity)是Java语言连接数据库的标准API,它提供了与多种数据库进行交互的能力。在...

Global site tag (gtag.js) - Google Analytics