新手学JAVA(八)----走进JDBC

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: <div class="markdown_views"><p></p><div class="toc"><ul><li><a href="#%E4%BB%80%E4%B9%88%E6%98%AFjdbc">什么是JDBC</a></li><li><a href="#%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E7%94%A8jdbc">为

什么是JDBC?


JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。

为什么要用JDBC?


在没有JDBC之前,应用程序可以通过数据库厂商提供的API及SQL语句对数据库进行操作,如下图:

这里写图片描述

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事,换言之,有了JDBC API,就不必为方位MySQL数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问SQLServer数据库又编写另一个程序,等等,程序员只需用JDBC API 写一个程序就够了,它可想相应的数据库发送SQL调用,同时将JAVA语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只需写一遍程序就可以让它在任何平台上运行。如下图:

这里写图片描述

怎么用JDBC?


JDBC的主要功能如下:

  • 建立与数据库或其他数据源的连接
  • 向数据库发送SQL命令
  • 处理数据库的返回结果

下面通过一个例子来演示Java数据库一个用程序反问数据库的全过程。

import java.sql.*; //导入包
import java.sql.Connection;
import java.sql.DriverManager;

public class JDBCMain {

    // 数据库的链接
    private Connection con = null;
    private Statement st = null; // 执行SQL语句的对象
    private ResultSet rs = null; // 结果集对象

    public JDBCMain() {

        // 桥连接
        try {

            // 声明驱动程序
            String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

            // users就是数据源的名称
            String ds = "jdbc:sqlserver://localhost:1433;databaseName=JavaSpecial";

            // 数据源的登录名
            String user = "sa";

            // 数据源的密码
            String password = "123456";

            // 链接数据库
            Class.forName(driver); // 加载数据库的驱动程序

            con = DriverManager.getConnection(ds, user, password);

            if (con != null) {

                System.out.println("数据库链接成功!");
            }
        } catch (Exception e) {
            System.out.println("数据库连接失败!" + e.toString());
        }
    }



    /**
     * 普通查询
     * @param sqlQuery
     */
    public void query(String sqlQuery) {

        try {
            // Connection con = null;
            Statement st = con.createStatement(); // 得到Statement的实例
            ResultSet rs = st.executeQuery(sqlQuery); // 执行SQL语句,返回结果集

            // 当返回的结果集不为空是,并且还有记录时
            while (rs != null && rs.next()) {
                int stu_num = rs.getInt(1); // 获得当前记录的第1个字段的值
                String name = rs.getString("name"); // 获得当前记录中"name"字段的值
                int age = rs.getInt("age"); // 获得当前记录中"age"字段的值
                int math = rs.getInt("math"); // 获得当前记录中"math"字段的值
                int english = rs.getInt("english"); // 获得当前记录中"english"字段的值

                System.out.println("学号=" + stu_num + "\t 姓名=" + name + "\t 年龄="
                        + age + "\t 数学成绩=" + math + "\t 英语成绩=" + english);
            }

        } catch (Exception e) {
            // 抛出异常
            System.out.println("查询数据时出错" + e.toString());
        }
    }

    /**
     * /添加,删除,更新
     */
    public void add_update_Del(String sql) {
        try {
            Statement st = con.createStatement(); // 生成Statement对象
            int x = st.executeUpdate(sql); // 执行操作
            System.out.println("操作成功" + x);
        } catch (Exception e) {
            System.out.println("数据修改时有误" + e.toString());
        }

    }

    // 主程序
    public static void main(String[] args) {

        JDBCMain jc = new JDBCMain();

        // 查询
        String name = "张三";
        String sqlQuery = "select * from stu_info where name='" + name + "'";
        jc.query(sqlQuery);

        //添加
        String sqlAdd ="insert into stu_info values(7,'令仔',17,89,84)";
        jc.add_update_Del(sqlAdd);

        //更改
        String sqlUpdate ="update stu_info set math =95 where name ='张三'";
        jc.add_update_Del(sqlUpdate);

        //删除
        String sqlDelete ="delete from stu_info where name='张三'";
        jc.add_update_Del(sqlDelete);
    }
}

下面是源代码下载的链接:JDBC数据库连接测试

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5天前
|
SQL Java 数据库连接
java使用jdbc操作数据库
java使用jdbc操作数据库
|
5天前
|
SQL Java 关系型数据库
javaweb实训第四天上午——JDBC入门(2)
3.1.3 拿到连接(贾琏) 注册驱动成功之后,接着拿到链接;(贾琏是一个人名字) 贾:加载驱动; 链:建立连接;
54 0
|
5天前
|
SQL Java 数据库连接
Java一分钟之-JDBC:Java数据库连接基础
【5月更文挑战第14天】JDBC是Java与关系数据库交互的API,常见问题包括资源管理、SQL注入和性能优化。易错点涉及驱动加载、空指针异常和事务管理。避免这些问题的方法有使用try-with-resources自动关闭资源、预编译PreparedStatement以防止SQL注入,以及正确管理事务。示例代码展示了基本的JDBC连接和查询。在实际开发中,推荐使用ORM框架如Hibernate或JPA来简化数据库操作。
15 1
|
5天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
13 0
|
5天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
12 0
|
5天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
|
5天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
5天前
|
SQL Java 数据库连接
使用JDBC进行数据库操作:Java Web开发的数据库连接
【4月更文挑战第3天】Java Web开发中,JDBC是与数据库交互的关键,提供统一访问关系型数据库的规范。核心组件包括DriverManager、Connection、Statement和ResultSet。使用流程涉及加载驱动、建立连接、创建Statement、执行SQL及处理结果,最后关闭资源。最佳实践包括使用try-with-resources、PreparedStatement、事务管理等。在Web开发中,JDBC用于用户认证、数据持久化、检索和事务管理。虽然有ORM工具,但掌握JDBC基础仍然重要。
|
5天前
|
SQL Java 数据库连接
Java的JDBC编程
Java的JDBC编程
|
5天前
|
SQL Java 关系型数据库
Java学习—JDBC
Java学习—JDBC