第二十六天:总结
来源:互联网 发布:体彩排列5历史开奖数据 编辑:程序博客网 时间:2024/05/06 11:54
1.用JDBC操作多个实体:
1)部门和员工(一对多关系)
部门有多个员工,员工属于一个部门
员工表中有一个外键,指向部门表中的部门号
2)老师和学生(多对多关系)
一个老师教多个学生,一个学生由多个老师教
老师表
学生表
中间表:存放老师ID和学生ID
3)操作多个实体的注意事项:
a.不管内存中的对象存在何种关系,反映到关系型数据库中,
都是使用外键表示纪录(即对象)的关联关系。
b.设计java对象如涉及到多个对象相互引用,
要尽量避免使用一对多,或多对多关系,而应尽量使用多对一描述对象之间的关系。
2.元数据:DataBaseMetaData
1)DatabaseMetaData dm = conn.getMetaData()
dm.getURL()
dm.getUserName()
dm.getDatabaseProductName()
dm.getDatabaseProductVersion()
dm.getDriverName()
dm.getDriverVersion()
dm.isReadOnly()
2)ParameterMetaData pmd = ps.getParameterMetaData()
pmd.getParameterCount()
pmd.getParameterType(int param)
3)ResultSetMetaData rsmd = rs.getMetaData()
或ResultSetMetaData rsmd = ps.getMetaData()
rsmd.getColumnCount()
rsmd.getColumnName(int column)
rsmd.getColumnTypeName(int column)
3.使用元数据进一步简化JDBC代码
insert,update,delete ----> update
select ----> query
业务背景:系统中所有实体对象都涉及到基本的CRUD操作:
a.所有实体的CUD操作代码基本相同,仅仅发送给数据库的SQL语句不同而已,
因此可以把CUD操作的所有相同代码抽取到工具类的一个update方法中,并定义参数接收变化的SQL语句。
b.实体的R操作,除SQL语句不同之外,根据操作的实体不同,对ResultSet的映射也各不相同,
因此可义一个query方法,除以参数形式接收变化的SQL语句外,
可以使用策略模式由qurey方法的调用者决定如何把ResultSet中的数据映射到实体对象中。
4.DBUtils框架:
核心:QueryRunner和ResultSetHandler
QueryRunner:
a.构造方法 ,一般传入DataSource
b.它的两个方法query 和 update
ResultSetHandler
a. Object handle (java.sql.ResultSet .rs)。
b.它的实现类有:
ArrayHandler
ArrayListHandler
BeanHandler
BeanListHandler
有List的是每一行,没List的是第一行
ColumnListHandler 某一列
KeyedHandler
MapHandler
MapListHandler
- 第二十六天:总结
- 第二十六天总结
- 连续总结第二十六天
- 第二十六篇 知识点总结
- 世界杯第二十六天
- 森纵培训第二十六天课程总结
- 集训第二十六天(2017/8/25):集训总结
- 【1701H1】【穆晨】【171105】连续第二十六天总结
- 第二十六天:听课笔记
- 实习日记->第二十六天
- PHP实战第二十六天
- 拓胜第二十六天
- 实习篇---第二十六天
- 第二十六天学习笔记
- 1613-3-傅溥衍 总结《2016年10月26日》【连续第二十六天总结】
- Java基础学习第二十六天——网络编程总结
- Java学习总结第二十六天java.lang包(三)
- 1619-7 张良 十月二十六号总结 [连续第二十六天]
- 第二十五天:总结
- 基于B/S结构与C/S结构结合的新体系结构
- 判别表达式中小括号是否匹配
- PyQt4教程 – 03 PyQt4中的菜单和工具栏
- 第二十六天:听课笔记
- 第二十六天:总结
- 在Flex应用中嵌入HTML代码
- c# SQL函数整理
- 数据视图和模板 View Template
- struts2学习笔记(5)——输入校验
- 第二十七天:听课笔记
- qmake编译示例程序HelloQt出错问题的解决
- 第二十七天:总结
- 直播星第二轮招标湖南国科成为大赢家