JDBC访问数据库


                                   JDBC访问数据库

什么是JDBC?

 JDBCjava应用程序连接不同数据库的标准API,开发人员可以通过该API连接到各种类型的数据库管理系统,并对数据库中的数据进行操作。 但因每种类型的数据库的实现不相同,所以在连接每种类型的数据库时,需要使用连接特定的数据库程序,成为JDBC驱动程序。

数据库开发程序的流程

 

建立数据源   数据库的创建

引入java.sql

加载驱动程序   所以,在数据库应用程序开发时,需要学会两件事情:得到数据库的JDBC驱动程序;使用这组标准的API,完成对数据库的基本操作。 用户只需编写不同的SQL语句,而不关心数据库的实现以及不同数据库之间的差异。

 

JDBC工作原理

 JDBC包含两组接口,一组是面向java应用开发人员,另一组接口面向驱动程序编写人员。通过JDBC API可以完成以下三件事情。

 

1  建立与数据库管理系统的连接

2  向服务器提交要执行的SQL语句

处理返回的结果

不同的数据库管理系统有不同的JDBC驱动程序,在java应用中需要指定连接数据库所需要的驱动程序,然后通过JDBC API把连接数据库的请求以及执行SQL语句的请求发送到数据库管理系统,同时JDBC API 会把数据库查询的结果返回给应用程序。

JDBC驱动程序类型

类型1驱动程序:JDBC-ODBC桥,通过ODBC数据源进行与数据库的连接

 

类型2驱动程序:通过网络库与数据库进行连接的纯Java驱动程序


类型3驱动程序:通过中间件服务器与数据库建立连接的驱动程序



 
类型4驱动程序:直接与数据库相连的纯Java驱动程序
 

 

主要接口

JDBC是一个java应用程序与数据库管理系统进行交互的标准API,包含多个接口,还包含两个包:核心API(java.sql)和拓展的APIjavax.sql)。应用程序通过核心API的接口实现数据库连接和数据处理,其主要接口如下:

 

 

java.sql.Driver,用于读取数据库驱动信息,提供连接方法,建立访问数据库所用的Connection对象

java.sql.DriverManager,负责管理Driver对象,连接数据库,具体工作包括注册驱动程序,获取连接,向数据库发送信息。

java.sql.Connection,连接java数据库和Java应用程序之间的主要对象。创建所有的Statement对象执行SQL语句。java.sql.Statement对象代表一个特定的容器,对一个特定的数据库执行SQL语句。

Java.sql.ResulSet,用于控制对一个特定语句的行数据的存取,也就是数据库中由记录或行组合成的集合。

结果集

连接数据库的基本过程

建立数据源   数据库的创建

引入java.sql

加载驱动程序

 

 

下面我们用一个例子看一下

 开发一个应用程序,程序运行过程中可以输入数据库服务器的IP、端口号、用户名、用户密码、连接的数据库名、表名,然后将表中的数据在控制台打印出来。

 

 

package com.tlh.shujuku;

import java.sql.*;
import java.util.Scanner;

public class JDBCDemo {
	public static void main(String[] args) {
		// 初始化变量
		// 从控制台得到想要的数据
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入用户名:");
		String username = sc.nextLine();
		String user = "username";
		System.out.println("请输入密码(密码为空请直接按回车键):");
		String pass = sc.nextLine();
		System.out.println();
		System.out.println("请输入ip:");
		String ip = sc.nextLine();
		System.out.println("请输入端口号:");
		String Duankou = sc.nextLine();
		System.out.println("请输入数据库名:");
		String ShujukuName = sc.nextLine();
		String url = "jdbc:mysql://" + ip + ":" + Duankou + "/" + ShujukuName;
		String driver = "com.mysql.jdbc.Driver";
		System.out.println("请输入数据库表名:");
		String tablename = sc.nextLine();
		String sqlstr;
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
                        //装载驱动程序
			Class.forName(driver);
                        //建立连接
			con = DriverManager.getConnection(url, user, pass);
                       //创建连接对象    Statement代表了一个特定的容器。对一个特定的数据库执行SQL语句
			stmt = con.createStatement();
			// sqlstr="insert into  "+tablename+"  values('2060','zdx',21)";
			// stmt.executeUpdate(sqlstr);
			sqlstr = "select * from " + tablename;
			rs = stmt.executeQuery(sqlstr);
                        //java.sql.ResultSet.getMetaData() 得到结果集的结构信息,比如字段数、字段名等
			ResultSetMetaData rsmd = rs.getMetaData();
			int j = 0;
                        //rs.getMetaData().getColumnCount()取得列数
			j = rsmd.getColumnCount();
			for (int k = 0; k < j; k++) {
                              //
				System.out.print(rsmd.getColumnName(k + 1));
				System.out.print("\t\t");
			}
			System.out.println("\n");
			while (rs.next()) {
				for (int i = 0; i < j; i++) {
					System.out.print(rs.getString(i + 1));
					System.out.print("\t");

				}
				System.out.print("\n");
			}

		} catch (ClassNotFoundException e1) {
			System.out.println("数据库驱动不存在");
			System.out.println(e1.toString());
		} catch (SQLException e2) {
			System.out.println("数据库异常");
			System.out.println(e2.toString());
		}

		finally {
			try {
				if (rs != null)
					rs.close();
				if (stmt != null)
					stmt.close();
				if (con != null)
					con.close();
			} catch (SQLException e) {

				System.out.println(e.toString());
			}
		}

	}

}

    

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值