`

java JDBC编程

阅读更多
1:JDBC
Java DataBase Connectivity(Java数据库连接技术)


2:JDBC设计的目的。

是一种接口的类组成。使用接口的特点,只定义规范,让不同的
数据库厂商实现。这样程序员不用关心如何连接各种数据库的底
层实现。

3:JDBC的组成结构

JDBC_API(SUN公司提供)

驱动管理器(用于连接API与驱动之间的连接关系)


数据库的驱动程序(数据库厂商提供)


4:JDBC的4种驱动的类型
A:JDBC_ODBC桥

B:本地API

C:网络协议驱动

D:本地协议驱动。

A/B:适合C/S架构

C/D:适合B/S架构。

效率:B>C>D>A


5:JDBC的连接过程:

前提:将数据库的驱动包拷到工程中。

A:加载驱动。

B:获取连接

C:构造SQL语句执行对象

D:发送SQL

E:关闭资源(关闭的先后问题)


6:Connection接口的方法:
close()
savePoint(name)
commit()
rollback()
rollback(SavePoint)
setAutoCommit();


createStatement();
prepareStatement(String sql)
prepareCall(String sql)

7:Statement
addBatch(String sql)
executeBatch
clearBatch()

close()

execute() //执行DDL,DML和Select语句。
true:表示执行的是SElect语句。
false:表示执行提DDL和insert/update/delete语句。

executeUpdate()  //执行DDL和DML语句。返回影响行数的结果。
executeQuery(); //执行Select语句。

8:ResultSet
结果集:结果集与游标或者迭代器的机制一致。停在第一条记录的前面。

要用的话,必须Next一下。

9、例子

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

public class TestJDBC {


	public static void insertBatch() {
		// userid/username/spassword/deptid
		Connection connection = null;
		Statement statement = null;

		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		String user = "user";
		String password = "password";

		try {
			// 1 加载驱动程序
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		try {
			// 2 建立数据库连接
			connection = DriverManager.getConnection(url, user, password);
			// 改变事务提交方式,以便手动控制事务
			connection.setAutoCommit(false);
			// 3 执行SQL语句
			statement = connection.createStatement();

			// 批量插入
			String sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)";
			statement.addBatch(sql);
			sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)";
			statement.addBatch(sql);
			sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)";
			statement.addBatch(sql);
			sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)";
			statement.addBatch(sql);
			sql = "insert into t_user values(seq_t_user.nextval,'oracle1105' || seq_t_user.currval,'666666',2)";
			statement.addBatch(sql);

			statement.executeBatch();
			// 手动提交
			connection.commit();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 4 关闭资源
			// try {
			// statement.close();
			// connection.close();
			// } catch (SQLException e) {
			// // TODO Auto-generated catch block
			// e.printStackTrace();
			// }

		}

	}

	public static void query() {

		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;

		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		String user = "user";
		String password = "password";
		String sql = "select * from t_user";
		try {
			// 1 加载驱动程序
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		try {
			// 2 建立数据库连接
			connection = DriverManager.getConnection(url, user, password);
			// 3 执行SQL语句
			statement = connection.createStatement();
			// 4 接收查询结果
			resultSet = statement.executeQuery(sql);

			while (resultSet.next()) {
				// 1 字段顺序
				int userid = resultSet.getInt(1);
				String username = resultSet.getString("username");

				System.out
						.println("userid:" + userid + ",username:" + username);
			}
			
			ResultSetMetaData resultSetMetaData=resultSet.getMetaData();
			int count=resultSetMetaData.getColumnCount();
			
			System.out.println("列数:"+count);
			for (int i = 1; i <= count; i++) {
				System.out.println("列名:"+resultSetMetaData.getColumnName(i));
				System.out.print("类型:"+resultSetMetaData.getColumnTypeName(i));
				
			}
			

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 4 关闭资源
			try {
				resultSet.close();
				statement.close();
				connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

	}

	
	public static void main(String[] args) {
		query();
	}

}

分享到:
评论

相关推荐

    Java JDBC编程总结

    ### Java JDBC编程总结 #### 一、JDBC基本原理 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,这使得Java应用程序无需依赖于底层数据库的具体实现就...

    javaJDBC编程.ppt

    javaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.ppt

    Java-Java JDBC编程教程

    本教程将深入探讨Java JDBC编程的基础和实践,帮助你掌握如何在Java应用中高效地使用数据库。 ### 1. JDBC基础知识 #### 1.1 数据库驱动 在Java中,与数据库通信需要一个对应的数据库驱动。JDBC驱动分为四种类型:...

    Java jdbc编程驱动(全)

    本资源“Java jdbc编程驱动(全)”包含了多种主流数据库系统的JDBC驱动,包括MySQL、Oracle 10g以及SQL Server,这使得Java开发者能够在不同的数据库环境下方便地进行开发。 1. **MySQL JDBC驱动**:MySQL的JDBC...

    java JDBC编程源码

    本压缩包中的"java JDBC编程源码"很可能包含以下几个方面的内容: 1. **JDBC连接数据库**:源码中可能包含了如何通过`DriverManager.getConnection()`方法建立数据库连接的示例。首先需要加载数据库驱动,例如`...

    java jdbc编程技术

    Java JDBC(Java ...总之,Java JDBC编程技术是Java开发人员必备的技能之一,掌握好JDBC可以帮助我们更好地进行数据库操作,提升应用的稳定性和效率。通过深入学习和实践,我们可以成为一名优秀的数据库开发者。

    JAVA JDBC编程

    **Java JDBC编程**是Java应用程序与数据库交互的关键技术。JDBC(Java Database Connectivity)是Java平台中的一个标准接口,它允许Java程序与各种类型的数据库进行通信。本章将深入探讨JDBC的核心概念、架构和使用...

    Java JDBC 编程知识全面总结 一张图搞定!

    全面的 Java JDBC 编程学习知识总结 一张图搞定! 结构性强,便于记忆! 资源博客:https://blog.csdn.net/CodeYearn/article/details/89196038

    JavaJDBC编程

    Java JDBC编程是Java语言连接和操作关系型数据库的关键技术。JDBC(Java Database Connectivity)是Java平台中的标准API,它允许Java程序通过Java代码来访问和处理各种类型的数据库。本实验旨在让学生掌握使用JDBC ...

    JDBC编程!java中的数据库连接!源代码!适合初学者!

    总的来说,JDBC编程是Java程序员必须掌握的基础技能之一,它不仅可以帮助我们理解数据库操作的底层原理,还可以提高我们解决实际问题的能力。对于初学者来说,通过学习JDBC编程,可以加深对Java和数据库的理解,为...

    Java JDBC 编程技术

    在学习JDBC编程时,还需要了解如何处理异常,以及如何根据具体的数据库驱动进行适配。此外,JDBC API虽然强大,但在复杂的应用场景下,通常会结合ORM框架(如Hibernate、MyBatis)来简化数据库操作,提高开发效率。...

    java jdbc 需要包

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

    jdbc.zip_java jdbc_java+jdbc_jdbc_jdbc Java_zip

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组接口和类。它作为标准API,允许开发人员通过编写Java代码来访问和操作数据库,无需了解数据库特定的SQL语法或者驱动...

    java连接DB2jdbc所有驱动

    在Java JDBC编程中,要妥善处理SQLException及其子类,确保在出现错误时能正确关闭资源并给出反馈。 7. **性能优化** - 使用PreparedStatement预编译SQL语句,提高执行效率。 - 合理设置批处理(batch ...

    Java JDBC学生数据管理系统

    Java JDBC学生数据管理系统是一个利用Java编程语言和JDBC(Java Database Connectivity)技术设计的应用,用于高效管理和操作学生数据。这个系统提供了用户友好的界面,使得用户可以方便地执行SQL(Structured Query...

    基于Java的网吧管理系统,MySQL数据库,JDBC编程!

    基于Java的网吧管理系统,MySQL数据库,JDBC编程! 基于Java的网吧管理系统,MySQL数据库,JDBC编程! 基于Java的网吧管理系统,MySQL数据库,JDBC编程! 基于Java的网吧管理系统,MySQL数据库,JDBC编程! 基于Java...

    JDBC编程技术.rar_JDBC编程例子_JDBC编程技术_brownmxh_java

    本资料"JDBC编程技术.rar"提供了关于JDBC编程的详细指南和实例,作者brownmxh是一名Java领域的专家。 在JDBC编程中,首先需要理解的是JDBC驱动程序的四个主要类型:Type 1、Type 2、Type 3和Type 4。Type 1是纯Java...

    JAVA jdbc-mysql练习

    Java JDBC (Java Database Connectivity) 是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版的一部分,允许开发人员在不依赖特定数据库API的情况下,编写可移植的数据库应用程序。JDBC提供了...

Global site tag (gtag.js) - Google Analytics