jdbcTemplate 获取数据表结构
2016-03-02 08:40
453 查看
jdbcTemplate 操作方法
Java代码
/**
*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的操作方法
Java代码
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();
}
}
}
Java代码
/**
*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的操作方法
Java代码
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();
}
}
}
相关文章推荐
- 重识JavaScript 之 数据类型的相互转换
- 养生篇——《人体使用手册》的“一招三式”
- 【杭电】[2041]超级楼梯
- 分解质因数
- weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool JDBC D
- 关于数组和List之间相互转换的方法
- js+css实现回到顶部按钮(back to top)
- 斐波那契数列之递归、循环
- 存储过程2
- js格式化数字 金额按千位逗号分隔
- 重画了一下网络设备接口图
- 关于引用PagerSlidingTabStrip无法引用的问题
- 利用@media screen实现网页布局的自适应
- jvm高级特性整理
- JS控制浏览器全屏
- Android学习笔记之(一)开发环境搭建
- extjs 中的afterRender, onDestroy等函数什么时候调用啊
- n位数字的全排列
- question_006-JAVA之获取中文字母的首地址???
- 高效能人士的七个习惯----再看一遍,新年再次实践,2016年宣言