`

Java基础之JDBC

阅读更多
JDBC - Java DataBase Connectivity

JDBC 是 Java 面向关系型数据库提供的操作数据库的一套 API (Application Programming Interface)。
JDBC 属于 JavaSE 的一部分。

可以看到下面的类都是接口:

package java.sql;

public interface Connection;
public interface Statement;
public interface ResultSet;


然后每个数据库生产商根据JDBC,提供自己的具体实现类。
___________________________________________________________________________



下面是一个基本的JDBC使用过程:


package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

public class JDBCBasic {

    private Connection connect = null;
    private Statement statement = null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;

    public void readDataBase() throws Exception {
        try {
            //1. This will load the MySQL driver, each DB has its own driver
            Class.forName("com.mysql.jdbc.Driver");
            
            //2. Setup the connection with the DB
            connect = DriverManager
                    .getConnection("jdbc:mysql://localhost/feedback?"
                            + "user=sqluser&password=sqluserpw");
            // or
            // DriverManager.getConnection(
            //         "jdbc:mysql://localhost/feedback", "sqluser", "sqluserpw");

            //3.1 Statements allow to issue SQL queries to the database
            statement = connect.createStatement();
            
            //4.1 Result set get the result of the SQL query
            resultSet = statement.executeQuery("select * from feedback.comments");
            writeResultSet(resultSet);

            //3.2 PreparedStatements can use variables and are more efficient
            preparedStatement = connect
                    .prepareStatement("insert into  feedback.comments values (default, ?, ?, ?, ? , ?, ?)");
            // "myuser, webpage, datum, summary, COMMENTS from feedback.comments");
            // Parameters start with 1
            preparedStatement.setString(1, "Test");
            preparedStatement.setString(2, "TestEmail");
            preparedStatement.setString(3, "TestWebpage");
            preparedStatement.setDate(4, new java.sql.Date(2009, 12, 11));
            preparedStatement.setString(5, "TestSummary");
            preparedStatement.setString(6, "TestComment");
            
            //4.2
            preparedStatement.executeUpdate();

            preparedStatement = connect
                    .prepareStatement("SELECT myuser, webpage, datum, summary, COMMENTS from feedback.comments");
            //4.3
            resultSet = preparedStatement.executeQuery();
            writeResultSet(resultSet);

            // Remove again the insert comment
            preparedStatement = connect
                    .prepareStatement("delete from feedback.comments where myuser= ? ; ");
            preparedStatement.setString(1, "Test");
            preparedStatement.executeUpdate();

            resultSet = statement
                    .executeQuery("select * from feedback.comments");
            writeMetaData(resultSet);

        } catch (Exception e) {
            throw e;
        } finally {
            close();
        }

    }

    private void writeMetaData(ResultSet resultSet) throws SQLException {
        // Now get some metadata from the database
        // Result set get the result of the SQL query

        System.out.println("The columns in the table are: ");

        System.out.println("Table: " + resultSet.getMetaData().getTableName(1));
        for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
            System.out.println("Column " + i + " "
                    + resultSet.getMetaData().getColumnName(i));
        }
    }

    private void writeResultSet(ResultSet resultSet) throws SQLException {
        // ResultSet is initially before the first data set
        while (resultSet.next()) {
            // It is possible to get the columns via name
            // also possible to get the columns via the column number
            // which starts at 1
            // e.g. resultSet.getSTring(2);
            String user = resultSet.getString("myuser");
            String website = resultSet.getString("webpage");
            String summary = resultSet.getString("summary");
            Date date = resultSet.getDate("datum");
            String comment = resultSet.getString("comments");
            System.out.println("User: " + user);
            System.out.println("Website: " + website);
            System.out.println("summary: " + summary);
            System.out.println("Date: " + date);
            System.out.println("Comment: " + comment);
        }
    }

    // You need to close the resultSet
    private void close() {
        try {
            if (resultSet != null) {
                resultSet.close();
            }

            if (statement != null) {
                statement.close();
            }

            if (connect != null) {
                connect.close();
            }
        } catch (Exception e) {

        }
    }

}



分享到:
评论

相关推荐

    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