JDBC连接MySQL数据库及演示样例

JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术。

一、JDBC基础知识        

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,能够为多种关系数据库提供统一訪问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发者提供了一个标准的API,据此能够构建更高级的工具和接口,使数据库开发者能够用纯 Java API 编写数据库应用程序,而且可跨平台执行,而且不受数据库供应商的限制。

1、跨平台执行:这是继承了Java语言的“一次编译,到处执行”的特点;

2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发者通过SQL调用数据库和处理结果,而不须要考虑数据库的提供商;还有一个是驱动程序层,处理与详细驱动程序的交互,JDBC驱动程序能够利用JDBC API创建Java程序和数据源之间的桥梁。应用程序仅仅须要编写一次,便能够移到各种驱动程序上执行。Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就能够被识别,就能够正常工作。所以JDBC不受数据库供应商的限制。

JDBC API能够作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同一时候也有负面影响,下面是JDBC的优、缺点。长处例如以下:

  • 操作便捷:JDBC使得开发者不须要再使用复杂的驱动器调用命令和函数;
  • 可移植性强:JDBC支持不同的关系数据库,所以能够使同一个应用程序支持多个数据库的訪问,仅仅要载入对应的驱动程序就可以;
  • 通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC;
  • 面向对象:能够将经常使用的JDBC数据库连接封装成一个类,在使用的时候直接调用就可以。

  缺点例如以下:

  • 訪问数据记录的速度受到一定程度的影响;
  • 更改数据源困难:JDBC可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了非常大的麻烦

二、JDBC连接数据库的流程及其原理

1、在开发环境中载入指定数据库的驱动程序。比如,接下来的实验中,使用的数据库是MySQL,所以须要去下载MySQL支持JDBC的驱动程序(最新的是:mysql-connector-java-5.1.18-bin.jar);而开发环境是MyEclipse,将下载得到的驱动程序载入进开发环境中(详细演示样例的时候会解说怎样载入)。

2、在Java程序中载入驱动程序。在Java程序中,能够通过 “Class.forName(“指定数据库的驱动程序”)” 方式来载入加入到开发环境中的驱动程序,比如载入MySQL的数据驱动程序的代码为:  Class.forName(“com.mysql.jdbc.Driver”)

3、创建数据连接对象:通过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所载入的驱动程序能否够建立连接,然后通过它的getConnection方法,依据数据库的URL、username和password,创建一个JDBC
Connection 对象。如:Connection connection =  DriverManager.geiConnection(“连接数据库的URL", "username", "password”)。当中,URL=协议名+IP地址(域名)+port+数据库名称;username和password是指登录数据库时所使用的username和password。详细演示样例创建MySQL的数据库连接代码例如以下:

Connection connectMySQL  =  DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser","root" ,"root" );

4、创建Statement对象:Statement 类的主要是用于运行静态 SQL 语句并返回它所生成结果的对象。通过Connection 对象的 createStatement()方法能够创建一个Statement对象。比如:Statement statament = connection.createStatement(); 详细演示样例创建Statement对象代码例如以下:

Statement statamentMySQL =connectMySQL.createStatement();

5、调用Statement对象的相关方法运行相相应的 SQL 语句:通过execuUpdate()方法用来数据的更新,包含插入和删除等操作,比如向staff表中插入一条数据的代码:

statement.excuteUpdate( "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)" + " VALUES (‘Tom1‘, 321, ‘M‘, ‘china‘,‘Personnel‘,‘3‘,‘3000‘ ) ") ;

通过调用Statement对象的executeQuery()方法进行数据的查询,而查询结果会得到 ResulSet对象,ResulSet表示运行查询数据库后返回的数据的集合,ResulSet对象具有能够指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。假设当next()方法返回null,则表示下一行中没有数据存在。使用演示样例代码例如以下:

ResultSet resultSel = statement.executeQuery( "select * from staff" );

6、关闭数据库连接:使用完数据库或者不须要訪问数据库时,通过Connection的close() 方法及时关闭数据连接。

三、JDBC应用演示样例实验

实验内容:使用phpMyAdmin在MySQL中创建数据库(myuser),并加入实验所需的数据(新建staff表,加入一些记录);编写Java程序,利用JDBC连接在MySQL中创建好的数据库(myuser),对staff表格进行插入、更新、删除和查询等操作。

实验环境及开发工具:Win7操作系统;jdk1.6.0_26;XAMPP1.7.7(MySQL 5.1,  phpMyAdmin);MyEclipse 8.5

实验环境的搭建:可參考我的博客

实验过程及步骤:

  1、下载MySQL支持JDBC的驱动程序:假设已经有了,可跳过这一步。前往MySQL官网(http://www.mysql.com/products/connector/)下载驱动程序,,MySQL针对不同的平台提供了不同的连接器,我们须要的是DBC
Driver for MySQL (Connector/J),例如以下图所看到的,点击 Download 跟着站点的引导进行下载。打开下载得到的压缩包(mysql-connector-java-5.1.18.zip),将当中的Java包(mysql-connector-java-5.1.18-bin.jar),拷贝到MySQL文件夹下(仅是为了方便才放到这里),以备载入驱动程序时使用。

2、创建数据库:使用phpMyAdmin,登录MySQL,创建数据库myuser,并在当中插入一个名为staff的表格。并加入一些数据,操作步骤如图,登录进去MySQL数据库后:

1)创建数据库,名称为myuser,编码为utf8_general_ci(支持中文);

2)新建表格,名称为staff,表格有8个字段;

3)8个字段的设置,包含名称、类型、值的长度、初始值、编码等等(点击查看大图);

4)加入成功后,查看的staff表格情况:

5)往表格中插入一些实验所需数据,须要插入两条,一个是员工lucy的,还有lili的:

  3、在MyEclips中创建项目并在项目中加入MySQL驱动程序:创建的项目类型能够是Java项目或者是Java Web项目都能够。这里创建的是Web项目,项目名称能够随便取,我命名为“JavaWebChp07”。创建成功后将步骤1里下载得到的MySQL驱动程序包(mysql-connector-java-5.1.18-bin.jar)加入到project的Build path中,加入过程如图所看到的:

4、编写JDBC连接MySQL数据库的实例详细代码,JDBC_Test.java:

详细代码:

<pre name="code" class="java">package chp07;

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

public class JDBC_Test {
	// 创建静态全局变量
	static Connection conn;

	static Statement st;

	public static void main(String[] args) {
		insert();	//插入加入记录
		update();	//更新记录数据
		delete();	//删除记录
		query();	//查询记录并显示
	}

	/* 插入数据记录,并输出插入的数据记录数*/
	public static void insert() {

		conn = getConnection();	// 首先要获取连接,即连接到数据库

		try {
			String sql = "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)"
					+ " VALUES ('Tom1', 32, 'M', 'china','Personnel','3','3000')";	// 插入数据的sql语句

			st = (Statement) conn.createStatement();	// 创建用于运行静态sql语句的Statement对象

			int count = st.executeUpdate(sql);	// 运行插入操作的sql语句,并返回插入数据的个数

			System.out.println("向staff表中插入 " + count + " 条数据");	//输出插入操作的处理结果

			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("插入数据失败" + e.getMessage());
		}
	}

	/* 更新符合要求的记录,并返回更新的记录数目*/
	public static void update() {
		conn = getConnection();	//相同先要获取连接,即连接到数据库
		try {
			String sql = "update staff set wage='2200' where name = 'lucy'";// 更新数据的sql语句

			st = (Statement) conn.createStatement();	//创建用于运行静态sql语句的Statement对象,st属局部变量

			int count = st.executeUpdate(sql);// 运行更新操作的sql语句,返回更新数据的个数

			System.out.println("staff表中更新 " + count + " 条数据");		//输出更新操作的处理结果

			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("更新数据失败");
		}
	}

	/* 查询数据库,输出符合要求的记录的情况*/
	public static void query() {

		conn = getConnection();	//相同先要获取连接,即连接到数据库
		try {
			String sql = "select * from staff";		// 查询数据的sql语句
			st = (Statement) conn.createStatement();	//创建用于运行静态sql语句的Statement对象,st属局部变量

			ResultSet rs = st.executeQuery(sql);	//运行sql查询语句,返回查询数据的结果集
			System.out.println("最后的查询结果为:");
			while (rs.next()) {	// 推断是否还有下一个数据

				// 依据字段名获取对应的值
				String name = rs.getString("name");
				int age = rs.getInt("age");
				String sex = rs.getString("sex");
				String address = rs.getString("address");
				String depart = rs.getString("depart");
				String worklen = rs.getString("worklen");
				String wage = rs.getString("wage");

				//输出查到的记录的各个字段的值
				System.out.println(name + " " + age + " " + sex + " " + address
						+ " " + depart + " " + worklen + " " + wage);

			}
			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("查询数据失败");
		}
	}

	/* 删除符合要求的记录,输出情况*/
	public static void delete() {

		conn = getConnection();	//相同先要获取连接,即连接到数据库
		try {
			String sql = "delete from staff  where name = 'lili'";// 删除数据的sql语句
			st = (Statement) conn.createStatement();	//创建用于运行静态sql语句的Statement对象,st属局部变量

			int count = st.executeUpdate(sql);// 运行sql删除语句,返回删除数据的数量

			System.out.println("staff表中删除 " + count + " 条数据\n");	//输出删除操作的处理结果

			conn.close();	//关闭数据库连接

		} catch (SQLException e) {
			System.out.println("删除数据失败");
		}

	}

	/* 获取数据库连接的函数*/
	public static Connection getConnection() {
		Connection con = null;	//创建用于连接数据库的Connection对象
		try {
			Class.forName("com.mysql.jdbc.Driver");// 载入Mysql数据驱动

			con = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/myuser", "root", "root");// 创建数据连接

		} catch (Exception e) {
			System.out.println("数据库连接失败" + e.getMessage());
		}
		return con;	//返回所建立的数据库连接
	}
}

项目部署到server,然后执行结果:

http://www.5678520.com/kaiwangdian/130.html

http://www.5678520.com/kaiwangdian/129.html

http://www.5678520.com/kaiwangdian/128.html

http://www.5678520.com/kaiwangdian/127.html

http://www.5678520.com/kaiwangdian/126.html

http://www.lianzhiwei.com/News/389/20122116.html

http://www.lianzhiwei.com/News/389/20122115.html

http://www.lianzhiwei.com/News/389/20122114.html

http://www.lianzhiwei.com/News/389/20122113.html

http://www.lianzhiwei.com/News/389/20122112.html




				
时间: 2024-10-05 23:07:12

JDBC连接MySQL数据库及演示样例的相关文章

Java基础102 完整的JDBC连接MySQL数据库和Oracle数据库的方法

本文知识点(目录): 1.jdbc连接MySQL数据库    2.jdbc连接Oracle数据库    3.附录[本文jdbc连接MySQL或Oracle数据库的全部代码(合起来,做对比)] 1.JDBC连接MySQL数据库 1.1.我用到的jar包 1.2.实例演示 MySQL建表语句 1 -- MySQL建表语句 2 create table user( 3 id number(5) primary key auto_increment, 4 account varchar(20) not

(详细)JAVA使用JDBC连接MySQL数据库(1)- 软件

欢迎任何形式的转载,但请务必注明出处. 1.jdk 点击查看安装和环境配置教程 2.Eclipse 点击进入官网下载 注意下载完成打开.exe后,出现下图界面,有很多版本供选择 本人目前在学JSP所以安装的是Java EE版本,初学者可以选择第一个Java Developers版本 3.Mysql 点击进入官网下载 点击进入推荐安装教程+环境配置 下载页面注意事项 (虽然选项只有32位的,但下载完成后32位和64位都会安装) (上面的是在线安装,下面的是离线安装,建议选择离线安装) 系列文章 (

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

JAVA使用JDBC连接MySQL数据库 二(2)

本文是对 <JAVA使用JDBC连接MySQL数据库 二>的改进. 上节使用的是PreparedStatement来执行数据库语句,但是preparedStatement需要传递一个sql语句参数,才能创建.然而,DBHelper类只是起到打开和关闭数据库的作用,所以sql语句是要放到应用层部分的,而不是放到DBHelper类中. 而statment不需要传递一个sql语句参数,就能创建. 修改部分如下: public class DBHelper { String driver = &quo

使用JDBC连接MySQL数据库--典型案例分析(八)----实现员工数据的分页查询

转载请注明:http://blog.csdn.net/uniquewonderq 问题: 使用JDBC连接Mysql数据库,实现对Emp表数据的分页查询功能. 方案: 对于较大的数据量,通常采用分页查询的方式.不同的数据库产品有不同的数据库级的分页查询策略.例如:Oracle通常使用rownum的方式:而Mysql使用limit的方式. Oracle采用rownum和子查询实现分页查询,SQL语句如下, select * from (select rownum rn,empno,ename,jo

Java连接redis的使用演示样例

Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sorted list. Redisserver眼下最稳定的版本号是2.8.9,能够到官网http://redis.io/download下载.依据机器的类型及位数下载相应的版本号安装就可以,reids支持linux和windows操作系统. Redisclient支持多种语言,包含:c.C++.C#.php.java.python.go等语

jdbc 连接mysql数据库

jdbc驱动到官网下载,放在jdk的相关目录下面,或者jar文件加入到工程下面 package test_mysql; import java.sql.*; import java.util.Set; public class testjdbc { public static Connection getConnection() throws ClassNotFoundException, SQLException{ String URL="jdbc:mysql://localhost:3306

Crystal Reports 2008(水晶报表) JDBC连接mysql数据库

在本blog中,主要介绍的是Crystal Reports 2008使用JDBC连接mysql数据库. 在连接之间,首先要确认你电脑上面都安装了mysql数据库. 其次,就是jdbc连接数据时候所使用的相关jar包. 接下来,就可以进行数据库的一些连接操作了. 对JDBC不是很了解的,可以到 完整java开发中JDBC连接数据库代码和步骤 了解相关的操作 1.打开Crystal Reports的数据专家 2.点击JDBC(JNDI)出现: 3.输入url和数据库类名,点击下一步: 4.输入pas

分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

         分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse+jdbc+mysql的小程序. 连接的数据库名称为db_database11,属性如下: 1.创建名为com.pmf.bean的包,包中是名为Product的类,用于封装商品信息. 全部代码如下: package com.pmf.bean; /** * 商品 * */