zoukankan      html  css  js  c++  java
  • JDBC 连接Oracle数据库 各个对象的理解

    JDBC:

    1. **代码实现:(连接oracle数据库)

    ​    1.导入驱动jar包

    ​    2.注册驱动

    ​     Class.forName("oracle.jdbc.driver.OracleDriver");

        3.获取数据库连接对象

        ​ Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:端口号/数据库名","user","password");

    ​    4.定义sql语句

    ​     String sql = "update XE set name='ttt' where id = 1";

    ​    5.获取执行sql的对象 Statement

    ​     Statement stmt = conn.createStatement();

    ​    6.执行sql

    ​     int i =stmt.executeUpdate(sql);

    ​    7.处理结果

    ​     System.out.println(i);

    ​    8.释放资源

    ​     stmt.close();

        ​ conn.close();

    2.详解各个对象

    ​     1.DriverManager:驱动管理对象

    ​           *功能:

    ​              1.注册驱动:告诉程序去使用哪一个数据库驱动jar包

    (DriverManager类中有一个注册驱动的静态方法 registerDriver(Driver driver,DriverAction da))通过查看源码可知oracle.jdbc.driver.OracleDriver类中有一段静态代码块,里面有注册驱动的代码。

    ​              2.获取数据库连接:

    ​                         *方法:static Connection getConnection(String url,String user,String password)

    ​                         *参数:

    ​                                  url:指定链接的路径 ip 端口 数据库名

    ​                                  user:用户名

    ​                                  password:密码

    ​     2.Connection:数据库连接对象

    ​         1.功能:

    ​             1.获取执行sql的对象

    ​                 *Statement createStatement()

    ​                 *PreparedStatement prepareStatement(String sql)

    ​              2.管理事务:

    ​                 * 开启事务 setAutoCommit(boolean autoCommit)设置为false,既开启事务。

             ​        * 提交事务 commit()

             ​        * 回滚事务 rollback()

    ​     3.Statement:执行sql对象 (处理静态的sql语句)

    ​         1.boolean execute(String sql): 可以执行任何sql 了解

    ​         2.int executeUpdate(String sql):执行DML语句(insert、update、delete),DDL(create、alter、drop)语句

    ​           返回值:表示影响的行数。返回值>0执行成功

    ​         3.ResultSet executeQuery(String sql):执行DQL(select)语句

    ​           返回的是结果集对象

    ​     4.PreparedStatement:执行sql对象 (处理动态的sql语句,也就是预处理的sql语句)    

             1.SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题

                1.输入用户随便,输入密码:a' or 'a'='a

                2.sql : select * from user where username = 'dsfudgu' and password = 'a' or 'a'='a'

             2.解决sql注入问题 :使用PreparedStatement对象解决问题

             3.预编译的SQL:参数使用?作为占位符

             4.步骤:

               1.导入驱动jar包

               2.注册驱动

                Class.forName("oracle.jdbc.driver.OracleDriver");

               3.获取数据库连接对象 Connection

               4.定义sql语句

                  * 注意:sql 的参数使用?作为占位符。如 select * from user where username = ?and password = ?;

               5.获取执行sql的对象 PreparedStatement

                  Connection.PreparedStatement(String sql);

               6.给?赋值:

                  * 方法:setxxx(参数1,参数2 )

                   *参数1:?的位置编号从1开始

                   *参数2:?的值

               7.执行sql

                  int i =stmt.executeUpdate();

               8.处理结果

               9.释放资源

                 ps.close();

                 conn.close();

    ​     5.ResultSet:结果集对象,封装查询结果的

    ​          * boolean next(): 游标向下移动一行 判断当前行时候是最后一行,如果是,则返回false,否则返回true

    ​          * getxxx(参数): 获取数据

    ​          *xxx: 代表数据类型

    ​            *参数

    ​              1.Int: 代表列的编号,从1开始。 如getString(1) 获取第一列的值

                  2. String:列的名称

    ​                *注意:

                      *使用步骤:

    ​                    1.游标向下移动一行

    ​                    2.判断时候有数据

    ​                    3.获取数据

  • 相关阅读:
    CMMI学习系列(1)CMMI简介及证书介绍
    Lync 2010 系统架构 学习笔记(2)
    Lync 2010 标准版 AD控制器搭建 学习笔记(3)
    云计算 学习笔记(4) HDFS 简介及体系结构
    云计算 学习笔记(1) Hadoop简介
    Lync 2010 Lync客户端测试 学习笔记(7)
    Lync 2010 监控服务器配置 学习笔记(8)
    CMMI学习系列(7)组织过程库,预评估,正式评估。
    CMMI学习系列(5)CMMI3过程规范制定
    CMMI学习系列(6)项目试点
  • 原文地址:https://www.cnblogs.com/jamers-rz/p/13674728.html
Copyright © 2011-2022 走看看