Java菜鸟学习日记11
2017-07-14 20:42
393 查看
4000
数据库
DBMS:数据库管理系统
是由多个程序构成的,专门用来管理大量数据的计算机系统
服务端
Server:提供数据存储、检索、计算等服务的网络程序+系统服务
Notifier:通知应用
管理端
Workbench:英文、图形化的数据库管理客户端
Navicat:中文、图形化的。。。
Shell:英文、命令行字符界面
phpAdmin:具备管理MySQL数据库的功能=BS架构
开发工具包
Connector/J:Java使用的数据库驱动(连接工具)
文档
示例代码
数据库分类
关系型数据库
MySQl
Oracle
SQL Server
。。。
用来存放规则的数据,通常要支持事务(在商业交易环境中,通过事务可以保证数据的正确性)
能够支持的数据量,事务数据百万级、非事务型数据千万
性能和速度、并发能力:一般
NoSQL(非关系型数据库)
Redis:Key-Value:内存 速度非常块
Hbase:Key-Value:大数据存储
MongDB:文档型(JSON对象):千万级,速度比较快
。。。
设计数据表
数据分析
识别数据对象(一开始是粗略的),如学生信息
分解数据属性
最好的方法是讨论
和项目组内部的人讨论
和客户讨论(在需求调研时详细询问)
分解结果详细记录,准备进一步识别数据对象和第二层分解
分解时注意的细节
类型是什么
用简单类型能否表示
如果是复杂类型的话,初步分解
长度
随时间或环境变化是否会改变
值的取值范围
会不会有无值的情况
默认值是什么
分解属性和识别数据对象需要反复多次
创建表
命名规范
表明及字段名全部小写,单数使用单数,单词之间用_分隔
根据需求合理设置字段属性
填充数据进行功能验证
能够方便的查询出所需要的数据结果(连接多个表才能得到的最复杂数据)
填充更多数据进行性能验证
填充指定量的数据,并且注意数据的质量,验证增删改查的性能
数据的基本字段
自增:向表中插入新数据时,不需插入,而是会自动生成,规则是本列最大值+1(通常)
主键用来唯一表示一条数据
通常使用id充当。如果数据字段中有一个字段可以确保唯一性,并且是整数或比较短的字段串也可以充当主键
有一些表没有id,也可以使用2个表甚至更多个列组合作为主键,只要能够保证组合的唯一性即可
主键一定有索引功能的。通过主键查找数据速度很快。
逻辑删除
业务上已经不需要该数据,系统中也看不到,但数据库中并没有删除它
系统在筛选数据时故意把它们排除掉了(status!=-2)
SQL语句
查询所有数据(返回所有列)
Select * From 表名
返回指定列
Select 列名,列名,列名 From 表名(如果列名有关键字冲突,则需要用``包裹:ESC下边的符号)
插入数据
insert into 表名 (列名,列名,列名)Value(值,值,值)
查询条件
Select * From 表名 Where 逻辑表达式
status <>=-2:不等于-2
status !=-2:不等于-2
status > -2:大于-2
逻辑运算符
AND
OR
需要时加()
更新数据
Update 表名
Set 列名=值,
列名=值,
列名=值
Where 逻辑表达式
删除数据(删除后无法恢复)
Delete From 表名
Where 逻辑表达式
IN列表
Select * From 表名 Where id in(3,4,5,6,7)
查询数据条数
Select Count(1) AS 列的别名 From 表名 Where 逻辑表达式
JDBC
JDBC是JDK中连接和操作数据库的类的统称
它包含Java.sql包下的多个类和接口,定义了:
Connection:数据库连接
DriverManager:数据库驱动管理
Statement:定义了SQL语句和执行SQL语句的方法
ResultSet:数据查询结果集
上面的JDBC类或接口并没有提供完整数据库连接和操作能力
JDBC的具体实现是由各个数据库厂商提供的,通常在安装数据时,可以获取到这个数据库的JDBC实现(驱动包)
这样设计的原因
当时SUN没有数据库产品,主流的数据库都是其他厂商的产品
JDK为了统一数据库访问的代码,定义了JDBC的基本类和接口,由数据库厂商实现(如果不提供统一的数据库访问类,则会导致数据库访问的类变得混乱,没有标准)
写代码时,不会在代码中直接使用厂商提供的类,而是使用JDK中的类,这就导致厂商提供的类不会被加载
所以就要使用Class.forName("驱动类的名字"),驱动类加载时,静态初始化代码就会执行,驱动相关的信息就可以注册到DroverMannager等类中
JDBC流程
@WebServlet("/JDBC")
这一个注解,目标是取代web.xml中的<servlet>和<swevlet-mapping>配置
使用注解有利也有弊,早起Servlet不支持注解,后来(Servlet3)才支持大量使用注解
数据库
DBMS:数据库管理系统
是由多个程序构成的,专门用来管理大量数据的计算机系统
服务端
Server:提供数据存储、检索、计算等服务的网络程序+系统服务
Notifier:通知应用
管理端
Workbench:英文、图形化的数据库管理客户端
Navicat:中文、图形化的。。。
Shell:英文、命令行字符界面
phpAdmin:具备管理MySQL数据库的功能=BS架构
开发工具包
Connector/J:Java使用的数据库驱动(连接工具)
文档
示例代码
数据库分类
关系型数据库
MySQl
Oracle
SQL Server
。。。
用来存放规则的数据,通常要支持事务(在商业交易环境中,通过事务可以保证数据的正确性)
能够支持的数据量,事务数据百万级、非事务型数据千万
性能和速度、并发能力:一般
NoSQL(非关系型数据库)
Redis:Key-Value:内存 速度非常块
Hbase:Key-Value:大数据存储
MongDB:文档型(JSON对象):千万级,速度比较快
。。。
设计数据表
数据分析
识别数据对象(一开始是粗略的),如学生信息
分解数据属性
最好的方法是讨论
和项目组内部的人讨论
和客户讨论(在需求调研时详细询问)
分解结果详细记录,准备进一步识别数据对象和第二层分解
分解时注意的细节
类型是什么
用简单类型能否表示
如果是复杂类型的话,初步分解
长度
随时间或环境变化是否会改变
值的取值范围
会不会有无值的情况
默认值是什么
分解属性和识别数据对象需要反复多次
创建表
命名规范
表明及字段名全部小写,单数使用单数,单词之间用_分隔
根据需求合理设置字段属性
填充数据进行功能验证
能够方便的查询出所需要的数据结果(连接多个表才能得到的最复杂数据)
填充更多数据进行性能验证
填充指定量的数据,并且注意数据的质量,验证增删改查的性能
数据的基本字段
自增:向表中插入新数据时,不需插入,而是会自动生成,规则是本列最大值+1(通常)
主键用来唯一表示一条数据
通常使用id充当。如果数据字段中有一个字段可以确保唯一性,并且是整数或比较短的字段串也可以充当主键
有一些表没有id,也可以使用2个表甚至更多个列组合作为主键,只要能够保证组合的唯一性即可
主键一定有索引功能的。通过主键查找数据速度很快。
逻辑删除
业务上已经不需要该数据,系统中也看不到,但数据库中并没有删除它
系统在筛选数据时故意把它们排除掉了(status!=-2)
SQL语句
查询所有数据(返回所有列)
Select * From 表名
返回指定列
Select 列名,列名,列名 From 表名(如果列名有关键字冲突,则需要用``包裹:ESC下边的符号)
插入数据
insert into 表名 (列名,列名,列名)Value(值,值,值)
查询条件
Select * From 表名 Where 逻辑表达式
status <>=-2:不等于-2
status !=-2:不等于-2
status > -2:大于-2
逻辑运算符
AND
OR
需要时加()
更新数据
Update 表名
Set 列名=值,
列名=值,
列名=值
Where 逻辑表达式
删除数据(删除后无法恢复)
Delete From 表名
Where 逻辑表达式
IN列表
Select * From 表名 Where id in(3,4,5,6,7)
查询数据条数
Select Count(1) AS 列的别名 From 表名 Where 逻辑表达式
JDBC
JDBC是JDK中连接和操作数据库的类的统称
它包含Java.sql包下的多个类和接口,定义了:
Connection:数据库连接
DriverManager:数据库驱动管理
Statement:定义了SQL语句和执行SQL语句的方法
ResultSet:数据查询结果集
上面的JDBC类或接口并没有提供完整数据库连接和操作能力
JDBC的具体实现是由各个数据库厂商提供的,通常在安装数据时,可以获取到这个数据库的JDBC实现(驱动包)
这样设计的原因
当时SUN没有数据库产品,主流的数据库都是其他厂商的产品
JDK为了统一数据库访问的代码,定义了JDBC的基本类和接口,由数据库厂商实现(如果不提供统一的数据库访问类,则会导致数据库访问的类变得混乱,没有标准)
写代码时,不会在代码中直接使用厂商提供的类,而是使用JDK中的类,这就导致厂商提供的类不会被加载
所以就要使用Class.forName("驱动类的名字"),驱动类加载时,静态初始化代码就会执行,驱动相关的信息就可以注册到DroverMannager等类中
JDBC流程
@WebServlet("/JDBC")
这一个注解,目标是取代web.xml中的<servlet>和<swevlet-mapping>配置
使用注解有利也有弊,早起Servlet不支持注解,后来(Servlet3)才支持大量使用注解
相关文章推荐
- JAVA菜鸟学习日记——简单代码实现IOC控制反转
- 黑马程序员——学习日记11 java多线程
- Java菜鸟学习日记7
- Java菜鸟学习日记4
- Java菜鸟学习日记13
- Java学习日记11:JSP自定义标签
- Java学习日记11——构造一个对象的过程
- Java菜鸟学习日记18
- Java菜鸟学习日记25
- Java菜鸟学习日记9
- Java菜鸟学习日记27
- 黑马程序员_Java学习日记11_常用类
- Java菜鸟学习日记21
- Java菜鸟学习日记14
- Java菜鸟学习日记3
- Java菜鸟学习日记22
- Java学习日记-11 集合(1)
- Java菜鸟学习日记16
- java学习日记_11:面向对象之简单的建立一个类。
- Java菜鸟学习日记6