JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

★数据库★

一、设计表
       设计表首先应该按需遵循三范式
       1.确定表名          2.确定字段名 类型 +约束(主键 外键 非空 默 检查认 唯一)
       主键: 唯一标识一条记录(唯一并且非空)
       唯一: 唯一
       非空:不能为空
        默认: 当没给值时使用给定一个默认值
        外键:参考其他表(自己)的某个(某些)字段
        检查:自定义的规则

         JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

二、创建表
       表名必须唯一,如果存在 ,必须删除
       1、创建表(不加约束)
             1)、创建新表

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

        2)、已有表中拷贝结构

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

         3)、删除表

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

      2、创建表(同时创建约束+默认名称)
            这种在创建表的同时创建约束并使用默认约束名称的方式,后期不方便排错, 所以不推荐使用。其主要的优点是简单。

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

             JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

          3、创建表(同时创建约束+指定名称)
                创建表的同时创建约束并指定约束的名称,后期方便排错,推荐使用

                JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

                JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

                JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

                JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

        4、创建表(追加创建约束+指定名称)
                推荐, 便于后期排错

               JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

               JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

               JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

二、约束(了解)
       在oracle中所有的一切都是对象, 约束也是一个个的对象,除了能创建约束我们还能对约束进行一些其他的操作

       1、查看某个用户的约束

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

        2、查看表的约束

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

       3、查看 字段名+约束

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

       4、约束的禁用与启用

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

       5、删除约束

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

       6、修改约束

            JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

三、表的其他操作

1、修改表结构

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

2、删除表
1、先删除从表 再删除主表
2、删除表的同时删除约束

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

3、截断数据
truncate: 截断所有的数据 ,如果截断的是主表,结构不能存在 外键关联
截断数据同时 从结构上 检查

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

四、序列
使用工具|程序管理流水号,序列在创建时 没有与表关联 ,在操作数据时 与表关联

1、创建

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

2、使用

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

3、删除

JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

 

 

 

 

 

 

★JDBC★

        jdbc: java database connectivity java与数据库的连接

                 JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.    JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

一.角色分类

     1.服务器(db):a)、接收sql b)、执行sql c)、返回结果

     2.客户端 (java):a)、接收数据 b)、组装sql c)、发送SQL(与数据库建立联系) d)、分析结果

二.面向接口编程

     1.java 制定标准 ,不同的数据库厂商实现 接口即可。java 中提供的接口 java.sql.*包下,常用接口如下

           JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

       2.oracle厂商实现接口 (jar)

          F:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar 视安装路径而定

三.JDBC步骤

             JavaSE.20190517.数据库(四)JDBC.角色分类.面向接口编程.JDBC步骤.连接.处理块.分析.释放资源.

四.连接

      1.准备工作

         1)引入驱动包

         2)构建路径 build path

         3)  测试用户是否正确登录

       2.建立连接

         1)连接字符串
              驱动: oracle.jdbc.driver.OracleDriver
              url: jdbc:oracle:thin:@db服务器地址:端口:实例

              连接url→jdbc:oracle:thin:@localhost:1521:orcl
              用户名与密码: scott tiger

          2)编写测试类
               加载驱动
                a)硬编码: new oracle.jdbc.driver.OracleDriver();
                b)软编码: class.forName("oracle.jdbc.driver.OracleDriver")
                建立连接
                Connection con =DriverManager.getConnection("jdbc:oracle:thin:@locahost:1521:orcl","scott","tiger")

五.处理块

     1.静态处理块Statement

        Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语          句。Statement对象,用于执行不带参数的简单SQL语句。 执行静态 SQL 语句并返回它所生成结果的对象。
        1)创建 : 连接.Connection.createStatement()
        2)执行 :
           ddl -->execute(dd语句) -- 通常不会在代码中执行
           dml -->executeUpdate(dml语句)
           select -->executeQuery(select)
        3)特点:处理 不变的静态的sql语句
           优点: 直接查看sql ,方便处理错误
           缺点:性能不高 拼接sql麻烦 可能存在sql注入

       2.预处理块 PreparedStatement PreparedStatement 接口继承了Statement,并与之在两方面有所不同:有人主张,在JDBC            应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不              要使用Statement。 由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行            的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。
         1)创建:创建:连接.prepareStatement(sql)
         2)执行:
            存在? ,先填充参数再执行
            ddl -->execute()
            dml -->executeUpdate()
            select -->executeQuery()
          3)特点 :处理 不变的静态的sql语句 |可变的sql语句 带 ? 的sql
             优点:性能高,方便编写sql 不存在sql注入 安全
             缺点:不能直接打印sql语句 不方便处理错误

六.分析
        执行完SQL语句后可能成功也可能失败,如果成功,有数据则我们很大一部分情况是需要获取查询的结果。数据就是一切
          ddl:没有异常就是成功
          dml: 结果>0就是成功
          select:分析结果集
        对于select的结果集进行分析,类似于迭代器, 先判断(移动)再获取
        next()
        getXxx(索引|列名|别名)

七.释放资源
        释放资源的原则是 先打开的后关闭, 则我们的顺序一般为: 结果集->处理块->连接