zoukankan      html  css  js  c++  java
  • JDBC

    JDBC:JAVA DATA BASE CONNECTIVITY

    1、SQL语言

    (1) 数据定义语言:create、alter、drop

    (2) 数据操纵语言:select、insert、update、delete

    ① select:select“字段”from“表名”where“条件” order by“字段名”

    ② insert:insert into 表名[(字段1,字段2···)] values(属性值1,属性值2···)

    ③ update:update“表名”set“字段”=“新字段”where“条件表达式”

    ④ delete:delete from 表名 where 条件表达式

    (3) 数据控制语言:grant、revoke

    (4) 事务控制语言:commit、rollback

    2、JDBC-ODBC桥

    (1) JDBC-ODBC桥:JDBC-ODBC桥是一个JDBC驱动程序,完成了从JDBC操作到ODBC操作之间的转换工作,允许JDBC驱动程序被用作ODBC的驱动程序。ODBC:开放数据链接,是为了异构数据库的数据共享而生。使用JDBC-ODBC桥连接数据库的步骤如下:

    ① 首先加载JDBC-ODBC桥的驱动程序:Class.forName(“sun.jdbC.odbc.Jdbc.OdbcDriver”);

    ② 使用java.sql包中的Connection接口,并通过DriverManager类的静态方法getConnection()创建连接对象:Connection conn=DriverManager.getConnection(“jdbc:odbc:数据源名字”,“user name”,“password”);

    ③ 向数据库发送SQL语句。使用Statement接口声明一个SQL语句对象,通过刚才创建的conn的creatStatement()方法创建SQL对象:Statement Sql=conn.creatStatement();JDBC-ODBC桥作为连接数据库的过度技术,现在使用较少,使用较多的是JDBC技术,但是这并不表示JDBC-ODBC技术已经被淘汰,它可以访问几乎所有的数据库。

    3、JDBC是一套面向对象的应用程序接口,指定了统一的访问各种关系型数据库的标准。但是sql语句是关系型语句,所以使用JDBC连接数据库实质上也是面向关系的。JDBC的主要任务:与数据库建立连接发送sql返回结果。

    4、JDBC中常用的类和接口

    (1) Connection接口

    Connection接口代表特定的数据库的连接,在连接上下文中执行SQL语句并返回结果。

    (2)Statement接口

    Statement接口用于在已经建立连接的基础上向数据库发送SQL语句,在JDBC中有三种Statement、PerparedStatement、callabLeStatement。Statement用于执行不带参数的简单的SQL语句;PerparedStatement用于执行动态的SQL语句;callabLeStatement继承了PreparedStatement,用于执行对数据库存储过程的调用。

    DriverManager类用来管理数据库中的所有驱动程序。它是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。

    ResultSet接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。

     

    数据库操作

    连接数据库,有三个步骤:

    1、使用Class.forName();获得驱动器

    2、使用DriverManager.getConnection通过访问数据库的URL获取数据库连接对象

    3、创建本类对象调用getConnection方法。

    向数据库发送sql语句,两个步骤:

    1、声明一个Statement:

    Statement statement=con.createStatement();

    2、使用statement的execute方法.

     

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 实现给表中添加数据
     */
    public class SQLTest {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/kk_1","root",
                        "MySQL1998");
                Statement statement=conn.createStatement();
                String str="insert into k_table(username,pwd,regtime) values ('赵大帅',7454,now())";
                //statement.execute(str);
                //测试SQL注入
                //String id=5+"";//目的是将5转化成字符串
                //SQL注入是指在拼接字符串的时候可能会有而已代码,比如String id="5 or 1=1"那么str就变成了delete from
                // k_table where id=5 or 1=1,这就是发生了SQL注入。
                String str2="delete from k_table where id=1";
                //statement.execute(str2);
                System.out.println("OK");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
    
        }
    }

     

     

     

     

     

  • 相关阅读:
    Navi.Soft31.WinForm框架(含下载地址)
    Navi.Soft31.阅读导航
    工作流组件示例(全部开源)
    WinForm中播放视频示例(含源码)
    angularjs实现选项卡实例
    angularjs中使用 <input type="file">标签实现一次最多上传5张图片
    angularjs笔记《二》
    input type="number"时,maxlength不起作用怎么解决
    笔记——《正则表达式》
    如何区分slice、splice和split
  • 原文地址:https://www.cnblogs.com/tutuhome/p/10686546.html
Copyright © 2011-2022 走看看