美文网首页
JDBC 的使用

JDBC 的使用

作者: 程序员小韩 | 来源:发表于2017-09-18 09:20 被阅读0次

JDBC

JDBC什么是JDBC
JDBC 的使用
JDBC 的数据类型

什么是JDBC

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

JDBC 的使用

建立一个JDBC应用程序,本教程中以Java连接MySQL为一个示例:

  1. 导入包,在程序中包含数据库编程所需的JDBC类。大多数情况下,使用 import java.sql.*
import java.sql.*;
  1. 注册JDBC驱动程序,需要初始化驱动程序,这样就可以打开与数据库的通信。
Class.forName("com.mysql.jdbc.Driver");
  1. 打开一个连接,使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个数据库的物理连接。
static final String USER = "root"; //用户名
static final String PASS = "pwd123456"; //密码
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS); //上面的名字可以自定义的  但是这里要写对

4.执行一个查询, 需要使用一个类型为Statement或PreparedStatement的对象,并提交一个SQL语句到数据库执行查询。

System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);

如果要执行一个SQL语句:UPDATE,INSERT或DELETE语句,那么需要下面的代码:

System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "DELETE FROM Employees";
ResultSet rs = stmt.executeUpdate(sql);
  1. 获取结果,可以使用适当的ResultSet.getXXX()方法来检索的数据结果。
while(rs.next()){
    //Retrieve by column name
    int id  = rs.getInt("id");
    int age = rs.getInt("age");
    String first = rs.getString("first");
    String last = rs.getString("last");

    //Display values
    System.out.print("ID: " + id);
    System.out.print(", Age: " + age);
    System.out.print(", First: " + first);
    System.out.println(", Last: " + last);
}
  1. 清理环境资源,在使用JDBC与数据交互操作数据库中的数据后,应该明确地关闭所有的数据库资源以减少资源的浪费,对依赖于JVM的垃圾收集。
rs.close();
stmt.close();
conn.close();
  1. 完整示例。
// 1. 
import java.sql.*;

public class FirstExample {
   //注册驱动
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/test";

   //数据库名和密码自己修改
   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
       Connection conn = null;
       Statement stmt = null;
       try{
          // 2.
          Class.forName("com.mysql.jdbc.Driver");
          //3.
          conn = DriverManager.getConnection(DB_URL,USER,PASS);
          //4.
          stmt = conn.createStatement();
          String sql;
          sql = "SELECT id, first, last, age FROM Employees";
          ResultSet rs = stmt.executeQuery(sql);
          //5.
          while(rs.next()){
             int id  = rs.getInt("id");
             int age = rs.getInt("age");
             String first = rs.getString("first");
             String last = rs.getString("last");
             
             System.out.print("ID: " + id);
             System.out.print(", Age: " + age);
             System.out.print(", First: " + first);
             System.out.println(", Last: " + last);
          }
          //6.
          rs.close();
          stmt.close();
          conn.close();
       }catch(SQLException se){
       // 异常不要这么处理  不好,要携带异常描述和原因。有日志要用日志输出。
          se.printStackTrace();
       }catch(Exception e){
          e.printStackTrace();// 同上
       }finally{
          try{
             if(stmt!=null)
                stmt.close();
          }catch(SQLException se2){
            //自定义后续处理,这里不写了
          }
          try{
             if(conn!=null)
                conn.close();
          }catch(SQLException se){
             se.printStackTrace();
          }
       }
    }
}

JDBC 的数据类型

SQL JDBC\JAVA setXXX updateXXX
VARCHAR java.lang.String setString updateString
CHAR java.lang.String setString updateString
LONGVARCHAR java.lang.String setString updateString
BIT boolean setBoolean updateBoolean
NUMERIC java.math.BigDecimal setBigDecimal updateBigDecimal
TINYINT byte setByte updateByte
SMALLINT short setShort updateShort
INTEGER int setInt updateInt
BIGINT long setLong updateLong
REAL float setFloat updateFloat
FLOAT float setFloat updateFloat
DOUBLE double setDouble updateDouble
VARBINARY byte[ ] setBytes updateBytes
BINARY byte[ ] setBytes updateBytes
DATE java.sql.Date setDate updateDate
TIME java.sql.Time setTime updateTime
TIMESTAMP java.sql.Timestamp setTimestamp updateTimestamp
CLOB java.sql.Clob setClob updateClob
BLOB java.sql.Blob setBlob updateBlob
ARRAY java.sql.Array setARRAY updateARRAY
REF java.sql.Ref SetRef updateRef
STRUCT java.sql.Struct SetStruct updateStruct

在JDBC3.0中增强支持BLOB,CLOB,ARRAY,REF等数据类型。ResultSet对象可调用UPDATEBLOB(),updateCLOB(),updateArray()和updateRef()方法,使您可以在数据库服务器上直接操作相应的数据。

对于setXXX()和updateXXX()方法,可以转换成特定的Java类型到特定的JDBC数据类型。而使用setObject()和updateObject()方法,几乎所有的Java类型映射到JDBC数据类型。

ResultSet对象提供相应的getXXX()方法为每个数据类型来检索列值。每一种类型方法,可以使用与列名或由列的序号位置来获取列的数据。

相关文章

  • 五、(三)持久层框架——JDBC

    使用JDBC 使用JDBC模板 使用DAO支持类

  • 高级应用--JDBC(一)

    为什么要使用JDBC? 如何使用JDBC? 使用JDBC进行增删改查 使用预编译PreparedStatement...

  • JDBC的简单使用

    JDBC 什么是JDBC 使用java代码发送sql语句的技术,就是jdbc技术。 使用jdbc的前提 需要登录数...

  • JDBC篇

    JDBC简介 JDBC使用详解

  • JDBC 的使用

    JDBC JDBC什么是JDBCJDBC 的使用JDBC 的数据类型 什么是JDBC JDBC(Java Data...

  • Mybatis_day01

    1 Mybatis入门 1.1 单独使用jdbc编程问题总结 1.1.1 jdbc程序 上边使用jdbc的原始方法...

  • 6.JDBC学习笔记

    本文内容 1.什么是JDBC以及为什么要使用JDBC 2.JDBC核心API的讲解 3.使用JDBC核心API进行...

  • spring 数据库操作之JDBC(05)

    Spring JDBC模板 一. 单独使用jdbc Java Database Connectivity(JDBC...

  • 基本

    概述 1.什么是JDBC以及为什么要使用JDBC 2.JDBC核心API的讲解 3.使用JDBC核心API进行CR...

  • JBDC基础--学习笔记(1)

    一.什么是JDBC? 使用java 代码或程序发送sql语句的技术,就是jdbc技术 使用jdbc发送sql前提 ...

网友评论

      本文标题:JDBC 的使用

      本文链接:https://www.haomeiwen.com/subject/xeuvsxtx.html