• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Java中JDBC连接数据库详解

Java中JDBC连接数据库详解

作者:Dmego 字体:[增加 减小] 来源:互联网 时间:2017-05-28

Dmego 通过本文主要向大家介绍了java jdbc连接数据库,java用jdbc连接数据库,java中jdbc连接数据库,java jdbc查询数据库,jdbc与java数据库编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、概念

  1. 为了能让程序操作数据库,对数据库中的表进行操作,每一种数据库都会提供一套连接和操作该数据库的驱动,而且每种数据库的驱动都各不相同,例如mysql数据库使用mysql驱动,oracle数据库使用oracle驱动,这样假如我们编写的程序哪一天想要换数据库,那样就会很不方便,因为所有连接数据库的代码都要从新编写。SUN公司为了简化。统一对数据库的操作,定义了一套java操作数据库的标准或者规范,这个规范就是JDBC。

  2.JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成。我们在开发过程中,只要实现它相应的接口就可以非常进行连接。    

  3.我们在开发JDBC应用时,还需要导入相应的数据库的驱动jar包,这些驱动jar包是由数据库公司自己编写的。

二、编写JDBC应用程序(需要连接数据库的程序)的前提准备

1.首先要确定连接的是哪个数据库实例,例如在mysql中,我们可以先创建一个库,然后在库中新建一张表,在表中插入一些数据,我在这里提供一段在mysql数据库中创建一个库,以及表和数据的sql语句,这也是下面连接数据库后操作的库和表。

create database test ; /*创建一个名为Test的数据库*/
use test;        /*使用该数据库或者说切换到该数据库*/
create table book (
  id int primary key auto_increment, /*列:id ,类型:int,从0开始,自动增加, 备注:主键*/
  name varchar(40) NOT NULL,    /*列:name ,类型:varchar, 备注:非空*/
  author varchar(40)NOT NULL, /*列:author ,类型:varchar, 备注:非空*/
  prices double NOT NULL  /*列:prices ,类型:double, 备注:非空*/
); /*新建一张名为book的表*/
/*插入四大名著的数据*/
insert into book(id,name,author,prices) values (null,'西游记','吴承恩',25.00);
insert into book(id,name,author,prices) values (null,'水浒传','施耐庵',30.00);
insert into book(id,name,author,prices) values (null,'红楼梦','曹雪芹',35.00);
insert into book(id,name,author,prices) values (null,'三国演义','罗贯中',40.00);
</div>

2.新建一个java项目,然后把mysql的驱动jar包导入进来,即添加到程序运行的库中,具体的驱动jar包,我们可以在数据库的安装目录下找到,或者都网上自己下载相对应的数据库驱动jar包

三、连接数据库操作的步骤解析

(1)注册数据库驱动

虽然我们刚才在新建java项目的时候将mysql数据库的驱动jar包导入进来了,但是JBDC不知道这里有一个驱动包,此时我们就需要将这个驱动包交给JBDC去管理,我们可以使用java.sql包下的DriverManager 工具类 提供的registerDriver(Driver driver) 方法来在JDBC中注册这个数据驱动,这个registerDriver(Driver driver)方法需要一个Driver对象,而这个Driver类本身是JDBC提供的一个接口,我们的驱动里面已经实现了这个接口,所以我们只需要写如下代码就可以实现注册数据库驱动的功能

import java.sql.DriverManager; //需要导入的是接口类包
DriverManager.registerDriver(new Driver());
</div>

(2)获取(创建)数据库的连接

我们注册好数据库驱动后,并没有连接上数据库,以往,我们不管在CMD窗口下,通过可视化数据库管理工具操作数据库时,我们都需要先连接数据库服务器,java程序连接数据库也不例外,这里的java程序就相当于客户端,只有先连接上数据库服务,才能对数据库进行操作

客户端与数据库所有交互都是通过connection对象完成的,这个对象的常用方法:

createStatement():创建向数据库发送sql的statement对象。

prepareStatement(sql) :创建向数据库发送预编译sql的

这里我们可以通过DriverManager 工具类里的getConnection(url,user,password)方法来创建数据库连接对象,此方法需要传入三个参数:

User: 数据库的用户名

Password:用户密码

URL:数据库服务器地址,不同的数据库的URL写法不同,我在这里提供三种主流数据库的URL地址写法:

Oracle写法:jdbc:oracle:thin:@localhost:1521:sid

SqlServe写法:jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid

MySql写法:jdbc:mysql://localhost:3306/sid

Mysql的url地址的简写形式: jdbc:mysql:///sid

注:后面的sid就是数据库的实例名称(使用的数据库名)

import java.sql.Connection; //导入的是接口类包
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //这里使用的是一个名为test的mysql数据库,用户名和密码都是root 
</div>

(3)创建传输器对象

上面我们已经创建了数据库的连接,已经连上数据库了,但是如果我们想要操作该数据库,我们需要用到sql语句,而我们怎样使用在java程序中使用sql语句来操作数据库呢,这里我们就需要一个传输器对象来传输sql语句到数据库中去执行。上文提到在Connection 类中就有一个createStatement()的方法可以创建一个传输器对象

import java.sql.Statement; //导入的是接口类包
Statement stat = conn.createStatement();
</div>

(4)利用传输器对象传输sql语句到数据库中执行操作,将结果用结果集返回

java.sql.Statement身上有许多传输sql语句的方法:其中用的最多的是

executeQuery(String sql) :用于向数据发送查询语句。

executeUpdate(String sql):用于向数据库发送insert、update或delete语句

execute(String sql):用于向数据库发送任意sql语句

import java.sql.ResultSet; //需要导入的接口类包
ResultSet rs = stat.executeQuery("select * from book"); //传输一条查询语句,查询book表中所有的元组数据
</div>

(5) 遍历结果集,并获取查询对象

Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。

ResultSet既然用于封装执行结果的,所以该对象提供的都是用于获取数据的get方法:

获取指定类型的数据,例如:

getString(int index)

getString(String columnName)

ResultSet还提供了对结果集进行滚动的方法:

next():移动到下一行

Previous():移动到前一行

absolute(int row):移动到指定行

beforeFirst():移动resultSet的最前面。

afterLast() :移动到resultSet的最后面。

while(rs.next())
 {
 String name = rs.getString("name");
 System.out.println(name);
}
</div>

(6)关闭连接(先创建的后关闭)

Jdbc程序运行完后,切记要释放程序在运行过程中,创建的那些与数据库进行交互的对象,这些对象通常是ResultSet, Statement和Connection对象。

特别是Connection对象,它是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。

rs.close(); 
stat.close();
conn.close(); 
</div>

初期完整的源代码

package jdbcDemo;
/****************************
 * 初版连接数据库程序
 **************************/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//不能导入 java.sql 中的 Driver 接口,要导入驱动jar包中实现该接口的类,只有这要才能注册相对应的数据库驱动
import com.mysql.jdbc.Driver; 
public class JDBCTest {
 public static void



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java 中数据库连接的JDBC和驱动程序的深入分析
  • Java中JDBC连接数据库详解
  • java 中数据库连接的JDBC和驱动程序的深入分析

相关文章

  • 2017-05-28Spring4整合Hibernate5详细步骤
  • 2017-05-28Java中equals()方法重写实现代码
  • 2017-05-28Windows+Apache+resin配置
  • 2017-05-28Mybatis 一对多和多对一关联查询问题
  • 2017-05-28java使用POI操作excel文件
  • 2017-05-28Java 可视化垃圾回收_动力节点Java学院整理
  • 2017-05-28详解Java动态加载数据库驱动
  • 2017-05-28java中&与&&的区别
  • 2017-05-28java自加和自减运算过程
  • 2017-05-28spring boot ajax跨域的两种方式

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • java中将一个List等分成n个list的工具方法(推荐)
    • Java IO流 文件的编码实例代码
    • Java Map 在put值时value值不被覆盖的解决办法
    • 详解springMVC—三种控制器controller
    • BufferedInputStream(缓冲输入流)详解_动力节点Java学院整理
    • Spring 使用注解方式进行事务管理配置方式
    • springboot集成spring cache缓存示例代码
    • JSP request.setAttribute()详解及实例
    • 配置Spring4.0注解Cache+Redis缓存的用法
    • PipedWriter和PipedReader源码分析_动力节点Java学院整理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有