zoukankan      html  css  js  c++  java
  • 复习日记-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.动态代理

  • 相关阅读:
    #Leetcode# 21. Merge Two Sorted Lists
    #Leetcode# 118. Pascal's Triangle
    #LeetCode# 136. Single Number
    #Leetcode# 26. Remove Duplicates from Sorted Array
    #LeetCode# 167. Two Sum II
    #Leetcode# 58. Length of Last Word
    #LeetCode# 35. Search Insert Position
    POJ 2492 J-A Bug's Life
    #Leetcode# 27. Remove Element
    【前端】.easyUI.c#
  • 原文地址:https://www.cnblogs.com/tfboy/p/10373201.html
Copyright © 2011-2022 走看看