OR-Mapping 设计改进(结果集元数据) | 学习笔记

简介: 简介:快速学习 OR-Mapping 设计改进(结果集元数据)

开发者学堂课程【DAO 开发实战业务分析:OR-Mapping 设计改进(结果集元数据】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/399/detail/5175


OR-Mapping 设计改进(结果集元数据)


内容介绍:

一、元数据

二、范例

三、总结


一、元数据

要想真正清楚一个合理的 OR-Mapping 设计改进,必须要清楚 JDBC 的元数据。

(1)概念

所谓的元数据指的是原始的描述数据,例如:Class 里面实际上代表的就是 Object 的元数据,而在进行查询的时候也存在相应的元数据,由于开发之中都会使用 PreparedStatement 进行开发,所以首先来观察在这个接口中定义的方法。

(2)在 PreparedStatement 接口中定义的方法

· 取得结果集元数据:因为代码长,所以先做准备。首先找到 Java.sql 包,在其中找到PreparedStatement接口,再找到 getMetaDate(),即为元数据。而返回结果为 public ResultSetMetaData getMetaData() throws SQLException(),其返回的结果为结果集的元数据。


二、范例

范例:取得结果集元数据

先编写一个测试程序,如下:

package cn.mldn.oracle.test.main;

import java.sql.Connection;

public class MetaDemo {

private static final String DBDRIVER =

“oracle.jdbc.driver.OracleDriver”;

private static final String DBURL =

“jdbc:oracle:thin:@localhost:1521:MLDN”;

private static final String DBUSER =“scott”;

private static final String PASSWORD =“tiger”;

private static ThreadLocal<Connection> threadLocal =

public static void main(String[] args) throws Exception {

Class.forName(DBDRIVER) ;

Connection conn = DriverMananger.get Connection(DBURL, DBUSER, PASSWORD) ;

String sql =SELECT mid,name,age,birthday,note,FROM member ”;

PreparedStatement pstmt = conn. preparedStatement(sql) ;

ResultSetMetaData rsmd = pstmt.getMetaData() ;

System.out.println(rsmd.getColumnCount());

conn.close();

}

}

执行后得到5,对应数量。

System.out.println(rsmd.getColumnCount());

改为System.out.println(rsmd.getColumnTypeName(1));

执行后得到结果为 VARCHAE2

而执行

System.out.println(rsmd.getColumnTypeName(2));

得到同样结果。

执行System.out.println(rsmd.getColumnTypeName(3));

得到 NUMBER,执行

System.out.println(rsmd.getColumnTypeName(4));

得到 DATE

执行System.out.println(rsmd.getColumnTypeName(5));

,得到 CLOB,可以看出得到的不只是数据。

将其再改为

System.out.println(rsmd.getColumnLabel(1) += + rsmd.getColumnTypeName(1));,

依次列举至5进行执行,得到 MID= VARCHAE2、NAME= VARCHAE2等依此类推。

而后要通过ResultSet rs = pstmt.executeQuery();进行查询后,再通过while (rs.next()) {}取出内容,然后将列名称改为小写就能与类内的属性对应上,只有把属性对应上才能用反射来处理。


三、总结

现在发现利用所有的元数据可以更加简单的实现与反射的联系,以实现动态设置的效果。

相关文章
|
8月前
|
SQL 存储 HIVE
Hive中的表是如何定义的?请解释表的结构和数据类型。
Hive中的表是如何定义的?请解释表的结构和数据类型。
117 0
|
8月前
|
存储 SQL 关系型数据库
Mysql基础篇(创建、管理、增删改表)-1
Mysql基础篇(创建、管理、增删改表)
159 0
|
8月前
|
SQL 关系型数据库 MySQL
Mysql基础篇(创建、管理、增删改表)-2
Mysql基础篇(创建、管理、增删改表)
122 0
|
存储 数据采集 架构师
谈谈数据项目中的Data mapping(数据映射)
企业数据正变得越来越分散和庞大。与此同时,对企业来说,利用数据并将其转化为可操作的见解,变得比以往任何时候都更加重要。
谈谈数据项目中的Data mapping(数据映射)
|
SQL 移动开发 开发者
OR-Mapping 设计改进(查询全部改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(查询全部改进)
105 0
|
SQL Java 数据库连接
OR-Mapping 设计改进(主键查询改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(主键查询改进)
|
SQL Java 开发者
OR-Mapping 设计改进(数据删除改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据删除改进)
100 0
|
Java 开发者
OR-Mapping 设计改进(主键配置) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(主键配置)
|
SQL 开发者
OR-Mapping 设计改进(统计查询改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(统计查询改进)
|
SQL 开发者
OR-Mapping 设计改进(数据修改改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据修改改进)
114 0