JDBC——(6)PreparedStatement的使用——实现通用的查询操作

JDBC——(1)JDBC概述
JDBC——(2)数据持久化的含义和Java中的数据存储技术
JDBC——(3) JDBC程序操作和访问数据库步骤
JDBC——(4)获取数据库连接
JDBC——(4)获取数据库连接——方式一
JDBC——(4)获取数据库连接——方式二
JDBC——(4)获取数据库连接——方式三
JDBC——(4)获取数据库连接——方式四
JDBC——(4)获取数据库连接——方式五(最终版)
JDBC——小知识 :Class.forName(“com.mysql.jdbc.Driver”)的浅谈
JDBC——(5)使用Statement操作数据表的弊端
JDBC——(6)PreparedStatement的使用
JDBC——小知识:封装数据库连接和关闭操作
JDBC——(6)PreparedStatement的使用——实现通用的增删改操作
JDBC——(6)PreparedStatement的使用——增、删、改示例演示
JDBC——(6)PreparedStatement的使用——实现查询操作
JDBC——(6)PreparedStatement的使用——实现通用的查询操作
JDBC——小知识:PreparedStatement 和Statement的比较
JDBC—— 小知识:Java与SQL对应数据类型转换表
JDBC——(6)PreparedStatement的使用——查询示例演示
JDBC——小知识:ResultSet与ResultSetMetaData
JDBC——小知识:资源的释放
JDBC——(6)PreparedStatement的使用——图解查询操作流程
JDBC——(6)PreparedStatement的使用——针对不同表的查询操作
JDBC——(6)PreparedStatement的使用——批量插入数据
JDBC——(7)JDBC API小结
JDBC——(8)数据库连接池技术的概述
JDBC——(8)数据库连接池技术的概述——Druid数据库连接池技术的实现
JDBC——小知识:Druid连接池的详细配置参数

按照JDBC——(3) JDBC程序操作和访问数据库步骤
中的步骤

我们写出了如下代码
代码演示

	public Customer queryOperationsWays(String sql,Object...args){
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();
			
			ps = conn.prepareStatement(sql);
			for(int i = 0;i < args.length;i++){
				ps.setObject(i + 1, args[i]);
			}
			
			rs = ps.executeQuery();
			//获取结果集的元数据 :ResultSetMetaData
			ResultSetMetaData rsmd = rs.getMetaData();
			//通过ResultSetMetaData获取结果集中的列数
			int columnCount = rsmd.getColumnCount();
			
			if(rs.next()){
				Customer cust = new Customer();
				//处理结果集一行数据中的每一个列
				for(int i = 0;i <columnCount;i++){
					//获取列值
					Object columValue = rs.getObject(i + 1);
					
					//获取每个列的列名
//					String columnName = rsmd.getColumnName(i + 1);
					String columnLabel = rsmd.getColumnLabel(i + 1);
					
					//给cust对象指定的columnName属性,赋值为columValue:通过反射
					Field field = Customer.class.getDeclaredField(columnLabel);
					field.setAccessible(true);
					field.set(cust, columValue);
				}
				return cust;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			JDBCUtils.closeResource(conn, ps, rs);
			
		}
		
		return null;
	
	}

补充:

java.sql
类 DriverManager
管理一组 JDBC 驱动程序的基本服务。

1:static Connection getConnection(String url, String user, String password)
试图建立到给定数据库 URL 的连接。

java.sql
接口 Connection
与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
1: PreparedStatement prepareStatement(String sql)
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库

java.sql
接口 PreparedStatement
表示预编译的 SQL 语句的对象。
SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

1: void setObject(int parameterIndex, Object x)
使用给定对象设置指定参数的值。
2: boolean execute()
在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。
3: ResultSet executeQuery()
在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
4: ResultSetMetaData getMetaData()
获取包含有关 ResultSet 对象列信息的 ResultSetMetaData 对象,ResultSet 对象将在执行此 PreparedStatement 对象时返回。

java.sql
接口 ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

1:ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
2:当生成 ResultSet 对象的 Statement 对象关闭、重新执行或用来从多个结果的序列获取下一个结果时,ResultSet 对象将自动关闭。

1:Object getObject(String columnLabel)
以 Java 编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值。

java.sql
接口 ResultSetMetaData

可用于获取关于 ResultSet 对象中列的类型和属性信息的对象
1: String getColumnLabel(int column)
获取用于打印输出和显示的指定列的建议标题。

java.lang
Class Class

Class类的类表示正在运行的Java应用程序中的类和接口。
1:public Field getDeclaredField(String name)
throws NoSuchFieldException,
返回一个Field对象,它反映此表示的类或接口的指定已声明字段类对象。 name参数是一个String ,它指定了所需字段的简单名称。

java.lang.reflect
Class Field

Field提供有关类或接口的单个字段的信息和动态访问。 反射的字段可以是类(静态)字段或实例字段。
1:类 getDeclaringClass()
返回表示 类对象表示的字段的类或接口的 Field对象。
2:void set(Object obj, Object value)
将指定对象参数上的此 Field对象表示的字段设置为指定的新值。

你可能感兴趣的:(JDBC学习笔记)