JDBC------之结果集元数据的操作02
时间:2021-07-01 10:21:17
帮助过:28人阅读
com.itheima.hui;
import com.itheima.hui.beans.User;
import com.itheima.hui.utils.JDBCUtils;
import jdk.internal.org.objectweb.asm.tree.FieldInsnNode;
import java.io.IOException;
import java.lang.reflect.Field;
import java.sql.*
;
public class JDBCormIgnore {
public static void main(String[] args) {
String sql = "select user_id userId, user_name userName,user_birthday userBirthday, user_gender userGender from user where user_id=?"
;
Object o = JDBCormIgnore.ignoreMatch(sql, 1
);
System.out.println(o);
}
public static Object ignoreMatch(String sql, Object... args) {
Connection connect =
null;
PreparedStatement preparedStatement =
null;
ResultSet resultSet =
null;
//1.使用自定义工具类获得连接对象
try {
connect =
JDBCUtils.getConnect();
preparedStatement =
connect.prepareStatement(sql);
//占位符赋值操作
for (
int i = 0; i < args.length; i++
) {
preparedStatement.setObject(i + 1
, args[i]);
}
//执行获得结果集
resultSet =
preparedStatement.executeQuery();
//根据结果集对象获得结果数据源
ResultSetMetaData metaData =
resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
//查询结果的列数
//获取一个查询对象
if (resultSet.next()) {
//创建User对象
User user =
new User();
for (
int i = 0; i < columnCount; i++
) {
//获取列的别名,如果没有别名的话就获取真实的列名
String columnLabel = metaData.getColumnLabel(i + 1);
Class<User> clazz = User.
class;
Object value = resultSet.getObject(i + 1
);
Field declaredField =
clazz.getDeclaredField(columnLabel);
declaredField.setAccessible(true);
declaredField.set(user, value);
}
return user;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//使用自定义工具类关闭资源
JDBCUtils.close(connect, preparedStatement, resultSet);
}
return null;
}
}
JDBC------之结果集元数据的操作02
标签:select 实现 col catch sele 属性 turn prepare name