十、JDBC--元数据(五)

一、元数据

1.什么是元数据

		元数据:数据库、表、列的定义信息。

2.元数据的来源

		 +++ JDBC开发步骤:
				1.加载驱动
				2.获取连接对象
				3.创建执行不同sql的st对象
				4.执行sql
	
		 +++ JDBC资源对象:
		 		
		 		连接对象(Connection)
		 		st对象(Statement、PreparedStatement、CallStatement)
		 		结果集对象(ResultSet)
	
	通过JDBC资源对象我们可以获取到元数据。
	在jdbc中可以使用: 数据库元数据、参数元数据、结果集元数据
	

二、元数据的类型

		元数据的类型:
					DatabaseMetaData  数据库元数据
					PreparedStatement 参数元数据
					ResultSetMetaData 结果集元数据

2.1 获取数据库元数据


	//1. 数据库元数据
	@Test
	public void testDB() throws Exception {
		// 获取连接
		Connection conn = JdbcUtil.getConnection();
		// 获取数据库元数据
		DatabaseMetaData metaData = conn.getMetaData();// alt + shift + L  快速获取方法返回值
		
		System.out.println(metaData.getUserName());
		System.out.println(metaData.getURL());
		System.out.println(metaData.getDatabaseProductName());
		
	}

2.2 获取参数元数据

	
	//2. 参数元数据
	@Test
	public void testParams() throws Exception {
		// 获取连接
		Connection conn = JdbcUtil.getConnection();
		// SQL
		String sql = "select * from dept where deptid=? and deptName=?";
		// Object[] values = {"tom","888"};
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		// 参数元数据
		ParameterMetaData p_metaDate = pstmt.getParameterMetaData();
		// 获取参数的个数
		int count = p_metaDate.getParameterCount();
		
		
		// 测试
		System.out.println(count);
	}

2.3 获取结果集元数据

	
	// 3. 结果集元数据
	@Test
	public void testRs() throws Exception {
		String sql = "select * from dept ";
		
		// 获取连接
		Connection conn = JdbcUtil.getConnection();
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		// 得到结果集元数据(目标:通过结果集元数据,得到列的名称)
		ResultSetMetaData rs_metaData = rs.getMetaData();
		
		// 迭代每一行结果
		while (rs.next()) {
			// 1. 获取列的个数
			int count = rs_metaData.getColumnCount();
			// 2. 遍历,获取每一列的列的名称
			for (int i=0; i<count; i++) {
				// 得到列的名称
				String columnName = rs_metaData.getColumnName(i + 1);
				// 获取每一行的每一列的值
				Object columnValue = rs.getObject(columnName);
				// 测试
				System.out.print(columnName + "=" + columnValue + ",");
			}
			System.out.println();
		}
		
	}
	
	
发布了94 篇原创文章 · 获赞 0 · 访问量 626

猜你喜欢

转载自blog.csdn.net/weixin_45602227/article/details/104322166