JDBC

作者: 维乾 | 来源:发表于2017-09-22 22:39 被阅读98次

    什么是JDBC?

    JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

    java访问数据库,是通过接口的方式。每个数据库的厂商会提供接口,所以,我只要去相应的数据库官网下载,使用的时候只要用下载接口,然后倒入接口。倒入Conector到lib中,然后右键,Build Path  ->  add to build path

    1.创建的sql文件如何导入数据库。

    通过source导入,注意此时导入是有正反斜杠的区分,\不能使用,因为是转义字符,必须使用\\或者/

    例如:source F:/eclipse/workspace/shop01/sql.init.sql 

    2.JDBC步骤

    1.先导入Concetor中的jar包加入lib中。

    倒入Concetor到lib中,反正lib中,并没有加载到classpath中,需要右键,Build Path   ->  add to build path

    2.然后创建Connection 类。(切记

    有时候需要对数据库进行操作时会出现以下错误,需要在url后添加一个useSSL=ture.

    例如  Connection con = DriverManager.getConnection (url,user,password);

    MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称(?参数=值)

    例如  jdbc:mysql://localhost:3306/test_cwq

    3.然后写 sql语句。

    String sql = “select * from t_user”

    4.然后执行sql语句需要statement

    stat = con.createStatement();  

    5.在获取了stat之后,如果执行的是更新,直接使用stat.executeUpdate(sql)完成更新     如果执行的是查询,需要通过stat.executeQuery(sql)完成,返回值是一个ResuletSet的记录集。

    图下是更新操作

    图下是查询操作

    6.操作完成之后需要释放连接,先释放rs在释放stat最后释放con

    例子:

    try{

    if(rs!=null)rs.close();

    }catch(SQLException e){

    e.printStackTrace();

    }

    7.重点。(如果使用Statement来执行SQL有可能会存在SQL注入的攻击,所以一般会使用PreparedStatement来替代Statement)

    例子

    为什么要用PreparedStatement替代Statement呢?

    举个例子  

    ```Select count(*) from t_user where username = '"+username +"' and password ='"password"';```

    如果输入的是 admin"';//用户名  那么语句就被转化为

    Select count(*) from t_user where username = '"admin"';//"' and password ='"password"';

    这样的话密码就被注释了。然后网页就被攻击了。

    用PreparedStatement 就不会出现这样的问题。

    相关文章

      网友评论

        本文标题:JDBC

        本文链接:https://www.haomeiwen.com/subject/hicxextx.html