多表操作

## 多表操作 (DBUtils框架)##

# 基本概念
即数据库中一对多及多对多的表之间的操作;

# 基本开发步骤;
>> 添加jar包;
>> 添加Util工具类;
>> 添加domain中的基础类;
|-- customer
|-- orders
|-- 添加素材中的表;
>> 分析问题;
|-- 类与类之间没有外键关系;
|-- 那么如何完成表与表之间的关联呢?
|-- 类与类之间有的关系
|-- 继承;
|-- 包含与引用;

|-- 可以通过一个List集合来包含用户的多个订单;
|-- 在订单类中加入顾客的对象属性,即可
确认该订单是哪位顾客下的;
>> 建立一个Test包;
>> 建立一个Dao的实现类;
|-- 在当中添加实现级联的方法;
|-- 实现关联查询方法;
|-- 解释;
当查询客户的时候,连同客户的订单一起查询出来;

>> 分析问题;
|-- 希望将查询顾客和顾客订单分离开;

|-- 解决
|-- 在方法中设置flag;

# 多对多关系的维护;
>> 基本分析;
|-- 老师的类中添加一个集合用于存放学生的信息;
|-- 学生的类中添加一个集合用于存放老师的信息;

## 分页 ##

# 基本概念;
因为数据库中的数据很多,如果一次性全部加入到内存中,
会导致内存溢出;所以需要将我们指定的内容加载到内存中
来进行操作;

# 如何做分页;
>> 从数据库层面的思考;
|-- select * from account limit startInde,size;
startIndex:

>> 将分页的sql语句发送到服务器上,自然会分页进行处理并返回;

>> 在内存中进行处理,只加载前10条(该方法并未解决本质问题);

# 代码的问题;
>> 新建一个web项目;
>> 导入jar包,配置文件,Util工具类;
>> 新建一个分页主键 PageBean.java 并序列化;
|-- 定义当前页变量;
|-- 定义当前页显示的数量变量;
|-- 定义上一页的变量;
|-- 定义下一页的变量;
|-- 定义总页数变量;
|-- 定义总记录数的变量;
|-- 定义当前页的记录集合;
|-- 定义当前页第一条记录的索引 --- 用于给limit startIndex 使用;

>> 问题:
页面的计算代码需要放在什么地方?
|-- 放在get方法中,因为EL表达式会默认调用get方法;

>> 定义DAO层;
|-- 在实现类中定义获取总记录数的方法;
|-- 定义查询当前页的总记录数;

>> 定义业务逻辑层;

>> 定义Servlet层,实现视图代码;

## 监听器 (web三大组件之一)##

# 基础知识;

# 自定义监听器;
>> 定义一个事件;
>> 定义一个用于存储事件源的对象;
>> 定义一个学生监听器的接口;
|-- 定义监听学生学习的方法;
|-- 定义监听学生吃饭的方法;

>> 定义一个学生类;

# 监听器的编写步骤;
>> 写类,实现相应的Listener接口;
>> 配置web.xml文件;

# Servlet中的8个监听器;
|-- 第一组;
>> ServletContextListener;
>> HttpSessionListener;
>> ServletReuestListener;

|-- 第二组;
>> ServletContextAttributeListener;
>> HttpSessionAttrbuteListener;
>> ServletRequestAttributeListener;

|-- 第三组 --- 这两个监听器不用注册;
>> HttpSessionBindingListener;
>> HttpSessionActivationListener;

## 踢人综合示例(使用监听器实现) ##

# 开发步骤;
>> domain包中建立User类
>> 建立LoginServlet类;
>> 建立一个监听器类;

时间: 07-06

多表操作的相关文章

MySql基本的多表操作

多表操作 交叉查询(笛卡尔积查询): #A表中的每一条记录都对应B表中的所有记录,所以,A和B的交叉查询的条目数即为:A条目数*B条目数 语法: select 列名 from A cross join B where 条件 select 列名 from A,B where 条件 内查询 #A表与B表有主外键关系时,查询外键所对应的主键条目 语法: select 列名 from A inner join B on(A.外键 = B.主键);#显式内查询 select 列名 from A,B whe

Python之Django--ORM连表操作

一对多 class UserType(models.Model): caption = models.CharField(max_length=32) class UserInfo(models.Model): user_type = models.ForeignKey(UserType)# user_type对象中封装id,caption username = models.CharField(max_length=32) age = models.IntegerField() 增: 1.外键

学习MySQL之单表操作(二)

##单表操作 ##创建表 CREATE TABLE t_employee( empno INT(11), ename VARCHAR(20), job VARCHAR(40), MGR INT(11), Hiredate DATE DEFAULT '0000-00-00', sal DOUBLE(10,2), comm DOUBLE(10,2), deptno INT(11), UNIQUE INDEX uk_empno(empno) ##使用唯一索引 ); ##增 INSERT INTO t_

mysql基本认识【关系型数据库和nosql、mysql操作流程和体系,库操作,表操作,数据的操作,字符集的操作,以及php作为client操作数据库】对连接本身没有疑问

1.关系型数据库永久性保存数据的仓库php的变量只是php脚本执行期间,临时性保存变量的空间[使用内存空间临时保存] 关系型数据库:利用二者的关系来描述实体的信息.[利用二维表字段名和字段值来进行描述][关系型数据库根本不是可以使用外键将两个表构建成关联的意思,而是实现描述实体的二维表的形式] nosql:not only sql[sql表示操作关系型数据的语言]所以nosql指的就是非关系型数据库[典型的是键值对型的数据(redis.memcache)][nosql可以视情况添加信息,不需要对

mysql数据库表操作及授权

表操作:增删改查 把/etc/passwd文件的内容导入 passwd表里. mysql>load data infile"/etc/passwd" into table passwd fields terminated by ":"; 基于前面的passwd表,完成下列操作: 1:列出uid低于500且3个字母的用户 mysql> select name from passwd where uid<500 and name like "

表操作--建表语句

表操作--建表语句 1.创建默认字符集库 下面已默认格式的字符集库 mysql> create database Ysolin; Query OK, 1 row affected (0.00 sec) mysql> show create database Ysolin\G *************************** 1. row *************************** Database: Ysolin Create Database: CREATE DATABAS

前端学数据库之多表操作

× 目录 [1]准备工作 [2]多表更新 [3]两步更新[4]连接[5]无限级表 前面的话 上一篇博文中介绍了子查询的相关内容,最后我们将查询结果存储到一个新的数据表中.下面我们将接着子查询的案例,详细介绍数据库中的多表操作 准备工作 在上一篇博文,我们将详细数据存储到tdb_goods数据表中,将详细数据中的类别信息存储到tdb_goods_cates数据表中 接下来,我们要研究如何通过tdb_goods_cates数据表来更新tdb_goods表 多表更新 多表更新类似于单表更新 UPDAT

顺序表操作补充(查找方法增加)

顺序表操作补充 二分查找 a.非递归方法实现二分查找 1 //[] 2 int BinarySearch(SeqList *pSeq, ElemType x) 3 { 4 assert(pSeq); 5 int left = 0; 6 int right = pSeq->size - 1; 7 while(left<=right) 8 { 9 int cur = left+(right-left)/2; 10 if(pSeq->array[cur] == x) 11 { 12 retur

myql基本库表操作

建立数据库 create database ff default character set utf8; create database if not exists ff default charcter set utf8; 删除数据库 drop database  ff; drop database if exists ff; 查询数据库 show create database db;//查询建库语句 show create database mysql;//查询建库语句 修改数据库字符集