JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

下面就来说下如何通过JDBC连接数据库:

首先,需要导入连接数据库对应的jar包,导入不再赘述,给个链接https://jingyan.baidu.com/article/2fb0ba4094f51900f3ec5f6a.html

然后,分析一下,jdbc连接数据库的几个基础步骤:

1.注册驱动(现在的jdk已经自动帮我们做好了这一步,所以知道即可,下面的代码中会有怎样自己注册)

2.建立连接(能够获取到一个Connection对象,该对象是一个封装了TCP长连接的数据库长连接对象

3.创建Statement对象(Statement对象是与数据库打交道的必须对象,它是一个封装管理SQL语句的java对象)

4.执行查询,得到结果集(结果集对象ResultSet是一个封装了数据对象无序集合对象)

5.遍历数据(把数据从结果集中用while循环遍历出来)

6.释放资源

最后,就是代码部分了。

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCTest02 {
  public static void main(String[] args) {
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try {
      //注册驱动并建立连接
      conn = JDBCUtils.getConn();
      //创建Statement对象
      st = conn.createStatement();
      //执行查询
      String sql = "select * from tb_user where username = 'xx'";
      rs = st.executeQuery(sql);
      //遍历结果集
      while(rs.next()){
      String user = rs.getString("username");
      String pwd = rs.getString("password");
      System.out.println("用户名---" + user + ",密码---" + pwd);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }finally{

      //释放资源
      JDBCUtils.releaseResource(rs, st, conn);
      }  

    }
}

 

 

上面的代码中用到了自己写的JDBC的工具类:

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
  static String className = “com.mysql.jdbc.Driver”;
  static String url = "jdbc:mysql://localhost/test";
  static String username = "root";
  static String password = "root";

  /**
  * 获取连接对象
  * @return
  */
  public static Connection getConn(){
    Connection conn = null;
    try {
    //注册驱动
    //    Class.forName(className);   jdk已经帮我们完成,注释掉
    //建立连接(传入url,数据库用户名和密码或者可以直接传进去一个长的包含三者的字符串:url?username?password 形式)
    conn = DriverManager.getConnection(url,username,password);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return conn;
  }

  /**
  * 释放资源
  * @param rs
  * @param st
  * @param conn
  */
  public static void releaseResource(ResultSet rs,Statement st,Connection conn){
    releaseRs(rs);
    releaseSt(st);
    releaseConn(conn);
  }

  private static void releaseRs(ResultSet rs){
    try {
      if(rs != null){
      rs.close();
      System.out.println("ResultSet释放完毕!");
      }
    } catch (SQLException e) {    
      e.printStackTrace();
    }finally{
      rs = null;
    }
  }
  private static void releaseSt(Statement st){
    try {
      if(st != null){
      st.close();
      System.out.println("Statement释放完毕!");
      }
    } catch (SQLException e) {    
      e.printStackTrace();
    }finally{
      st = null;
    }
  }
  private static void releaseConn(Connection conn){
    try {
      if(conn != null){
      conn.close();
      System.out.println("Connection释放完毕!");
      }
    } catch (SQLException e) {    
      e.printStackTrace();
    }finally{
      conn = null;
    }
  }
}