A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李皓321 初级黑马   /  2018-5-9 16:07  /  481 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2018-5-11 10:12 编辑

day10 JDBC

1,什么是JDBC:
JDBC(JAVA Base Connectivity,java数据库连接)是一种用于执行SQL语句的JAVA API,可以为多种关系数据库提供统一访问,它由一组用JAVA语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是一个商标名。SUN公司提供一套统一的规范(接口)。然后各个数据库生产商提供这套接口的实现。这套接口规范就是JDBC的规范。
2,什么是数据库驱动:
             驱动:两个设备(应用)之间通信的桥梁。
3,JDBC的开发步骤:
  •   step1:注册驱动:Class.forName(“com.mysql.jdbc.Driver”)
  • step2:获得连接:Connection conn =

              DriverManger.getConnection(url,username,password)// Connectio
               java.sql包下的
  • step3:编写SQL语句,String sql ="",以前的值的地方用占位符代替  ?

               就是占位符
  • step4:预编译sql并且获得可执行sql语句的对象PreparedStatement ps

                = conn.prepareStatemet(String sql)
  • step5:为sql语句设置值,用值代替sql语句中的?   ps.setXXX(int n,值)

                n:代表第几个问号的意思,n从1开始
  • step6:执行sql语句

                如果是查询:ResutSet rs = ps.executeQuery();
                    遍历结果集:
        while(rs.next()){
                rs.getXXX(String columnName)/rs.getObject(String columnName) ;
                //columnName默认是表地段名,如果取了别名,用别名
        }
           如果是增删改:int num = ps.executeUpdate() ;// num 代表影响的行数
  • step7:释放资源

4,注册驱动:
   如果需要注册驱动,就会使用DriverManager.registerDriver(new Driver());,但是查看源代码发现,在代码中有一段静态代码块,静态代码块已经调用了注册驱动的方法,l  如果再手动调用该方法注册驱动,就会导致驱动被注册两次。实际开发中一般会采用:
   Class.forName("com.mysql.jdbc.Driver"),来注册驱动。
5,获取连接:
  url                       :与数据库连接的路径
  user                    :与数据库连接的用户名
  password                   :与数据库连接的密码
   主要关注的是url的写法:
  jdbc:mysql://localhost:3306/web_test3
       jdbc                    :连接数据库的协议        
mysql                 :是jdbc的子协议
localhost           :连接的MySQL数据库服务器的主机地址。(连接是本机就可以写成localhost),如果连接不是本机的,就需要写上连接主机的IP地址。
  3306                   :MySQL数据库服务器的端口号
web_test3        :数据库名称
url如果连接的是本机的路径,可以简化为如下格式:
jdbc:mysql:///web_test3
6,执行SQL语句对象:
  • Statement     :执行SQL
  • CallableStatement          :执行数据库中存储过程
  • PreparedStatement         :执行SQL对SQL进行预处理,解决SQL注入漏洞。

7,执行SQL的方法:
  • boolean execute(String  sql):执行查询,修改,添加,删除的SQL语句。
  • ResultSet executeQuery(String sql):执行查询语句。

                    ResultSet:结果集,通过select语句的查询结果。
                 结果集的获取可以使用结果集中的 get×××();方法(×××代表括
                  号里面内容的类型)
  • int executeUpate(String sql):执行修改,添加,删除的SQL语句。



8,SQL注入漏洞的解决方法:
    需要采用PreparedStatement对象解决SQL注入漏洞。这个对象将SQL预先进行编译,使用?作为占位符。?所代表内容是SQL所固定。再次传入变量(包 含SQL的关键字)。这个时候也不会识别这些关键字。
9,批处理:
  之前进行JDBC的操作的时候,都是一条SQL语句执行。现在如果使用批处 理,可以将一批SQL一起执行。
批量插入使用 PreparedStatement。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马