“Java面向对象思想”与“数据库结构”间的关系

Author:天添豆浆
计算机科学与技术专业,迷摇滚的理科男
新手村码农,第六篇博客,宏观讨论下Java面向对象思想与数据库之间的联系。

数据库结构

1.数据库(Database)

一个数据库由一个或一组数据表组成。每个数据库都以文件的形式存放在磁盘上,即对应于一个物理文件。不同的数据库,与物理文件对应的方式也不一样。
2.数据表(Table)
简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。 一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个班所有学生的考试成绩,可以存放在一个表中,表中的每一行对应一个学生,这一行包括学生的学号,姓名及各i门课程成绩。
3.记录(Record)
表中的每一行称为一个记录,它由若干个字段组成。
4.字段(Field)
也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。
5.索引(Index)
为了提高访问数据库的效率,可以对数据库使用索引。当数据库较大时,为了查找指定的记录,则使用索引和不使用索弓|的效率有很大差别。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。
6.查询(Query)
一条SQL(结构化查询语言)命令,用来从一个或多个表中获取一组指定的记录,或者对某个表执行指定的操作。当从数据库中读取数据时往往希望读出的数据符合某些条件,并且能按某个字段排序。使用SQL,可以使这一操作容易实现而且更加有效。SQL是非过程化语言(有人称为第四代语言),在用它查找指定的记录时,只需指出做什么,不必说明如何做。每个语句可以看作是一个查询(query), 根据这个查询,可以得到需要的查询结果。
7.过滤器(Filter)
过滤器是数据库的一个组成部分,它把索引和排序结合起来,用来设置条件,然后根据给定的条件输出所需要的数据。
8.视图(view)
数据的视图指的是查找到(或者处理)的记录数和显示(或者进行处理)这些记录的顺序。在一般情况下,视图由过滤器和索引|控制。

思考:数据库结构和Java面向对象的理论结构之间有什么关联呢?

在思考这个问题前先想想另外一个问题:怎么将一个Map<String,Object>转成JavaBean?

package com.softeem.lesson49.example;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

import com.softeem.lesson49.entity.User;

/**
 * 	 思考如何实现将Map<String,Object>转换为javabean;(反射)
 * 
 * @author 75256
 *
 */
public class MapToBeans {

	public static <T> T getObject(Map<String,Object> map,Class<T> t) {
		T obj = null;
		try {
			//创建目标对象
			obj = t.newInstance();
			//获取对象中的所有字段(放入数组)
			Field[] field = t.getDeclaredFields();//导lang包
			//遍历字段数组
			for(Field f : field) {
				String fname = f.getName();
				//根据属性名获取Map中对应的值
				Object value = map.get(fname);
				//设置属性可访问
				f.setAccessible(true);
				//为目标对象设置值  u.setId(10);   u.id=10;
				f.set(obj, value);
			}
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
		return obj;
	}
	
	
	public static void main(String[] args) {
		Map<String,Object> map = new HashMap<>();
		map.put("id", 10);
		map.put("username", "admin");
		map.put("password", "softeem");
		
		User user = getObject(map, User.class);
		System.out.println(user);
		
	}
}

不难看出,把一个键值对的Map集合转成一个java对象不难。

那么,如果有一个List集合,List<Map<String,Object>,
就可以作为一个“装很多Java对象的集合”,
那么这个装有一堆对象的集合,就可以对应数据库中的一张“表”。

数据库中每个对象都有唯一索引,且每个对象都有各自的属性。

“键值对”集合Map中的键——String作为索引,
值——Object作为对象的各个属性,
一一对应,就成了数据库中的结构。

示范:

id——键(对象索引)
lowsal、hisal、level——值(对象属性)
在这里插入图片描述

引用举例

idea中可以一键将已经编辑好的数据库表导成java实体类 ,特方便!
但前提是:数据库表一定要设计好!
在这里插入图片描述
在这里插入图片描述

参考资料

百度百科

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值