JDBC——(6)PreparedStatement的使用——查询示例演示
发布日期:2021-05-07 02:35:27 浏览次数:32 分类:精选文章

本文共 1677 字,大约阅读时间需要 5 分钟。

customers数据表
在这里插入图片描述
查询示例演示

@Test	public void test2() throws Exception {   				String sql="select name,email from customers where name = ?";		Customer customer=queryOperationWays(sql, "zlj");		System.out.println(customer);	}
//实现通用查询操作	public Customer queryOperationWays(String sql,Object ...objects) {   				Connection connection=null;		ResultSet resultSet=null;		PreparedStatement preparedStatement=null;				try {   						connection=JDBCUtils.getConnection();				    preparedStatement=connection.prepareStatement(sql);		    System.out.println(objects.length);		    for (int i = 0; i < objects.length; i++) {   						    	preparedStatement.setObject(i+1, objects[i]);			}		    //报MySQLSyntaxErrorException的原因就是这个方法里面写了sql		    resultSet=preparedStatement.executeQuery();		    			//获取结果集的元数据 :ResultSetMetaData		    ResultSetMetaData resultSetMetaData=preparedStatement.getMetaData();		    		    // 返回此 ResultSet 对象中的列数。		    int column=resultSetMetaData.getColumnCount();		    System.out.println(column);		    if (resultSet.next()) {   		    			    	Customer customer=new Customer();				//处理结果集一行数据中的每一个列		    	 for (int i = 0; i < column; i++) {   										    Object value= resultSet.getObject(i+1);				    String label=resultSetMetaData.getColumnLabel(i+1);											    	//给cust对象指定的columnName属性,赋值为columValue:通过反射					Field field = Customer.class.getDeclaredField(label);					field.setAccessible(true);					field.set(customer, value);		    	 }		    	 return customer;		    }		    		    		} catch (Exception e) {   			// TODO Auto-generated catch block			e.printStackTrace();			     }finally {   			JDBCUtils.closeResource(preparedStatement, connection);		}				return null;	}

结果

在这里插入图片描述

上一篇:JDBC——(6)PreparedStatement的使用——图解查询操作流程
下一篇:JDBC—— 小知识:Java与SQL对应数据类型转换表

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月18日 10时01分39秒