数据库:JDBC编程

Java数据库编程与JDBC:深入理解JDBC驱动与SQL操作 本文通过Pratik Patel的《Java Database Programming with JDBC》一书,深入探讨了如何使用JDBC驱动程序连接数据源,创建和操作数据库表,以及通过SQL语句进行数据的维护和查询。文章详细介绍了SQL中数据类型的选择,如何创建和修改表结构,以及如何通过DQL和DML进行数据的增删改查。此外,还探讨了如何使用JDBC-ODBC桥接器连接到ODBC数据源,并讨论了安全限制和未来可能的解决方案。 阅读详情
From:http://blog.youkuaiyun.com/leelit/article/details/41044187

    JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。说白了,它用于直接调用 SQL 命令。

主要步骤:

1.加载JDBC驱动程序    
2.建立于数据库的连接   
3.创建一个Statement,添加相关参数
4.执行SQL语句
5.处理执行结果
6.关闭JDBC的对象


几个重要的类:
(1)
public class DriverManager extends Object
管理一组 JDBC 驱动程序的基本服务。
主要方法是:
public static Connection getConnection(String url,String user,String password)throws SQLException
试图建立到给定数据库 URL 的连接。DriverManager 试图从已注册的 JDBC 驱动程序集中选择一个适当的驱动程序。

(2)
public interface PreparedStatement extends Statement
表示预编译的 SQL 语句的对象。 SQL 语句被预编译并存储在PreparedStatement对象中。然后可以使用此对象多次高效地执行该语句。 与Statement接口相比,Statement用于执行静态 SQL 语句并返回它所生成结果的对象。 
主要方法是:
1. void setObject(int parameterIndex,Object x) throws SQLException
使用给定对象设置指定参数的值,其实就是为SQL语句占位符的设定实际参数。

2. intexecuteUpdate() throws SQLException

在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。 
返回:
(1) SQL 数据操作语言 (DML) 语句的行数 (2) 对于无返回内容的 SQL 语句,返回 0 


3. ResultSet executeQuery() throws SQLException
在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。 
返回:
包含该查询生成的数据的 ResultSet 对象;不会返回 null

(3)
留意执行executeUpdate()和executeQuery()方法返回的值发现executeQuery()返回的是一个结果集对象。
public interface ResultSet extends Wrapper
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

主要方法是:
1. ResultSetMetaData getMetaData() throws SQLException

获取此ResultSet对象的列的编号、类型和属性。 
而ResultSetMetaData的主要方法就是 int getColumnCount() 返回此 ResultSet 对象中的列数;  String getColumnName(int column) 获取指定列的名称。  

2. Object getObject(int columnIndex) throws SQLException

以 Java 编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值。 


实例一:MySQL+JDBC

Windows用户可以再http://dev.mysql.com/downloads/windows/installer/下载MySql的自动配置安装版

使用Navicat作为MySql的数据库管理工具

另外还需要下载JDBC驱动程序http://dev.mysql.com/downloads/connector/j/,工程需要引用里面的jar包

①新建一个工具类JdbcUtils

[java]  view plain  copy
  1. import java.lang.reflect.Field;  
  2. import java.sql.Connection;  
  3. import java.sql.DriverManager;  
  4. import java.sql.PreparedStatement;  
  5. import java.sql.ResultSet;  
  6. import java.sql.ResultSetMetaData;  
  7. import java.sql.SQLException;  
  8. import java.util.ArrayList;  
  9. import java.util.HashMap;  
  10. import java.util.List;  
  11. import java.util.Map;  
  12.   
  13. public class JdbcUtils {  
  14.     // 数据库的登陆账号密码  
  15.     private final String USERNAME = "root";  
  16.     private final String PASSWORD = "123456";  
  17.     // JDBC驱动程序  
  18.     private final String DRIVER = "com.mysql.jdbc.Driver";  
  19.     // 数据库地址  
  20.     private final String URL = "jdbc:mysql://localhost:3306/test";  
  21.   
  22.     // 三个重要类的对象  
  23.     private Connection connection;  
  24.     private PreparedStatement ps;  
  25.     private ResultSet resultSet;  
  26.   
  27.     public JdbcUtils() {  
  28.         try {  
  29.             // 步骤1:加载驱动程序  
  30.             Class.forName(DRIVER);  
  31.             // 步骤2:建立连接,这里的处理是当实例化这个工具类对象时就完成这两个步骤  
  32.             connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);  
  33.         } catch (ClassNotFoundException e) {  
  34.             // TODO 自动生成的 catch 块  
  35.             e.printStackTrace();  
  36.         } catch (SQLException e) {  
  37.             // TODO 自动生成的 catch 块  
  38.             e.printStackTrace();  
  39.         }  
  40.     }  
  41.   
  42.     // 封装的update函数  
  43.     public int update(String sql, List<Object> params) throws SQLException {  
  44.         int result = 0;  
  45.         // 步骤3:创建一个Statement,添加相关参数  
  46.         ps = connection.prepareStatement(sql);  
  47.         if (params != null && !params.isEmpty()) {  
  48.             for (int i = 0; i < params.size(); i++)  
  49.                 // 注意数据库的下标都是从1开始的,第i个占位符填充params的第i个值  
  50.                 ps.setObject(i + 1, params.get(i));  
  51.         }  
  52.         // 步骤4:执行SQL语句,步骤5和6则留给客户端处理  
  53.         result = ps.executeUpdate();  
  54.         return result;  
  55.     }  
  56.   
  57.     // 封装的query函数,返回的是List套个Map,数据库是以键值对的形式存储的  
  58.     public List<Map<String, Object>> query(String sql, List<Object> params)  
  59.             throws SQLException {  
  60.         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
  61.         // 步骤3:创建一个Statement,添加相关参数  
  62.         ps = connection.prepareStatement(sql);  
  63.         if (params != null && !params.isEmpty()) {  
  64.             for (int i = 0; i < params.size(); i++)  
  65.                 ps.setObject(i + 1, params.get(i));  
  66.         }  
  67.         // 步骤4:执行SQL语句  
  68.         resultSet = ps.executeQuery();  
  69.         // 步骤5:处理执行结果  
  70.         // 获取此ResultSet对象的列的属性  
  71.         ResultSetMetaData metaData = resultSet.getMetaData();  
  72.         // 列的长度  
  73.         int col_len = metaData.getColumnCount();  
  74.         // 若有下一条记录  
  75.         while (resultSet.next()) {  
  76.             // 将该条记录以map形式存储  
  77.             Map<String, Object> map = new HashMap<String, Object>();  
  78.             for (int i = 0; i < col_len; i++) {  
  79.                 // 根据列名获得键值并存放在map中  
  80.                 String col_name = metaData.getColumnName(i + 1);  
  81.                 Object col_value = resultSet.getObject(col_name);  
  82.                 map.put(col_name, col_value);  
  83.             }  
  84.             // 将该记录添加到list中  
  85.             list.add(map);  
  86.         }  
  87.         // 遍历完resultSet返回list  
  88.         return list;  
  89.     }  
  90.   
  91.     // 封装步骤6关闭JDBC对象  
  92.     public void release() {  
  93.         if (resultSet != null)  
  94.             try {  
  95.                 resultSet.close();  
  96.             } catch (SQLException e) {  
  97.                 // TODO 自动生成的 catch 块  
  98.                 e.printStackTrace();  
  99.             }  
  100.         if (ps != null)  
  101.             try {  
  102.                 ps.close();  
  103.             } catch (SQLException e) {  
  104.                 // TODO 自动生成的 catch 块  
  105.                 e.printStackTrace();  
  106.             }  
  107.         if (connection != null)  
  108.             try {  
  109.                 connection.close();  
  110.             } catch (SQLException e) {  
  111.                 // TODO 自动生成的 catch 块  
  112.                 e.printStackTrace();  
  113.             }  
  114.     }  
  115. }  
②TestMain类

[java]  view plain  copy
  1. import java.sql.SQLException;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. public class TestMain {  
  7.   
  8.     public static void main(String[] args) {  
  9.         // TODO 自动生成的方法存根  
  10.         JdbcUtils jdbcUtils = new JdbcUtils();  
  11.         /*执行一:新建表*/  
  12.         // String sql0 =  
  13.         // "create table userinfo(id int primary key auto_increment, username varchar(64), password varchar(64))";  
  14.         // try {  
  15.         // jdbcUtils.update(sql0, null);  
  16.         // } catch (SQLException e) {  
  17.         // // TODO 自动生成的 catch 块  
  18.         // e.printStackTrace();  
  19.         // }  
  20.           
  21.         /*执行二:增加一条记录*/  
  22.         // String sql = "insert into userinfo (username,password) values(?,?)";  
  23.         // List<Object> params = new ArrayList<Object>();  
  24.         // params.add("jack");  
  25.         // params.add("123456");  
  26.         // try {  
  27.         // jdbcUtils.update(sql, params);  
  28.         // } catch (SQLException e) {  
  29.         // // TODO 自动生成的 catch 块  
  30.         // e.printStackTrace();  
  31.         // }  
  32.           
  33.         /*执行三:修改一条记录*/  
  34.         // String sql1 = "update userinfo set username = ? where id = ?";  
  35.         // List<Object> param1 = new ArrayList<Object>();  
  36.         // param1.add("tommy");  
  37.         // param1.add(2);  
  38.         // try {  
  39.         // jdbcUtils.update(sql1, param1);  
  40.         // } catch (SQLException e) {  
  41.         // // TODO 自动生成的 catch 块  
  42.         // e.printStackTrace();  
  43.         // }  
  44.           
  45.         /*执行四:删除一条记录*/  
  46.         // String sql2 = "delete from userinfo where username = 'tommy'";  
  47.         // try {  
  48.         // jdbcUtils.update(sql2, null);  
  49.         // } catch (SQLException e) {  
  50.         // // TODO 自动生成的 catch 块  
  51.         // e.printStackTrace();  
  52.         // }  
  53.   
  54.         /*执行五:查询所有记录*/  
  55.         // String sql3 = "select * from userinfo";  
  56.         // try {  
  57.         // List<Map<String, Object>> list = jdbcUtils.query(sql3, null);  
  58.         // System.out.println(list);  
  59.         // } catch (SQLException e) {  
  60.         // // TODO 自动生成的 catch 块  
  61.         // e.printStackTrace();  
  62.         // }  
  63.     }  
  64.   
  65. }  
执行步骤一:创建一个新的表(以下说的执行步骤没有说明的话都是指单独执行,其他步骤都注释掉)



执行步骤二:创建一个表,有三个字段,id是主键


连续执行步骤三两次:增加两条记录

执行步骤四:将第二条记录修改


执行步骤五:删除第二条记录


执行步骤六:查询到一条记录


再次执行步骤一和步骤五:查询到多条记录



实例二:应用反射机制来实现查询数据库记录

①新建一个和数据库字段匹配的类UserInfo

[java]  view plain  copy
  1. public class UserInfo {  
  2.     private int id;  
  3.     private String username;  
  4.     private String password;  
  5.   
  6.     public int getId() {  
  7.         return id;  
  8.     }  
  9.   
  10.     public void setId(int id) {  
  11.         this.id = id;  
  12.     }  
  13.   
  14.     public String getUsername() {  
  15.         return username;  
  16.     }  
  17.   
  18.     public void setUsername(String username) {  
  19.         this.username = username;  
  20.     }  
  21.   
  22.     public String getPassword() {  
  23.         return password;  
  24.     }  
  25.   
  26.     public void setPassword(String password) {  
  27.         this.password = password;  
  28.     }  
  29.   
  30.     @Override  
  31.     public String toString() {  
  32.         return "UserInfo [id=" + id + ", username=" + username + ", password="  
  33.                 + password + "]";  
  34.     }  
  35.   
  36. }  
②在JdbcUtils类中添加一个应用反射机制的数据库查询函数

[java]  view plain  copy
  1. public <T> List<T> queryRef(String sql, List<Object> params, Class<T> cls)  
  2.         throws Exception {  
  3.     List<T> list = new ArrayList<>();  
  4.     ps = connection.prepareStatement(sql);  
  5.     if (params != null && !params.isEmpty()) {  
  6.         for (int i = 0; i < params.size(); i++)  
  7.             ps.setObject(i + 1, params.get(i));  
  8.     }  
  9.     resultSet = ps.executeQuery();  
  10.     ResultSetMetaData metaData = resultSet.getMetaData();  
  11.     int col_len = metaData.getColumnCount();  
  12.     while (resultSet.next()) {  
  13.         // 存在记录时,实例化一个对象  
  14.         T record = cls.newInstance();  
  15.         for (int i = 0; i < col_len; i++) {  
  16.             String col_name = metaData.getColumnName(i + 1);  
  17.             Object col_value = resultSet.getObject(col_name);  
  18.             // 将列对应的值赋给对象的相应字段  
  19.             Field field = cls.getDeclaredField(col_name);  
  20.             field.setAccessible(true);  
  21.             field.set(record, col_value);  
  22.         }  
  23.         // 将这条记录添加到List中  
  24.         list.add(record);  
  25.     }  
  26.     return list;  
  27. }  
③TestMain类,添加一个执行操作

[java]  view plain  copy
  1. /*执行六:反射机制查询记录*/  
  2. String sqlQuery = "select * from userinfo";  
  3. try {  
  4.     List<UserInfo> list = jdbcUtils.queryRef(sqlQuery, null,  
  5.             UserInfo.class);  
  6.     System.out.println(list);  
  7. } catch (Exception e) {  
  8.     // TODO 自动生成的 catch 块  
  9.     e.printStackTrace();  
  10. } finally {  
  11.     jdbcUtils.release();  
  12. }  
执行步骤六

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战) 本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。 阅读详情

相关推荐

别再纠结了!实测罗技Flow、对拷线、微软Mouse without Borders,我的最终选择是...

本文通过实测对比罗技Flow、对拷线和微软Mouse without Borders等多设备控制方案,详细分析了各自的优缺点及适用场景。作者最终选择了对拷线与罗技键鼠的组合方案,为专业用户提供了稳定可靠的多设备协同办公解决方案,特别适合需要频繁传输大文件和跨设备操作的用户。

weixin_33696106的博客 408

JDBC 编程

JDBC 编程的基本流程

lfm1010123的博客 1638

OPNET卫星节点仿真避坑指南:为什么你的STK轨道文件导入后位置不对?

本文深入解析OPNET卫星节点仿真中STK轨道文件导入后位置异常的常见问题,揭示坐标系差异(ECI与ECF)、时间基准不匹配等关键因素。通过修改.SA文件头标识、统一时间基准等解决方案,帮助工程师避免仿真失真,提升卫星通信系统仿真的准确性。特别适用于STK与OPNET协同工作的卫星网络仿真场景。

weixin_30335575的博客 601

JDBC编程

JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法。制作到数据库的连接。创建 SQL 或 MySQL 语句。执行 SQL 或 MySQL 查询数据库。查看和修改所产生的记录。Java 应用程序所有这些不同的可执行文件就可以使用 JDBC 驱动程序来访问数据库,这样可以方便的访问数据。

weixin_62466605的博客 2509

用AI+Playwright实现零代码UI自动化测试:以登录页面为例的实战指南

本文详细介绍了如何利用AI与Playwright结合实现零代码UI自动化测试,特别以登录页面为例进行实战演示。通过自然语言描述生成测试脚本,大幅降低技术门槛,提升测试效率,并支持跨浏览器验证。适合非技术人员快速上手专业级自动化测试。

weixin_28842269的博客 403

保姆级教程:用Unidbg搞定阿里系App的x-sign和长x-mini-wua签名(附完整Java代码)

本文详细介绍了如何使用Unidbg框架模拟执行阿里系App的原生库,生成关键的x-sign和x-mini-wua签名参数。通过完整的Java代码示例和实战技巧,帮助开发者高效实现签名算法,适用于安全研究、数据分析和第三方应用开发场景。

weixin_29243279的博客 489

JDBC编程(数据库编程)

一.驱动加载和核心原理 二.PreparedStatement 三.ResultSet 四.事务处理 五.程序分层开发

ZangLing的博客 1627

CentOS 7 Linux yum 安装 Docker,解决 Docker 镜像拉取失败问题

本文详细介绍了在 CentOS 7 系统上通过 yum 安装 Docker 的完整流程,包括卸载旧版本、配置阿里云国内镜像源、安装 Docker 及其组件、设置日志限制等关键步骤。针对国内用户常见的 Docker 镜像拉取失败问题,提供了两种实用解决方案:配置镜像加速器或通过代理访问官方源,并附带验证方法与排错指南,帮助读者高效完成 Docker 环境部署。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1718

Java数据库编程:从JDBC到JPA

本文介绍了Java数据库编程的基础知识,包括JDBC和JPA两大核心技术。JDBC部分详细讲解了连接数据库、执行SQL语句和处理结果集的基本操作,通过示例代码展示了如何使用DriverManager、PreparedStatement和ResultSet实现数据库交互。JPA部分阐述了实体、持久化上下文和事务等核心概念,并提供了实体类定义的代码示例。文章还对比了两种技术的适用场景,指出JDBC适合需要直接操作SQL的情况,而JPA提供了更高层次的抽象。最后简要提及了数据库连接池的使用,为Java数据库编程提

今天比昨天更努力一点! 4753

Calibre 3Dstack --每日一个命令day27【overlap】(3-27)

本文介绍了Calibre3Dstack中overlap命令的使用方法。该命令用于检查两个已放置层之间的重叠量是否符合要求,支持设置检查名称、层类型、堆叠范围、检查方向等参数。关键参数包括:-constraint指定重叠约束条件,-exact控制百分比精度,-by_area切换为面积检查模式,-intersection报告相交区域。检查结果可通过RVE选项定制显示方式,适用于3D堆叠设计中的层间重叠验证场景。

u013620135的博客 112

手把手教你学Simulink--基于Simulink的移相全桥DC-DC变换器仿真建模

特点高效性:通过实现零电压开关(ZVS)减少开关损耗。电气隔离:使用变压器提供输入输出间的电气隔离。适用于中高功率应用:如服务器电源、工业电源等。挑战控制复杂度:精确控制相位差以实现软开关。元件选择:合适的电感、电容值对于性能至关重要。动态响应:快速响应负载变化,保持稳定的输出电压。首先明确要模拟的任务内容。设计一个能够支持特定输入输出电压比的PSFB变换器。根据工作频率和谐振元件值确定合适的电路参数。实现有效的控制策略来维持输出电压稳定,并实现软开关。

MHD0815的博客 520

Java的数据库编程:JDBC

JDBC

qq_774952435的博客 1962

AUTOSAR MCAL开发及EB Tresos工具使用总结

在基于AutoSar CP架构开发MCAL时,会使用到EB tresos工具。本文主要对MCAL开发及EB tresos工具使用进行总结,仅作为自学使用,以方便后续查漏补缺。

liuxu324的博客 2629

【MySQL】Java的数据库编程:JDBC编程

五部曲:创建数据库连接Connection -> 创建操作命令Statement -> 使用操作命令来执行SQL ->处理结果集ResultSet - > 释放资源。🌰栗子:查询studnet表中的学号为X的学生信息:实现过程:(1)文件1:a01_Connection.java文件(其中,关闭资源的时候要按照从后往前的顺序)/** 构建数据源——>获取连接——>写sql语句——>执行sql语句并获取结果——>释放数据源*///定义一个数据源对象//数据库的用户名。

qq_48479056的博客 594

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【MySQL】从连接数据库开始:JDBC 编程入门指南

DriverManger是JDBC中的一个核心类,位于java.sql包下,他负责管理数据库驱动程序,并为客户端程序提供获取数据库连接的方法。它就像一个“驱动管理器”,协调不同数据库驱动与应用程序之间的交互。是Java数据库连接(JDBC)的一个接口,用于获取数据库连接,可方便数据库连接资源,实现连接池等高级功能。

2301_80543957的博客 2014

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL数据库(Java的数据库编程:JDBC)

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问.说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

yanxiang3306 8606

Java的数据库编程:JDBC

JDBC的中文意思是JDBC是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由java.sql.*,javax.sql.*包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

cj13106811623的博客 1224

【 Java的数据库编程:JDBC】

了解JDBC的概念及作用,掌握它的工作流程,并掌握JDBC中的几个常用的接口和类等

qq_64317046的博客 1157

Java JDBC编程:连接数据库的桥梁

JDBC是Java语言中支持与数据库进行交互操作的一套API,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。通过JDBC,开发者可以执行SQL语句、检索结果、管理数据库连接等,而无需关心底层数据库的具体实现细节。JDBC作为Java语言中连接数据库的桥梁,为开发者提供了一套标准且强大的API来执行SQL语句、管理数据库连接等。

184

Java的JDBC编程

JDBC到底是什么? JDBC(Java Database Connectivity),java数据库连接。JDBC是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,用于执行SQL语句的Java API。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java 开发人员操作数据库提供了一个标准的API,各种不同类型的数据库都有相应的实现,本文中的代码都是针对MySQL数据库实现的。 JDBC工作原理 JDBC 为多种关系数据库提供了统一访问方式,.

weixin_49329785的博客 1555

Java:JDBC数据库编程

1w字吐血整理,Java网络编程(JDBC介绍,配置数据库驱动,连接数据库,执行SQL语句,ResultSet接口,PreparedStatement接口)。包括:基础知识,底层原理,代码复现,面试难点,刁钻问题解答。

燕双嘤 3855

【MySQL】JDBC编程 (Java的数据库编程:JDBC 导入驱动包 MySQL Connector Java 编写JDBC代码 插入操作 查询操作)

是java发布程序的典型方式,java是通过.java源文件编译成.class文件,jvm来解释执行.class,所以我们要想发布一个程序给别人使用,只需要把程序.class文件拷贝给对方让他用他的jvm来解释执行就可以了.但是每个.java都一 一对应一个.class,如果代码里.java非常多,我们就把一大堆的.class打成压缩包(类似于.rar .zip),我们这块的压缩包就是.jar.此时把jar拷贝给对方,对方就可以使用jvm来运行了.(1)mysql的官方网站获取.

m0_68800221的博客 2684

Java学习手册:JDBC 数据库编程

JDBC(Java Database Connectivity)是 Java 编程语言中用于执行 SQL 语句的 API,它为 Java 应用程序与各种关系型数据库之间的交互提供了标准化的接口和方法。通过 JDBC,开发人员可以方便地执行数据库操作,实现数据的存储、查询、更新和删除等功能。JDBC 技术为 Java 开发人员提供了一种灵活且高效的方式来与关系型数据库进行交互,是 JavaWeb 开发中实现数据持久化的重要手段。

佩奇的技术笔记 896
上一篇: 九度OJ题目1081:递推数列解题报告
下一篇: Android学习视频Mars-Android开发视频教程(全集)
It_BeeCoder
博客等级 码龄10年 967粉丝 238原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值