JDBC中的元数据——3.结果集元数据
2024-09-02 13:08:10
package metadata;
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.List;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import entity.Student;
import util.SQLUtil;
/**
* 结果集元数据:
* @author mzy
*
*/
public class Demo03 {
private static DataSource ds = new ComboPooledDataSource();
public static void main(String[] args) throws Exception {
// easyUse();
// 补充完SQLUtil中的Query方法
List<Student> list = SQLUtil.query("select * from student", null, Student.class);
for(Student student : list) {
System.out.println(student);
}
}
private static void easyUse() throws Exception {
Connection conn = ds.getConnection();
String sql = "select * from student";
PreparedStatement stmt = conn.prepareStatement(sql);
/*
* 获取参数元数据:
* 目的是取得我们需要赋值的参数数量;
* 例如如如果我们的查询中有where条件!
*/
ParameterMetaData param = stmt.getParameterMetaData();
int count = param.getParameterCount();
Object[] values = null;
System.out.println(count);
/* // 因为恒无法进入,所以注释掉
if(values != null) { // 当传入的values为空,说明不需要参数
// 有需要赋值的参数的时才进行if中的操作
for(int i=0; i<count; i++) {
stmt.setObject(i+1, values[i]);
}
}
*/
ResultSet rs = stmt.executeQuery();
/*
while(rs.next()) {
// 原来的办法,手动的取出每一行中的数据
int id = rs.getInt(1);
String name = rs.getString(2);
System.out.println(id+"\t"+name);
}
*/
// 这里的while中从结果集中取得元素的时候
// 程序并不知道没一行有几个元素
// 所以这里需要结果集元数据,就可以知道一共有几列了
ResultSetMetaData metaData = rs.getMetaData();
int col = metaData.getColumnCount();
while(rs.next()) {
// 遍历每列
for(int i=1; i<=col; i++) {
Object value = rs.getObject(i);
System.out.print(value+"\t");
}
System.out.println();
}
conn.close();
}
}
其中部分已经封装到了SQLUtil中,请点击
最新文章
- iOS图片模糊效果与阴影效果
- OpenSSL命令---pkcs12
- 关于foreach中对集合执行Add或者Remove操作引发枚举值被修改异常
- 20160816_Redis一些资料
- 基于Storm的工程中使用log4j
- 6.css文本样式
- React Native学习-CameraRoll
- CSS3—六边形
- eclipse 代码中突然出现特殊字符
- HDU -1284钱币兑换
- 计算机网络课程优秀备考PPT之第五章网络层(五)
- easelJS - Cache_vday
- .net 网站应对压力的一些方案总结
- vi的常用命令
- easyui+ajax获取同表关联的数据
- MysqL读写分离的实现-Mysql proxy中间件的使用
- SSM项目搭建之配置文件
- Mountaineers Gym - 102021M (LCA+MST)
- js变量和函数声明的提升
- set-----》集合