复习日记-SQL+连接池

SQL的分类:

  DDL:数据定义语言

      操作对象:数据库和表

      关键字:create、alter、drop

  DML:  数据操作语言

      操作对象:记录

      关键字:insert、update、delete

  DQL:  数据查询语言

  DCL:  数据控制语言

       操作对象:用户、权限、事务

     关键字:grant

where和having的区别:

  1.where是对分组前的数据进行过滤,不能使用聚合函数

  2.having是对分组后的数据进行过滤,可以使用聚合函数

在Oracle中没有varchar,这是MySQL方言

MySQL                                          Java

date:日期                                        Java..sql.Date

time:时间                                                                    

timestamp:时间戳  若类型为timestamp的字段给值为null,则会自动用当前的时间赋值

datetime:日期+时间

text:一部小说等长文本,对应Java中的Java.sql.Clob

blob:二进制数据,对应Java中的Java.sql.Blob

//////////////////////////////////////////////////////////////////////////////

truncate:清空表

格式:truncate 表名;干掉表,重新创建一张空表

truncate和delete的区别:

  delete属于DML语句  truncate属于DDL语句

  delete逐条删除    truncate删掉表,重新创建

因此:delete表之后,再insert一条数据,自增id是继删除前的值递增的,表维护了一个全局变量

   truncate表之后,自增id是重新开始从头自增

auto_increment  自增

  使用前提:

    1.被修饰字段类型支持自增操作

    2.被修饰字段必须是一个key,一般是primary   key

外键约束:

    一般不使用,使用Java程序来维护数据完整性,即使要使用,也是在项目上线前夕添加

开发中:

  一对多:使用外键,不添加约束

  多对多:建立中间表,将两个表的主键设置为联合主键

内连接:

    格式1.:select  a.*,b.* from a  [inner] join b  on  ab的连接条件

    格式2: select a.*,b.*  from a,b  where  ab的连接条件

外连接:select  a.*,b.* from a left  [outer] join b  on  连接条件

  左外连接:先展示left join左边的表a所有数据,根据关联查询join右边的表,符合条件展示出来,不符合条件以null展示

  右外连接:同理

左外右外使用情景:查询所有用户订单、查询所有部门的职员人数

子查询: 一个查询的条件依赖另一个查询的结果

////////////////////////////////////////////////////////////////////////////////

JDBC:  java操作数据库,是Oracle公式制定的一套规范接口,不同的数据库公司提供不同的实现类(数据库驱动)

jdbc操作步骤:

  注册驱动、获取连接、编写SQL、创建预编译语句执行者、设置SQL参数、执行SQL、处理结果、释放资源

常见的配置文件格式

  1.properties  内容格式:key=value

  2.xml

若我们的配置文件为properties,并且放在src目录下,则我们可以通过ResourceBundle工具快速获取里面的配置信息

  使用步骤:

     1.获取ResourceBundle对象;

        static ResourceBundle  getBundle("文件名且不带后缀");

     2.通过ResourceBundle对象获取配置信息

        String  getString(String key)     通过指定key获取value

连接池:

  管理数据库连接

  作用:提高项目性能

  所有连接池必须实现一个接口:javax.sql.DataSource

自定义一个连接池

常用连接池;

  DBCP:

    apache公司

    不能自动回收空闲连接

  C3P0:

    有自动回收空闲连接的功能

    配置文件名称:

    c3p0.properties或者c3p0-config.xml

    配置文件路径:src下

/////////////////////////////////////////////////////

增强方法:

  1.继承

  2.装饰者模式(静态代理)

    使用步骤:

      1.装饰者和被装饰者实现同一个接口或者继承同一个类

      2.装饰者中有被装饰者的引用

      3.对需要加强的方法进行增强  

      4.对不需要加强的方法使用原来的方法即可

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  3.动态代理

原文地址:https://www.cnblogs.com/tfboy/p/10373201.html