自动生成代码工具 数据库工具类

                                                    自动生成代码工具 数据库工具类

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ijwt.element.Constants;

/**
 * @author InJavaWeTrust
 */
public class UtilDB {
	
	private static Connection conn      = null;
	private static Statement st         = null;
	private static ResultSet rs         = null;
	private static DatabaseMetaData dmd = null;
	private static Logger log = LoggerFactory.getLogger(UtilDB.class);
	
	private UtilDB() {}
	
	/**
	 * 连接数据库
	 * @return
	 */
	public static Connection connection() {
		try {
			Class.forName(Constants.DRIVER);
			conn = DriverManager.getConnection(Constants.URL, Constants.USER, Constants.PASSWORD);
		} catch (ClassNotFoundException | SQLException e) {
			log.error(e.getMessage());
		}
		return conn;
	}
	
	/**
	 * 关闭链接
	 * @param rs
	 * @param st
	 * @param conn
	 */
	public static void release(ResultSet rs, Statement st, Connection conn) {
		try {
			if (null != rs) {
				rs.close();
			}
		} catch (Exception e) {
			log.error(e.getMessage());
		}
		try {
			if (null != st) {
				st.close();
			}
		} catch (Exception e) {
			log.error(e.getMessage());
		}
		try {
			if (null != conn) {
				conn.close();
			}
		} catch (Exception e) {
			log.error(e.getMessage());
		}
	}
	
	/**
	 * 根据表名查询表中列注释
	 * @param tableName 表名
	 * @return List<String>
	 */
	public static List<String> getColumnCommentByTableName(String tableName) {
		List<String> columnComments = new ArrayList<>();
		connection();
		try {
			dmd = conn.getMetaData();
			rs = dmd.getColumns(null, dmd.getUserName(), tableName, null);
			while (rs.next()) {
				columnComments.add(rs.getString("REMARKS"));
			}
		} catch (SQLException e) {
			log.error(e.getMessage());
		}
		release(rs, st, conn);
		return columnComments;
	}
	
	/**
	 * 根据表名查询表中列名
	 * @param tableName 表名
	 * @return List<String>
	 */
	public static List<String> getColumnNameByTableName(String tableName) {
		List<String> columnComments = new ArrayList<>();
		connection();
		try {
			dmd = conn.getMetaData();
			rs = dmd.getColumns(null, dmd.getUserName(), tableName, null);
			while (rs.next()) {
				columnComments.add(rs.getString("COLUMN_NAME"));
			}
		} catch (SQLException e) {
			log.error(e.getMessage());
		}
		release(rs, st, conn);
		return columnComments;
	}
	
	/**
	 * 根据表名查询表中列类型
	 * @param tableName 表名
	 * @return List<String>
	 */
	public static List<String> getColumnTypeByTableName(String tableName) {
		List<String> tableNames = new ArrayList<>();
		connection();
		try {
			dmd = conn.getMetaData();
			rs = dmd.getColumns(null, dmd.getUserName(), tableName, null);
			while (rs.next()) {
				tableNames.add(rs.getString("TYPE_NAME"));
			}
		} catch (SQLException e) {
			log.error(e.getMessage());
		}
		release(rs, st, conn);
		return tableNames;
	}
	
	/**
	 * 得到数据库中所有表名
	 * @return List<String>
	 */
	public static List<String> getAllTableName() {
		List<String> tableNames = new ArrayList<>();
		connection();
		try {
			dmd = conn.getMetaData();
			rs = dmd.getTables(null, dmd.getUserName(), null, null);
			while (rs.next()) {
				tableNames.add(rs.getString("TABLE_NAME"));
			}
		} catch (SQLException e) {
			log.error(e.getMessage());
		}
		release(rs, st, conn);
		return tableNames;
	}
	
	/**
	 * 得到数据库表注释
	 * @param tableName 表名
	 * @return 表注释
	 */
	public static String getTableCommentByTableName(String tableName) {
		String comment  = "";
		connection();
		PreparedStatement pstmt = null;
		try {
			String sql = "SHOW TABLE STATUS WHERE NAME = ?";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, tableName);
			rs = pstmt.executeQuery();
			boolean has = rs.next();
			if(has) {
				comment = rs.getString("Comment");
			}
		} catch (SQLException e) {
			log.error(e.getMessage());
		} finally {
			try {
				if (null != pstmt) {
					pstmt.close();
				}
			} catch (SQLException e) {
				log.error(e.getMessage());
			}
		}
		release(rs, st, conn);
		return comment;
	}
	
	public static void main(String[] args) {
		String list = getTableCommentByTableName("dept");
		System.out.println(list);
	}
}

 

SQL组装工具类,轻松应对复杂条件的组装 SQL组装工具类,轻松应对复杂条件、各种SQL关键字的组装。 立即下载

相关推荐

java代码自动生成器(根据数据库生成数据库操作代码)

是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成java的hibernat model,dao,manager,struts+struts2 action类,可以生成jsp的增删改查及列表页面

代码自动生成工具类

代码生成

JemeryShen的专栏 791

JDBC中动态拼接SQL的工具类

JDBC中动态拼接SQL的工具类。 对于使用纯SQL访问数据库的同学会有些帮助。 并具有一定的扩展性。

基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.0.0版)

TableGo v5.0.0版更新震撼发布,功能更加强大,速度过来围观,此次版本更新如下: 1、UI界面大改版,功能模块重新梳理,以满足未来更丰富的功能和设计。 2、新增批量生成MyBaits的Mapper映射配置文件。 3、新增根据数据库表生成SQL功能,可根据配置自动生成各种SQL。 4、修改优化根...

vipbooks的专栏 4946

数据生成工具

非常方便的一个工具,把数据从数据库中导出脚本

基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.0.0版_EXE)

官网:http://www.tablego.cn   博客:https://blog.youkuaiyun.com/vipbooks      TableGo v6.0.0 版震撼发布,此次版本更新如下: 1、UI界面大改版,组件大调整,提升界面功能的可扩展性。 2、新增BeautyEye主题,界面更加清新美观,也可以通过配置切换到原生Java主题。 3、新增合并增量更新功能,并能指定代码中哪些代码块动态更新,哪些代码块不更新。 4、新增文件更新方式配置,可根据需要使用增量更新和覆盖更新。 5、新增保存全局参数和自定义文件的JSON参管理功能。 6、生成自定义文件新增JSON参数配置,可以灵活定义各种参数并能将代码直接生成到项目源码目录中去。 7、生成自定义文件新增是否生成单一文件配置和是否收集扩展信息配置。 8、生成自定义文件新增和调整了多个参数,使模板编写更加方便快捷。 9、生成数据库文档功能新增生成标题目录功能。 10、新增主要UI界面的界面大小配置功能,可根据需求在配置文件中调整UI界面大小。 11、新增友情捐赠界面,项目的发展离不开您的支持,无论捐赠金额多少都足够表达您对我的支持。 12、新增捐赠名单界面,所有捐赠者的捐赠信息和留言都会在这里展示,以此留名。 13、按字段生成JavaBean工具新增选择自定义模板功能。 14、新增MySQL关键字表名兼容性。 15、新增log4j2,TableGo的运行日志将在logs目录中输出,方便查找问题。 16、公共参数移除两个扩展参数配置,生成JavaBean功能移除用户模板配置。 17、新增TableGo官网:http://www.tablego.cn 18、新增数据信息界面,定时从官网更新数据,捐赠名单也自动从官网更新数据。 19、新增TableGo新版本提示功能,如果官网有新版本发布,客户端会有更新提醒。 20、性能优化并修复已知Bug。

SQL动态封装工具类

http://www.javaeye.com/topic/370625

prolove3000的专栏 331

逆向生成工具,有数据库表生成java bean实体类

按照说明配置xml文件 ,执行GeneratorSqlmap中主方法即可

【MyBatis Plus】MyBatis Plus 扩展:利用代码生成器自动生成代码,Db 静态工具类的使用,逻辑删除,以及枚举和 JSON 处理器的使用

MyBatis Plus 扩展:利用代码生成器自动生成代码,Db 静态工具类的使用,逻辑删除,以及枚举和 JSON 处理器的使用

qq_61635026的博客 2977

sql转为StringBuffer

方便人们把sql转化为StringBuffer拼接语句,也可以转为String拼接语句,jdk要在1.6以上,并且配置了JAVAHOME才能运行

数学建模——相关系数(4)——斯皮尔曼相关系数(spearman)

文章目录引述斯皮尔曼相关系数(spearman)定义 引述 经过之前几节的学习,我们了解并掌握了皮尔逊相关系数。在学习中我们发现,皮尔逊相关系数的使用条件相当苛刻:两组变量必须是连续数据、呈现正态分布,且两者间必须成线性关系。如果我们在数学建模中拿到一组数据无法满足以上条件,那么有没有其他的方法去判断两组变量之间的相关性呢?答案是肯定的,它就是斯皮尔曼相关系数(spearman). 斯皮尔曼相关系...

东 6万+

自动生成Java代码,mybatis mapper文件工具

自动生成代码工具 通过freemarker模板生成MySQL数据库表对应的Javabean和mybatis mapper文件。 配置文件 模板文件 自定义异常 工具类 数据库工具类 文件工具类 模板工具类 字符串工具类 配置文件工具类 bean类 其他类...

4万+

学习笔记:物理信息神经网络(PINN)

PINN 的强大在于它打破了传统数值方法的限制,将神经网络的非线性拟合能力与物理方程的严谨性结合起来。它在处理高维、数据稀缺、复杂物理约束的场景下尤其出色。当然,PINN 也有收敛慢、梯度消失等挑战,比如,复杂 PDE 可能导致梯度传播困难,收敛慢(梯度消失)、于具有快速变化特征的系统,如冲击波,标准 PINN 可能精度不足,需要改进策略,比如自适应采样或多尺度特征提取。但随着研究深入,这些问题正在不断被解决。物理或化学方程为什么往往是偏微分方程?什么是物理信息神经网络(PINN)?x_%7Bi%7D。

qq_52635735的博客 1万+

MyBatis plus自动生成代码

这是官网中的说明: 3.相关配置说明 参考官网:MyBatis-Plus代码生成器配置 #可选配置 方法 说明 示例 dbQuery(IDbQuery) 数据库查询 new MySqlQuery(),只在SQLQuery下生效 schema(String) 数据库 schema(部分数据库适用) mybatis-plus typeConvert(ITypeConvert) 数据库类型转换器 new MySqlTypeConvert(),只在SQLQuery下生效 keyWords

在青海看海的企鹅的博客 1444

用Matlab系统辨识工具箱搞定温控系统建模:从阶跃响应到传递函数(附完整代码)

本文详细介绍了如何使用Matlab系统辨识工具箱进行温控系统建模,从阶跃响应数据采集到传递函数参数辨识的全过程。通过实际案例和完整代码,帮助工程师快速掌握PID控制参数整定技巧,提升温控系统设计效率。特别适合单片机开发者和自动化控制工程师参考。

weixin_30736301的博客 310

华为防火墙介绍和原理,配置详细解析

在出向外网的流量中,我们使用默认路由来指定默认的出口,并且使用nat地址转换,而在外网中,我们使用ISIS协议来进行路由的学习和更新,让外网可以访问到dmz非军事化区域的server1服务器。并进行NAT转换,实现了内部IP地址和外部IP地址之间的映射,以便内部网络可以与外部网络进行通信。网络地址转换(NAT):防火墙可实现网络地址转换,将内部私有IP地址转换成公共IP地址,以隐藏网络拓扑结构,增加网络安全性。确定安全需求:根据企业的安全需求和策略,确定防火墙的配置目标和规则。

外游者 5103

自动生成代码工具 其他类

自动生成代码工具 其他类 /** * @author InJavaWeTrust */ @FunctionalInterface public interface XMLElement<T, E> { /** * 获取配置文件中的元素 * @param t * @return ...

4万+

【YOLOv8系列】在Windows上离线搭建YOLOv8运行环境

我们都知道,通过 pip安装YOLOv8是非常方便的,但是有时候网络环境受到限制,比如公司的工作站(无法连接网络)或者机房的教学机器等等,只能通过离线的方式安装YOLOv8;今天就来记录一下离线搭建YOLOv8运行环境的过程。并记录了遇到的问题及解决过程。

AnChenliang_1002的博客 2006

代码自动生成(-)数据库表字段转换成java bean

最近做系统老做一些相同的工作,就想写一自动生成代码的工具类来方便以后的开法,我从网上整理修改了一些方法感觉还不错,接下来我还陆续跟新一些自动生成代码的工具类,希望对大家有用。觉得不好轻点喷。 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOE

信 5789

5G 模组 FM650 USB模式查询及网络配置

完成以上配置后,5G模组可进行搜网,入网成功后,上位机获取 5G IP。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 1325

《手把手教你修复过期K8s集群证书:记一次K8s集群起死回生实录》

今天本想打开半年前部署的K8s测试集群跑个Demo,结果`kubectl`直接报错`certificate has expired`!作为一名云原生老司机,我决定把这次'抢救'过程记录下来,手把手带大家解决这个运维常见问题。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3781

Mybatis-plus自动生成代码

1、添加依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>org.freemarker</gr

GM_115的博客 589

TIA博途中S7-1200进行MODBUS TCP通信(作为服务器)的具体方法演示

TIA博途中S7-1200进行MODBUS TCP通信(作为服务器)的具体方法演示

Robot_PLC_HMI_Automation 8617

记录一个mybatis自动生成代码

1.pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:...

Dear欢儿欢的博客 195

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Spring Boot + Mybatis Plus 整合——双剑合璧

撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>> ...

qq_18537055的博客 237

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【myblog】1.为自己写的blog

之所以删掉之前的东西,是觉得现在的我应该以一个全新的姿态,dai

体现自己的价值 1076

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 自动生成代码工具 模板文件
下一篇: 自动生成代码工具 文件工具类
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值