import java.util.ArrayList
import java.util.Hashtable
import java.util.Listpublic class Test{ public static void main(String[] args) throws Exception {
// 驱动
String driver = "com.mysql.jdbc.Driver"
// 数据库连接
String url = "jdbc:mysql://localhost:3306/test"
// 用户名
String user = "root"
// 数据库密码
String password = "admin"
// 加载驱动
Class.forName(driver)
// 获取链接
Connection connection = DriverManager
.getConnection(url, user, password)
// 创建查询声明
PreparedStatement preparedStatement = connection
.prepareStatement("select * from dept")
// 获取结果
ResultSet resultSet = preparedStatement.executeQuery()
// 获取各个列的信息
ResultSetMetaData metaData = resultSet.getMetaData()
// 一条数据保存在一个Hashtable 将所有Hashtable存放到list
List<Hashtable<String, Object>>rows = new ArrayList<Hashtable<String, Object>>()
while (resultSet.next()) {
Hashtable<String, Object>row = new Hashtable<String, Object>()
for (int i = 1i <= metaData.getColumnCount()i++) {
// 打印列名
System.out.println(metaData.getColumnName(i))
row.put(metaData.getColumnName(i), resultSet.getObject(i))
}
rows.add(row)
}
resultSet.close()
preparedStatement.close()
connection.close()
}}
mysql里面提供了很多方法来获取表结构和表列:如下方法获得某表所有列的信息:
String sql = select * from tname//tname为某一表名
Connection conn = ....
Statement st = conn.createStatement()
ResultSet rs = st.rs = st.executeQuery(sql)
ResultSetMetaData rsmd = rs.getMetaData()
int colcount = rsmd.getColumnCount()//取得全部列数
for(int i=0i<colcounti++){
String colname = rsmd.getColumnName(i)//取得全部列名
}
以上为某表字段具体查询,如果是查询表的信息,如在mysql服务器上那样的查询结果的话,可以用一下代码:
ResultSet.executeQuery("show tables")可以的到所有的表信息。
ResultSet.executeQuery("describe tname")可以得到表的字段信息。//tname为表名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)