`

JAVA基础 之 JDBC

    博客分类:
  • java
阅读更多

提示:阅读本文之前您至少具备:

    1.sql基础知识

    2.Java面向对象编程

    3.异常的相关知识

 

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API

学习JDBC必须知道的几个接口和类:

    DriverManager:管理jdbc驱动的服务类(官网api解释)

    Connection:代表每一次数据库连接

    Statement:执行sql语句的工具接口 

    PreparedStatement:一个预编译的SQL Statement

    ResultSet:结果集,通过sql查询后产生的一张数据表

 

本文只讲述这些基础的如何使用,除此之外还有很多相关的内容,例如:

ResultSetMetaData、DatabaseMetaData、RowSet、RowSetFactory

事务、分页、存储二进制文件、执行存储过程、连接池(c3p0)等等

在今后的文章讲述,请关注我博客其他的文章。

 

使用前准备:

    下载你对应的数据库驱动包

    mysql下载地址:http://www.mysql.com/downloads/connector/j/ (2013-02-26有效)

    注意:这里会让你注册,但是仔细查找会发现下面有个 No thanks, just start my download. 点击这个就可以下载

    压缩包内有一个mysql-connector-java-5.1.23-bin.jar文件,将它加入到你的bulid path中

package com.cxy.jdbc;

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

/**
 * @author cxy
 */
public class JdbcTest
{
	private static Connection con=null;
	private static Statement stmt=null;
	private static ResultSet rs=null;
	
	public static void main(String[] args) throws Exception
	{
		try
		{
			/* jdbc编程可分为5步
			 * 第一步:加载驱动	将指定类加载到jvm中
			 * 第二步:创建数据库连接(Connection)
			 * 第三步:创建一个Statement
			 * 第四步:创建一个结果集(ResultSet)
			 * 第五步:关闭ResultSet、Statement、Connection
			 * 
			 * 说明:
			 * 1.良好的编程习惯应该将第五步的关闭操作放到 finally去执行
			 * 2.java7后的新接口可以提供 自动关闭功能 见下文
			 * 3.真实项目中 数据库相关连接信息都应写到配置文件中(xml或者Properties文件中)
			 * 4.使用本例前请先建立对应的数据库:dbtest,然后运行建表语句( 或修改成任意自己的库和表)
			 */
			Class.forName("com.mysql.jdbc.Driver");	
			con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");  //三个参数分别是数据库连接、帐号、密码
			stmt=con.createStatement();
			//stmt.execute("CREATE TABLE t_student ( id_ varchar(32) not null,name_  varchar(32),sex  varchar(32))");
			//stmt.execute("insert into t_student values ('1','小明','男')");
			//stmt.execute("insert into t_student values ('2','小白','女')");
			//stmt.execute("delete from t_student");
			stmt.executeQuery("select * from t_student");
			rs=stmt.getResultSet();
			System.out.println("id\t姓名\t 性别");
			while(rs.next())
			{
				System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
			}
			System.out.println("操作成功");
		}catch (Exception e) 
		{
			System.out.println("数据库操作出现异常");
		}finally
		{
			if(rs!=null)
			{
				//5.关闭结果集
				rs.close();
			}
			if(stmt!=null)
			{
				//6.关闭状态集
				stmt.close();
			}
			if(con!=null)
			{
				//7.关闭数据库连接
				con.close();
			}
			System.out.println("数据库各种资源已经关闭");
		}
		System.out.println("=====================================");
		
		/* Ok 我们已经看到了 其实我们只想操作一下数据库而已!难道那些烦人的关闭操作 java就不能自动执行?
		 * java7开始这个梦想成真了!java7开始出现了一个AutoCloseable接口,并且大部分的需要关闭资源的类都实现了这个接口
		 * 下面我们就来写一个和上面类似的程序看看吧
		 * 注意:这个只能在安装了java7之后的版本才能使用
		 */
		try(
				Connection con1=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");
				Statement stmt1=con1.createStatement();
				ResultSet rs1=stmt1.executeQuery("select * from t_student");
			)
			{
				System.out.println("id\t姓名\t 性别");
				while(rs1.next())
				{
					System.out.println(rs1.getString(1)+"\t"+rs1.getString(2)+"\t"+rs1.getString(3));
				}
			}catch(SQLException e)
			{
				System.out.println("数据库操作出现异常");
			}
		
		/*
		 * ok 简单吗?神奇吗?这就是传说中的try-with-resource,不仅仅是jdbc可以这样用哦~
		 * 更多扩展阅读请看:http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html
		 */
	}
}

 

声明:

1.原创文章,转载请标明并加本文连接。

2.更详尽的API请参见  http://docs.oracle.com/javase/7/docs/api/

3.文章反映个人愚见,如有异议欢迎讨论指正

3
1
分享到:
评论
3 楼 ahack 2013-03-05  
snkcxy 写道
ahack 写道
Java为什么不能像PHP一样连接数据库后select database而是在连接之前就必须指定数据库名?求解。

你的问题我已经写了一篇文章
http://snkcxy.iteye.com/blog/1821610
不知道这样解释 你能不能理解 满意不满意?

非常感谢,平时没有留意。
2 楼 snkcxy 2013-03-05  
ahack 写道
Java为什么不能像PHP一样连接数据库后select database而是在连接之前就必须指定数据库名?求解。

你的问题我已经写了一篇文章
http://snkcxy.iteye.com/blog/1821610
不知道这样解释 你能不能理解 满意不满意?
1 楼 ahack 2013-03-05  
Java为什么不能像PHP一样连接数据库后select database而是在连接之前就必须指定数据库名?求解。

相关推荐

    Java基础之JDBC相关代码

    Java基础之JDBC相关代码是Java编程中一个重要的部分,主要涉及如何与关系型数据库进行交互。在Java中,JDBC(Java Database Connectivity)是一套规范,它为开发者提供了标准的API,使得Java应用程序能够连接到各种...

    基于java基础和JDBC的小型员工管理系统

    【基于Java基础和JDBC的小型员工管理系统】是一个适合初学者进行实践的项目,它涵盖了Java编程语言的基础知识以及数据库连接技术JDBC。这个系统能够完成对员工信息的基本操作,包括增加新员工、删除现有员工、修改...

    JAVA数据库编程JDBC 与 Java数据库接口JDBC入门基础讲座 与 JDBC API数据库编程实作教材-程序设计-JAVA JDBC全压缩包.rar

    本压缩包包含了三个重要组成部分:《JAVA数据库编程JDBC》、《Java数据库接口JDBC入门基础讲座》以及《JDBC API数据库编程实作教材》。这些资源将帮助初学者全面理解和掌握JDBC的基础知识和实践技巧。 《JAVA数据库...

    java jdbc 需要包

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...

    java project user jdbc

    1. JDBC基础:JDBC是Java中用于访问数据库的标准API,由Java SE的javax.sql包提供。它允许Java程序与各种关系型数据库进行通信,包括Oracle、MySQL、SQL Server等。JDBC的主要组件有DriverManager、Connection、...

    java之jdbc项目文件

    本项目文件"java之jdbc项目文件"涵盖了使用JDBC进行数据库操作的基本概念和实践应用。下面将详细阐述JDBC的核心知识点。 1. **JDBC API概述**: JDBC是Java平台的一部分,它允许Java应用程序连接到各种类型的...

    Java高级课件 java数据库教程 JDBC教程 全套PPT课件资源集合 共12个章节.rar

    Java高级教程课件 java数据库教程 JDBC教程 2-oracle基础(1)(共48页).ppt Java高级教程课件 java数据库教程 JDBC教程 2-oracle基础(2)(共48页).ppt Java高级教程课件 java数据库教程 JDBC教程 3-oracle查询和SQL...

    Java jdbc

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组标准API。JDBC使得Java开发者能够编写...JDBC是Java开发数据库应用的基础,也是许多企业级框架(如Spring JDBC)的基石。

    JAVA连接Mysql模板类之JDBC基础类

    java基础JDBC连接Mysql数据库。

    家庭理财管理系统(java swing+jdbc)

    总结而言,Java Swing提供了强大的GUI构建能力,JDBC则负责数据的持久化处理,两者结合构建的家庭理财管理系统不仅实现了基础的记账功能,还能进行数据分析,辅助用户做出更明智的财务决策。无论是对个人开发者还是...

    使用java swing和jdbc完成的餐饮管理系统。并且实现了餐桌拖拽的功能。能基本满足一般餐饮的使用

    Java Swing和JDBC是Java开发领域中的两个重要技术,它们在构建桌面应用程序和数据库交互方面发挥着关键作用。本项目是一个基于Java Swing的餐饮管理系统,它利用了Swing丰富的组件库来创建用户友好的图形界面,并...

    java基础-JDBC的使用

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与数据库进行交互的标准API。下面是使用Java JDBC进行数据库操作的基本步骤: 加载数据库驱动程序。 建立数据库连接。 创建和执行SQL语句。 处理结果集...

    java sql server jdbc驱动jar

    Java SQL Server JDBC驱动jar是Java应用程序与Microsoft SQL Server数据库之间通信的重要组件。JDBC(Java Database Connectivity)是一种标准API,由Sun ...理解和正确使用这个驱动是Java数据库编程的基础。

    JDBC基础(入门级的)

    **JDBC基础知识详解** Java Database Connectivity (JDBC) 是Java平台上的一个标准API,用于与关系型数据库进行交互。它是Java开发者访问数据库的唯一、统一的接口,由Sun Microsystems(现已被Oracle收购)定义,...

    JAVA—JDBC数据库查询小程序

    这个"JAVA—JDBC数据库查询小程序"是一个综合性的项目,它涵盖了JDBC的基础操作、面向对象封装以及UI设计,对初学者来说是一份宝贵的实战练习资料。通过学习和实践,你可以深入理解JAVA与数据库的交互方式,以及如何...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    理解Hive JDBC的工作原理以及如何在Java项目中正确配置和使用它是大数据开发中的关键技能之一。通过这个实例,你现在已经具备了使用Hive JDBC的基础知识,可以进一步探索更高级的Hive和Java集成技术。

    Java Database Programming with JDBC

    总的来说,《Java Database Programming with JDBC》是一本全面介绍Java数据库编程的书籍,涵盖了从基础的SQL语法到高级的JDBC应用,对于希望使用Java进行数据库开发的程序员来说,是一份宝贵的资源。

    java封装jdbc的操作代码

    1. **JDBC基础概念** JDBC是Java API的一部分,它提供了连接数据库、发送SQL语句、处理结果集等方法。JDBC驱动是连接Java应用程序和数据库之间的桥梁,分为四种类型:Type 1(JDBC-ODBC桥),Type 2(部分Java驱动...

    JAVA课件\J2EE讲义Jdbc技术.PPT

    1. SQL级别的API:JDBC提供了一组接口,允许开发者执行基础的SQL语句并获取结果。 2. SQL一致性:JDBC允许使用数据库系统特有的SQL查询,兼容ANSI SQL 92标准。 3. 可构建在现有数据库接口之上,如ODBC。 4. 提供与...

    轻量级的java数据源jdbc框架

    在轻量级的 Java 数据源框架中,C3P0 被用作基础,提供数据库连接的池化管理,以优化数据库访问性能。通过配置 C3P0 的参数,我们可以调整连接池的大小、超时时间、空闲检测频率等,以适应不同的应用场景。 该框架...

Global site tag (gtag.js) - Google Analytics