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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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


JDBC初识

JDBC的概述

  • 什么是JDBC?
    • Java Data Base Connectivity:java数据库连接.
  • 什么是数据库的驱动
    • 驱动:两个设备(两个应用)之间通信的桥梁.
  • 为什么学习JDBC
    • JDBC就是一组java的接口,提供了驱动规范,各个数据库来实现这个接口,程序员就只学一组API就可以了.

JDBC的入门

  • 环境准备
    • 创建数据库和表
    • 数据库的驱动都是以一个jar包的形式提供的.

JDBC的开发步骤


注意导入的是sql类.
  • 加载驱动
    • Class.forName("com.mysql.jdbc.Driver");
  • 获得连接
    • Connection conn = DriverManager.getConnection(url,user.password);
    • url--->jdbc:mysql://localhost:3306/数据库.
  • 基本操作
    • Statement statement = conn.createStatement();
    • String sql = "sql语句"
    • ResultSet rs = statement.executeQuery(sql);
    • while(rs.next()){ 获取里面的内容.表里面的内容. }
  • 释放资源
    • rc.close();
    • statement.close();
    • conn.close();

JUnit 测试 来代替main方法入口.
  • 在Java程序中写一个注解@Test,并引入JUnit4.

JDBC之DriverManager:驱动管理类

  • 驱动管理类
    • 作用:
      • 注册驱动
        • API中有个方法,但是实际开发中一般不会使用这个方法完成驱动注册,在Driver类中有个静态代码块已经注册了一次了,要是再调用方法的话就会重复注册.
        • Class.forName("com.mysql.jdbc.Driver");
      • 获得连接
        • 方法: getConnection(url,user,password)
        • 注意url的写法:jdbc:mysql://localhost:3306/web_test3
        • jdbc:连接数据库的协议
        • mysql:是jdbc的子协议
        • localhost:连接的MySQL数据库服务器的主机地址(连接本机就可以写成localhost),吐过连接的不是本机的,就需要协商连接主机的IP地址
        • 3306:MySQL数据库服务器的端口号
        • web_test3:数据库名称
        • 如果连接的是本机的路径,可以省略localhost:3306.但是/不能省略.\



Java API之Connection
  • 与数据库连接对象
  • 作用
    • 创建执行SQL语句的对象
      • createStatement();返回的是Statement对象,执行SQL语句.
      • prepaerCall();返回的是CallableStatement对象:执行数据库中的存储过程
      • prepareStatement();返回的是PreparedStatement对象,执行SQL的预处理,用来处理SQL的注入漏洞.
    • 管理事务.
      • commit();提交事务的方法
      • rollbacke();回滚事务
      • 停止自动提交的方法.


Java API之Statement
  • 执行SQL语句
    • boolean execute(Stirng sql);
      • 执行查询,修改,添加,删除.
    • ResultSet executeQuery(String sql);
      • 只执行查询(即select语句)
    • int executeUpdate(String sql)
      • 执行修改,添加,删除的sql语句.

  • 执行批处理
    • addBatch();
    • clearBatch();
    • executeBatch();

ResultSet
  • 通过select语句查询的结果才有结果集.就是把查询结果的一个表格,封装成了一个对象.
  • 遍历结果集,用next()方法.用while循环来遍历.
    • next方法返回的是boolean类型的一个值,有下一个数据就返回true,没有则返回false.
  • 表中每个字段都有对应的get方法来获取.getXXX(),有两个重载方法,一个传入一个int类型的参数,一个传入一个String类型的参数.一般使用String参数的,因为列号不确定,String参数传的是字段名,int传的是列所在的位置是第几列.还要一个getObject()方法,可以获取任意类型的结果.
  • 如果传入的参数是String类型的话,在查询语句中有时候会给字段取个别名,那就用别名来作为参数传入方法中.
JDBC的资源释放

  • JDBC 程序执行结束后,将与数据库进行交互的对象释放掉,通常是ResultSet, Statement,Connection
  • Connection对象是非常稀有的(因为他的创建非常占用资源),这个对象一定要做到尽量晚创建,尽早释放掉.因为有个最大值限制,
程序设计原则
  • 对扩展是开放的!!
  • 对修改源码是关闭的!!
在preparedStatement的sql语句中,模糊查询like 后面直接写?,下面再设置?的值,?的值要带%.创建链接会耗费很多资源,所以Collection对象很珍贵,要最晚建立,最早结束.

0 个回复

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