jdbcTemplate 获取数据表结构
- /**
- *1.方法一:
- */
- String sql = "select * from "+ tableName;
- //RowCountCallbackHandler rcch = new RowCountCallbackHandler();
- //this.jdbcTemplateDao.query(sql, rcch);
- //String[] coloumnName = rcch.getColumnNames();
- //int[] coloumnType = rcch.getColumnTypes();
- SqlRowSet sqlRowSet = this.jdbcTemplateDao.queryForRowSet(sql);
- SqlRowSetMetaData sqlRsmd = sqlRowSet.getMetaData();
- int columnCount = sqlRsmd.getColumnCount();
- for (int i = 1; i <= columnCount; i++) {
- Map<String,String> fieldMap = new HashMap<String,String>();
- fieldMap.put("name", sqlRsmd.getColumnName(i));
- fieldMap.put("fieldType", String.valueOf(sqlRsmd.getColumnType(i)));
- tableFieldList.add(fieldMap);
- }
- /**
- *方法二:
- */
- String sql = "select * from "+ tableName;
- RowCountCallbackHandler rcch = new RowCountCallbackHandler();
- this.jdbcTemplateDao.query(sql, rcch);
- String[] coloumnName = rcch.getColumnNames();
- int[] coloumnType = rcch.getColumnTypes();
下面这里是JDBC的操作方法
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import com.mysql.jdbc.Connection;
- import com.mysql.jdbc.ResultSetMetaData;
- public class OperateDB {
- public static void main(String[] args) {
- try {
- Class.forName("com.mysql.jdbc.Driver");
- String url = "jdbc:mysql://192.168.11.211/education?useUnicode=true&characterEncoding=utf-8";
- String user = "root";
- String password = "12345678";
- Connection con = (Connection) DriverManager.getConnection(url, user, password);
- Statement statement = con.createStatement();
- ResultSet result = statement.executeQuery("select * from t_sys_user");
- 注意,这里,完全可以操作视图,操作表的sql语句 与操作视图的sql语句一样,
- ResultSetMetaData metadata = (ResultSetMetaData) result.getMetaData();
- List<String> metadataList = new ArrayList<String>();
- System.out.println("====================表结构=============================");
- for(int i = 1; i <= metadata.getColumnCount();i++){
- metadataList.add(metadata.getColumnName(i));
- System.out.print(metadata.getColumnName(i) + " "); //name
- System.out.print(metadata.getColumnTypeName(i) + " "); //type
- System.out.print(metadata.isNullable(i) + " "); //null
- System.out.print(metadata.getColumnCharacterSet(i) + " "); //encode
- System.out.println(); //key
- }
- System.out.println("====================表数据=============================");
- Iterator<String> i = null;
- String oneKey = null;
- while(result.next()){
- i = metadataList.iterator();
- while(i.hasNext()){
- oneKey = i.next();
- System.out.print(oneKey + ":" + result.getString(oneKey) + " ");
- }
- System.out.println();
- }
- result.close();
- statement.close();
- con.close();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
jdbcTemplate 获取数据表结构的更多相关文章
- jdbctemplate 获取数据表结构的方法&注意事项
方法一 直接查询: SqlRowSet srcSqlRowSet = srcJdbcTemplate.queryForRowSet("SELECT * FROM tablename LIMI ...
- (笔记)Mysql命令desc:获取数据表结构
desc命令用于获取数据表结构. desc命令格式: desc 表名;同样 show columns from 表名;也能获取数据表结构. 举例如下:mysql> desc MyCl ...
- 【转】Informix数据表结构分析资料整理之约束查询代码
原文地址:http://blog.csdn.net/xqf222/article/details/6271219 本文主要整理了Informix数据库相关系统表数据,已分析整个Informix数据表结 ...
- Zabbix的数据表结构
看到Zabbix的数据表结构吧,就知道数据量大了 性能问题很让人担忧,不过基于Zabbix数据库导出报表,或自动跑报表的时候,就必须去了解一下zabbix的数据表结构了,得知道XX放在哪才能找到XX, ...
- 25 Zabbix系统数据表结构介绍
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 25 Zabbix系统数据表结构介绍 自学Zabbix之路15.1 Zabbix数据库表结构简单解 ...
- navicat如何导出mysql数据表结构
我们在创建数据库时会对字段进行设置,比如类型.长度等,如果字段多的话一个个设置非常麻烦,可以从其他地方已有的表导入数据表结构,怎么操作呢?我们拿navicat导出mysql数据表结构为例: 1.点击“ ...
- phpmyadmin数据表结构没有显示注释列
新开的一个项目,用phpmyadmin作为图形化操作数据库工具.创建数据表时为其每列添加好注释,浏览数据表内容有显示注释内容,但是查看数据表结构没有显示注释列,不方便直观查看数据表每列的意思. 上网搜 ...
- .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法—获取数据库表结构方法和跟参数赋值方法
1./// <summary> /// 获取当前目标表结构 /// </summary> /// <param name="tableName"> ...
- Activiti学习(二)数据表结构
Activiti工作流引擎数据库表结构 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. l ...
随机推荐
- TCP/IP 教程
TCP/IP 是因特网的通信协议. 通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信. 浏览器和服务器都在使用 TCP/IP 因特网浏览器和因特网服务器均使用 TCP/ ...
- 利用 css 制作简单的提示框
在网页开发中,为了提高用户体验,经常会用到一些提示框来引导用户,这里分享下一些简单的提示框的制作 1.首先类似一个长方形右上角一个关闭按钮 这里用到的主要是一些定位的知识,运用relative和abs ...
- MySql事务及JDBC对事务的使用
一 .事务的几个重要特性 1. 原子性 事务内的每个内容不可分割,是一个统一的整体.或同时进行或同时消亡. 2.一致性 事务执行前和事务执行后,状态都是统一的.如A转B 100元,A和B数据总额度没有 ...
- 严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
严重: Exception starting filter struts2 java.lang.NullPointerException at com.opensymphony.xwork2.util ...
- strcpy函数导致release版程序崩溃
最近在写一个读取模型文件的小程序.很随意的使用了strcpy函数进行char字符数组的拷贝,这个数组是需要传递给PostMessage作为WPARAM的参数.代码部分如下: char pStrCurr ...
- 九度OJ 1505 两个链表的第一个公共结点 【数据结构】
题目地址:http://ac.jobdu.com/problem.php?pid=1505 题目描述: 输入两个链表,找出它们的第一个公共结点. 输入: 输入可能包含多个测试样例. 对于每个测试案例, ...
- dialog的传值
A页面 等待B页面返回值的textBox:<asp:TextBox ID="TextBox1" runat="server"></asp:Te ...
- php的运行环境介绍
php软件已下载在我的百度云:页面底部有地址,如有需要欢迎下载! 一:如何让php环境运行php代码? 直接使用php软件直接运行代码文件中的php代码 在B/S结构中让Apache使用php软件运行 ...
- Linux C 程序 两变量值交换(FIVE)
example:1.运算符: #include<stdio.h> int main(){ int a , b , c ,d ; a = ; b = a++;//先赋值给b,a再自增 c = ...
- C语言到底怎么了?
自2015年11月开始,所有C语言系列都呈现出衰落之势.在超过15年的时间里,C语言在编程语言排行榜中的占比一直有15%-20%,但今年却突然急转直下,目前占比已不足10%,且目前看来回天乏力. 那么 ...