一、JDBC介绍

SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。 这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就 可以操作数据库。 如下图所示:

JDBC介绍及第一个JDBC程序测试

JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成。

组成JDBC的2个包:java.sql、javax.sql

开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。

二、编写JDBC程序

搭建实验环境

CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
USE jdbcStudy;
CREATE TABLE users(
  id INT PRIMARY KEY,
  NAME VARCHAR(40),
  PASSWORD VARCHAR(40),
  email VARCHAR(60),
  birthday DATE
);
INSERT INTO users(id,NAME,PASSWORD,email,birthday)
VALUES(1,'zhansan','123456','zs@sina.com','1980-12-04'),
    (2,'lisi','123456','lisi@sina.com','1981-12-04'),
    (3,'wangwu','123456','wangwu@sina.com','1979-12-04');

新建一个Java工程,并导入数据驱动

JDBC介绍及第一个JDBC程序测试

编写程序从user表中读取数据,并打印在命令行窗口中。

package com.fubai.lesson01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcFirstDemo {
  public static void main(String[] args) throws Exception {
    //要连接的数据库URL
    String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
    //连接的数据库时使用的用户名
    String username = "root";
    //连接的数据库时使用的密码
    String password = "123456";
    //1.加载驱动
    //DriverManager.registerDriver(new com.mysql.jdbc.Driver());不推荐使用这种方式来加载驱动
    Class.forName("com.mysql.jdbc.Driver");//推荐使用这种方式来加载驱动
    //2.获取与数据库的链接
    Connection conn = DriverManager.getConnection(url, username,password);
    //3.获取用于向数据库发送sql语句的statement
    Statement st = conn.createStatement();
    String sql = "select id,name,password,email,birthday from users";
    //4.向数据库发sql,并获取代表结果集的resultset
    ResultSet rs = st.executeQuery(sql);
    //5.取出结果集的数据
    while(rs.next()){
      System.out.println("id=" + rs.getObject("id"));
      System.out.println("name=" + rs.getObject("name"));
      System.out.println("password=" + rs.getObject("password"));
      System.out.println("email=" + rs.getObject("email"));
      System.out.println("birthday=" + rs.getObject("birthday"));
    }
    //6.关闭链接,释放资源
    rs.close();
    st.close();
    conn.close();
  }
}

  

发表回复