您的位置:首页 > 数据库

数据库2

2016-05-29 10:12 267 查看


子查询:

某一个查询结果作为另一个查询的条件称为子查询;


CREATE TABLE Room(
id INT PRIMARY KEY AUTO_INCREMENT,
RoomAdress VARCHAR(60),
price INT,
personId INT


); DROP TABLE Room;

ALTER TABLE Room ADD CONSTRAINT fk_1 FOREIGN KEY(personId) REFERENCES person(id);

INSERT INTO Room(RoomAdress,price,personId) VALUES ('火车南站1号',138,1),('白果林地铁站',118,3),('火车北站12号',98,2), ('东风路14号',98,2),('人民南路7号',98,1),('倪家桥16号',98,3),('省体育馆2号',98,1);

JDBC

Java DateBase Connectivitu 是一种用于执行SQL语句的Java的API 它由一组用Java语言 编写的类和接口组成,通过这些类和接口,JDBC吧SQL语句发给不同类型的数据库进行处理并接受处理结果

是JAVA连接数据库的一套规范,该规范中定义了一系列接口,由数据库厂商提供实现接口,由开发者根据接口,调用实现方法,这样开发者就可屏蔽不同数据库的差异,无论连接什么数据库,对数据库做什么样的操作,都是一套API

流操作的步骤:

1.建立流;

2.操作流;

3.关闭流;

JDBC操作步骤:

1.加载驱动,建立连接;

2.执行SQL语句;

3.关闭连接;

dao模式:建立实体类和数据库表做映射,也就是哪个表对应哪个类,哪个属性对应哪个列,而JDBC操作的目的就是,完成对象数据的关系数据的转换;

ps = con.prepareStatement("insert into t_user(emName,birthday,money) values(?,?,?)"); ps.setString(1, bean.getName()); ps.setDate(2, bean.getBirthday()); ps.setInt(3,bean.getMoney());

增加,删除,修改数据必须更新数据库,否则很可能写不进数据

Statement 和 PreparedStatement的区别:

1.Statement 是 PreparedStatement 的父接扣;
2.Statement在执行SQL语句时只能以拼接字符串的方式设置值。由于每次值都不一样,所以在执行SQL语句时,都会讲SQL语句重新编译,效率较低,而PreparedStatement提供占位符方式,SQL不用每次执行,执行效率较高。
3.Statement在执行SQL语句时由于采用字符串拼接方式设置值,容易造成SQL注入;而PreparedStatement使用占位符方式设置值,无论什么值都当字符串处理,不会造成SQL注入;

SQL注入:

在执行SQL语句时,如果以拼接字串的方式设置值,如果在值中有SQL语句关键字或非法字符,可能会造成执行结果不正确或执行失败的情况,就叫SQL注入。

开闭原则:软件实体面向修改关闭,面向扩展开放。其实现核心就是抽象。将相同的代码抽象出来,便于代码重用,这就是闭,将不同的代码也抽象出来,便于功能的扩展,这就是开。

三层架构

表现层,业务层,持久层

持久层:完成数据库的操作,采用DOA模式,建立实体类和数据库进行映射,也就是哪个类对应哪个表,哪个属性对应哪个列。而持久层的目的就是完成关系数据和对象数据的转换。

业务层:完成业务处理。采用事物脚本模式。将一个业务中所有的业务操作封装成一个方法,保证方法中所有数据库更新操作同事成功,或同事失败

表现层:完成数据的 展示,采用MVC模式

M:模型。也就是实体类,完成数据的封装和数据的传输

V:视图。也就是GUI窗体。完成数据的展示

C:控制。也就是事件。完成业务方法的调用和业务流程的控制

三层架构业务顺序:

用户层------->表现层-------->业务层------->持久层------->DB

项目开发流程:

1.需求分析

2.设计

3.编码

4.调试和测试

5.上线和维护

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: