加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java如何创建一个jdbc程序详解

发布时间:2020-05-25 07:21:29 所属栏目:Java 来源:互联网
导读:JDBC简介Java数据库连接(JavaDatabaseConnectivity,JDBC),是一种用于执行SQL语句的JavaAPI,它由一组用Java编程语言编写的类和接口组成。

JDBC简介

  • Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成。
  • JDBC为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。
  • 使用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统。
  • JDBC扩展了Java的功能,由于Java语言本身的特点,使得JDBC具有简单、健壮、安全、可移植、获取方便等优势。

我们在没有JDBC之前,使用驱动程序在Java程序与MySQL、Oracle、SQLServer等数据库之间建立连接,驱动程序就是在该课程中将要学到的内容。那么就存在一个问题:在同一个Java程序与数据库之间建立连接时,驱动程序是否是共用的呢?如果一样,很显然就能节省代码量,但是实际上是不一样的。一定要注意是不一样的。那么就存在一个问题:当底层数据库发生改变之后,数据库的驱动程序也会随之发生变化,那么该怎么解决该问题呢?于是JDBC出现了,目的是为了减轻开发人员的工作量,以提高代码的复用。

JDBC API

JDBC结构

1.JDBC API是Java开发工具包(JDK)的组成部份:

  • JDBC驱动程序管理器
  • JDBC驱动程序测试工具包
  • JDBC-ODBC桥

2.JDBC驱动程序管理器是JDBC体系结构的支柱,其主要作用是把Java应用程序连接到正确的JDBC驱动程序上。

3.JDBC驱动程序测试工具包为JDBC驱动程序的运行提供一定的可信度,只有通过JDBC驱动程序测试包的驱动程序才被认为是符合JDBC标准的。

4.JDBC-ODBC桥使ODBC驱动程序可被用作JDBC驱动程序。其目标是为方便实现访问某些不常见的DBMS,它的实现为JDBC的快速发展提供了一条途径。

在开始之前,我们先来实现一个简单的JDBC程序

步骤

     1,注册驱动;(只需要注册一次)

     2,建立连接;

     3,创建执行的sql语句;

     4,执行语句;

     5,处理执行结果;

     6,释放资源;

示例

package cn.ccnu; 
 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
 
import com.mysql.jdbc.Statement; 
 
public class Demo1 { 
 
  public static void main(String[] args) throws Exception { 
    test(); 
  } 
 
  public static void test() throws Exception { 
    //1,注册驱动 
//   DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
//   System.getProperty("jdbc.driver","con.mysql.jdbc.Driver"); 
    Class.forName("com.mysql.jdbc.Driver");//这三种注册方式,推荐使用这种 
 
    //2,建立连接 
    //url格式 
    //JDBC:子协议:子名称//主机名:端口/数据库名称 
    String url = "jdbc:mysql://localhost:3306/test";//如果是本机,也可以将localhost:3306省掉 
    String user = "root"; 
    String password = "123456"; 
    Connection conn = (Connection)DriverManager.getConnection(url,user,password); 
 
    //3,创建slq执行语句 
    Statement st = (Statement) conn.createStatement(); 
 
    //4,执行语句 
    ResultSet rs = st.executeQuery("select * from a"); 
     
    //5,处理执行结果 
    while (rs.next()) { 
      System.out.println(rs.getObject(1)); 
    } 
 
    //6,关闭连接,释放资源 
    rs.close(); 
    st.close(); 
    conn.close(); 
  } 
 
} 

分析JDBC开发步骤

使用JDBC访问数据库的基本步骤一般如下:

  • 加载JDBC驱动程序
  • 创建数据库连接
  • 创建Statement对象
  • 执行SQL语句
  • 处理返回结果
  • 关闭创建的对象

开发第一个JDBC程序

package com.wfu.ch09;

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

public class Test1 {
 public static void main(String[] args) {
 try {
  Class.forName("com.mysql.jdbc.Driver");//里面的名字一定不要写错,这个也是导入的
  //forName(String className) 返回与带有给定字符串名的类或接口相关联的 Class 对象。
  Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/k-user","root","123456");//试图建立到给定数据库 URL 的连接。
  Statement stmt=conn.createStatement(); //创建一个 Statement 对象来将 SQL 语句发送到数据库。

//  String insertsql="insert into k_user(userno,username,pwd) values('1002','张三','123')";
//  int x=stmt.executeUpdate(insertsql); //executeUpdate 返回一个int 型的数据 括号里面是一个字符串数据类型,详细内容看文档

  //(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数
  //(2) 对于不返回任何内容的 SQL 语句,返回 0

//  if(x>0){
//  System.out.println("插入成功!");
//  }
//  String updateSql="update k_user set pwd='123456' where userno='1002'";
//  int x=stmt.executeUpdate(updateSql);
//  if(x>0){
//  System.out.println("更新成功!");
//  }
  String deleteSql="delete from k_user where userno='1002'";
  int x=stmt.executeUpdate(deleteSql);
  if(x>0){
  System.out.println("删除成功!");
  }
  String sql="select * from k_user";
  ResultSet rs=stmt.executeQuery(sql);
  while(rs.next()){
  for(int i=1;i<=13;i++){
   System.out.print(rs.getString(i)+" ");
  }
  System.out.println();
  }
  rs.close();
  stmt.close();
  conn.close();
 } catch (ClassNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }  
 }
}
package com.wfu.ch09;

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

public class Test2 {
 public static void main(String[] args) {
 try {
  // step1:加载JDBC驱动程序
  Class.forName("com.mysql.jdbc.Driver");
  // step2:建立数据库的连接
  Connection conn = DriverManager.getConnection(
   "jdbc:mysql://localhost:3306/stock11","123");
//  // step3:创建Statement对象
  Statement st = conn.createStatement();
  //step4:执行SQL语句
  String selectSql="select * from k_user";
  //step5:处理结果集
  ResultSet rs=st.executeQuery(selectSql);
  while(rs.next()){
  for(int i=1;i<=13;i++){
   System.out.print(rs.getString(i)+" ");
  }
  System.out.println();
//  String x=rs.getString("hometown");
//  System.out.println(x);
  }
  //step6:关闭创建的对象
  //关闭结果集
  rs.close();
  //关闭statement对象
  st.close();
  //关闭连接
  conn.close();


  // step4: 执行SQL语句
////  String insertSql = "insert into k_user(userno,pwd) values('1001','tom','123')";
//  int x = st.executeUpdate(insertSql);
//  if(x>0){
//  System.out.println("插入成功!");
//  }
//  String updateSql="update k_user set pwd='123456' where userno='1001'";
//  int x=st.executeUpdate(updateSql);
//  if(x>0){
//  System.out.println("更新成功!");
//  }
//  String deleteSql="delete from k_user where userno='1001'";
//  int x=st.executeUpdate(deleteSql);
//  if(x>0){
//  System.out.println("删除成功!");
//  }
  //

 } catch (ClassNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (SQLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }

}

各个语句说明

加载JDBC驱动程序

加载驱动程序的方法:

Class.forName("DriverName")

其中DriverName是要加载的JDBC驱动程序名称。驱动程序名称根据数据库厂商提供的JDBC驱动程序的种类来确定。

加载MySQL数据库驱动程序的方法为:

Class.forName("com.mysql.jdbc.Driver");

加载Oracle数据库驱动程序的方法为:

创建数据库连接-1

DriverManager类是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。该类负责加载、注册JDBC驱动程序,管理应用程序和已注册的驱动程序的连接。

DriverManager的常用方法:

使用DriverManager类的getConnection()创建一个数据库连接:

Connection conn = DriverManager.getConnection(String url,String password);

创建数据库连接-2

URL提供了一种标识数据库位置的方法,可以使相应的驱动程序能够识别该数据库并与它建立连接。

JDBC URL由三个部分组成:

jdbc : < subprotocol> : < subname>

可以根据子协议的改变而变化。

是子协议,指数据库连接的方式。

创建数据库连接-3

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读