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()) {}取出内容,然后将列名称改为小写就能与类内的属性对应上,只有把属性对应上才能用反射来处理。


三、总结

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

相关文章
|
自然语言处理 索引
09 Lucene索引库查询 - query子类查询
09 Lucene索引库查询 - query子类查询
52 0
|
存储 数据采集 架构师
谈谈数据项目中的Data mapping(数据映射)
企业数据正变得越来越分散和庞大。与此同时,对企业来说,利用数据并将其转化为可操作的见解,变得比以往任何时候都更加重要。
谈谈数据项目中的Data mapping(数据映射)
|
缓存 自然语言处理 数据挖掘
白话Elasticsearch50-深入聚合数据分析之基于doc values正排索引的聚合内部原理
白话Elasticsearch50-深入聚合数据分析之基于doc values正排索引的聚合内部原理
121 0
|
SQL Java 数据库连接
OR-Mapping 设计改进(主键查询改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(主键查询改进)
|
SQL 移动开发 开发者
OR-Mapping 设计改进(查询全部改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(查询全部改进)
105 0
|
SQL Java 开发者
OR-Mapping 设计改进(数据删除改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据删除改进)
101 0
|
Java 开发者
OR-Mapping 设计改进(主键配置) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(主键配置)
|
SQL 开发者
OR-Mapping 设计改进(数据修改改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据修改改进)
115 0
|
SQL 开发框架 数据处理
OR-Mapping 设计改进(数据增加改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据增加改进)
116 0
|
关系型数据库 MySQL 索引
Mysql建表3大约束+条件查询、分页语法+难点聚合案例解析
Mysql建表3大约束+条件查询、分页语法+难点聚合案例解析
188 0