JDBC概述

JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范。

JDBC与数据库驱动的关系:接口与实现的关系。

JDBC规范(掌握四个核心对象):

  • DriverManager:用于注册驱动
  • Connection: 表示与数据库创建的连接
  • Statement: 操作数据库sql语句的对象
  • ResultSet: 结果集或一张虚拟表

开发一个JDBC程序(重要)

  1. 创建数据库表,并向表中添加测试数据

     <--创建数据库-->
     create database mytest1;
     use mytest1;
     <--创建数据库表-->
     create table users(
     id int primary key auto_increment,
     name varchar(40),
     password varchar(40),
     email varchar(60),
     birthday date
      )character set utf8 collate utf8_general_ci;
     <--添加数据-->
     insert into users(name,password,email,birthday) values('zs','123456','zs@sina.com','1980-12-04');
     insert into users(name,password,email,birthday) values('lisi','123456','lisi@sina.com','1981-12-04');
     insert into users(name,password,email,birthday) values('wangwu','123456','wangwu@sina.com','1979-12-04');
    
  2. 创建java project项目,添加数据库驱动(*.jar)

  3. 实现JDBC操作

    - 注册驱动
    - 创建连接
    - 得到执行sql语句的Statement对象
    - 执行sql语句,并返回结果
    - 处理结果
    - 关闭资源
    

    example:

       public class demo01 {
    
       public static void main(String[] args) throws Exception{
     // TODO Auto-generated method stub
     //1、注册驱动
     //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
     //1.加载驱动
      Class.forName("com.mysql.jdbc.Driver");
      //2、创建连接
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest1", "root", "root");
             //3、得到执行sql语句的Statement对象
     Statement stmt = conn.createStatement();
             //4、执行sql语句,并返回结果
     String sql = "select id,name,password,email,birthday from users";
     ResultSet rs = stmt.executeQuery(sql);
             //5、处理结果
     while (rs.next()) {
                 System.out.println(rs.getObject(1));
                 System.out.println(rs.getObject(2));
                 System.out.println(rs.getObject(3));
                 System.out.println(rs.getObject(4));
                 System.out.println(rs.getObject(5));
             }
             //6关闭资源
     rs.close();
     stmt.close();
     conn.close();
    }
    
    }
    

JDBC常用的类和接口详解

java.sql.Drivermanager类 : 创建连接

  1. 注册驱动

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用
    原因有2个:

    • 导致驱动被注册2次。
    • 强烈依赖数据库的驱动jar

解决办法:

用Class.forName("com.mysql.jdbc.Driver");代替。
  1. 与数据库建立连接

      static Connection getConnection(String url, String user, String password) 
    
      getConnection("jdbc:mysql://localhost:3306/mytest1", "root", "root");
    
      URL:SUN公司与数据库厂商之间的一种协议。
      jdbc:mysql://localhost:3306/day06
      协议 子协议          IP:端口号 数据库
    
      mysql: jdbc:mysql://localhost:3306/day14 或者 jdbc:mysql:///day14(默认本机连接)
      oracle: jdbc:oracle:thin:@localhost:1521:sid
    
    
        Properties info = new Properties();//要参考数据库文档
        info.setProperty("user", "root");
        info.setProperty("password","root");
    
        getConnection(String url, Properties info) 
    
        getConnection(String url) 
        DriverManager.getConnection("jdbc:mysql://localhost:3306/day14?user=root&password=root");
    

实现一个用户登录的功能

Demo:https://github.com/MuTouTQ/login