当前位置: 首页 > wzjs >正文

用word 做网站宿州集团网站建设

用word 做网站,宿州集团网站建设,建设银行官网站查询,四川纵川建设机械有限公司网站一、JDBC 简介 JDBC(Java DataBase Connectivity)即 Java 数据库连接,是 Java 语言用于操作数据库的一套 API。它为多种关系数据库提供了统一的访问方式,允许 Java 程序与不同类型的数据库(如 MySQL、Oracle、SQL Ser…

一、JDBC 简介

JDBC(Java DataBase Connectivity)即 Java 数据库连接,是 Java 语言用于操作数据库的一套 API。它为多种关系数据库提供了统一的访问方式,允许 Java 程序与不同类型的数据库(如 MySQL、Oracle、SQL Server 等)进行连接和交互,实现对数据库的增删改查等操作。

二、JDBC 原理

(一)JDBC 架构

JDBC 采用了两层模型:

  • 应用程序层:即我们编写的 Java 程序,通过 JDBC API 来访问数据库。
  • 数据库驱动层:由数据库厂商提供的驱动程序,遵循 JDBC 规范,负责与具体的数据库进行通信。不同数据库有各自对应的驱动,如 MySQL 的驱动是com.mysql.cj.jdbc.Driver ,Oracle 也有其对应的驱动。

(二)核心接口和类

  1. DriverManager(驱动管理器)
    • 注册驱动:它的作用之一是让 JDBC 知道要使用哪个数据库驱动。例如,通过Class.forName("com.mysql.cj.jdbc.Driver") 加载 MySQL 驱动类,驱动类在加载时会自动将自己注册到DriverManager中。在早期也可以使用DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()) 来注册,但前者是更常用的方式。
    • 获取 Connection:负责获取与数据库的连接。当成功获取到Connection对象时,意味着 Java 程序与数据库建立了连接。它会根据传入的数据库 URL、用户名和密码等信息来尝试连接数据库。
  2. Connection(连接)
    • 代表 Java 程序与数据库之间的连接通道,与数据库的所有通讯都通过这个对象展开。
    • 最为重要的一个方法是用来获取Statement对象或PreparedStatement对象,通过这些对象来向数据库发送 SQL 语句。
  3. Statement(语句)
    • 用于向数据库发送 SQL 语句。可以执行不带参数的简单 SQL 语句,即静态 SQL 语句。例如,使用Statement执行查询语句:Statement st = conn.createStatement(); ResultSet rs = st.executeQuery("select * from table_name"); 。
    • 缺点是对于需要频繁执行且只有参数不同的 SQL 语句,性能较差,因为每次都要重新解析 SQL 语句。
  4. PreparedStatement(预编译语句)
    • Statement的子接口,它可以对 SQL 语句进行预编译,将 SQL 语句模板和参数分开。SQL 语句模板中使用占位符? 来代替实际参数。例如:String sql = "select * from user where name=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, "zhangsan"); 。
    • 优势在于提高了性能,因为预编译后的 SQL 语句在数据库端会被缓存,后续执行相同结构的 SQL 语句时,只需传入不同参数即可,无需重新解析 SQL;同时也增强了安全性,防止 SQL 注入攻击,因为参数是经过特殊处理后传入的。
  5. ResultSet(结果集)
    • 表示数据库执行查询操作后返回的结果集,是一个二维的表格形式,有行有列。
    • 提供了一系列方法来操作结果集,如boolean next() 方法用于将 “行光标” 移动到下一行,并返回移动后的行是否存在;XXX getXXX(int col) 方法用于获取当前行指定列上的值,列数从 1 开始计数 。

三、JDBC 编写步骤

(一)注册驱动

通过Class.forName("数据库驱动类名") 来加载数据库驱动类,使其自动注册到DriverManager中。例如,对于 MySQL 8.0 及以上版本,使用Class.forName("com.mysql.cj.jdbc.Driver") ;如果是 MySQL 5 及之前版本,则使用com.mysql.jdbc.Driver 。这一步告诉 Java 程序即将要连接的是哪个品牌的数据库。

(二)获取连接

使用DriverManager.getConnection(url, username, password) 方法获取与数据库的连接。其中:

  • url:是数据库的统一资源定位符,用于指定要连接的数据库位置和相关信息。格式由三部分组成,以 MySQL 为例,jdbc:mysql://IP地址:端口号/数据库名 ,如jdbc:mysql://localhost:3306/mydb ,表示连接本地 3306 端口上的名为mydb的数据库。还可以添加一些参数,如jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8 ,用于指定字符集等。
  • username:登录数据库的用户名。
  • password:登录数据库的密码。

(三)获取数据库操作对象

根据不同需求获取StatementPreparedStatement对象:

  • 获取 Statement 对象:使用Connection对象的createStatement() 方法,如Statement stmt = conn.createStatement(); ,适用于执行简单的、不常变动的 SQL 语句。
  • 获取 PreparedStatement 对象:使用Connection对象的prepareStatement(String sql) 方法,传入 SQL 语句模板,如PreparedStatement pstmt = conn.prepareStatement("select * from user where id = ?"); ,适用于需要预编译、动态传入参数的场景。

(四)执行 SQL 语句

  1. 对于增删改操作:使用StatementexecuteUpdate(String sql) 方法或PreparedStatementexecuteUpdate() 方法(PreparedStatement因为已经预编译绑定了 SQL 语句,所以调用时不需要再传入 SQL 语句)。该方法返回一个整数,表示受影响的行数。例如:

java

String sql = "insert into user (name, age) values ('张三', 25)";
int affectedRows = stmt.executeUpdate(sql);

  1. 对于查询操作:使用StatementexecuteQuery(String sql) 方法或PreparedStatementexecuteQuery() 方法,返回一个ResultSet对象。例如:

java

String sql = "select * from user";
ResultSet rs = stmt.executeQuery(sql);

(五)处理查询结果(仅针对查询操作)

当执行查询操作得到ResultSet后,通过ResultSet的方法来遍历和获取数据。例如:

java

while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");System.out.println("ID: " + id + ", Name: " + name);
}

这里通过next() 方法移动行光标,然后使用getIntgetString等方法根据列名或列索引获取对应的值。

(六)释放资源

使用完ConnectionStatement(或PreparedStatement )、ResultSet等资源后,要及时关闭,以释放数据库服务器资源和避免内存泄漏。一般在finally块中进行关闭操作,如下:

java

finally {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt != null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}
}

以下是一个完整的 JDBC 操作 MySQL 数据库进行查询的示例代码:

java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class JDBCExample {public static void main(String[] args) {Connection conn = null;Statement stmt = null;ResultSet rs = null;try {// 1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");// 2. 获取连接String url = "jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8";String username = "root";String password = "123456";conn = DriverManager.getConnection(url, username, password);// 3. 获取数据库操作对象stmt = conn.createStatement();// 4. 执行SQL语句String sql = "select * from user";rs = stmt.executeQuery(sql);// 5. 处理查询结果while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");System.out.println("ID: " + id + ", Name: " + name);}} catch (Exception e) {e.printStackTrace();} finally {// 6. 释放资源if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stmt != null) {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}
}

通过网盘分享的文件:03_黑马程序员_JDBC_分析jdbc程序的编写步骤和原理.rar
链接: https://pan.baidu.com/s/1R0tf7XlurHOx-SlSq2ySFw 


文章转载自:

http://DDzxRdu1.yrycb.cn
http://8mgKeUc1.yrycb.cn
http://tKiJCMTf.yrycb.cn
http://z0KzaXCs.yrycb.cn
http://ZXyAjDdw.yrycb.cn
http://2e7V3gWW.yrycb.cn
http://FtsiniEw.yrycb.cn
http://Dd618Tc2.yrycb.cn
http://2bnfmWxU.yrycb.cn
http://WSAyhS5w.yrycb.cn
http://3sgkp7nr.yrycb.cn
http://GEWMZqQk.yrycb.cn
http://3DlQbtJZ.yrycb.cn
http://7dFl8FgM.yrycb.cn
http://7W3QUlmX.yrycb.cn
http://Y3zVfDGy.yrycb.cn
http://bC8eOMAV.yrycb.cn
http://MqZ0Agk3.yrycb.cn
http://RtogWPJM.yrycb.cn
http://vqR85zx5.yrycb.cn
http://AFtyxHv7.yrycb.cn
http://zoKHzspc.yrycb.cn
http://6vwRVcSn.yrycb.cn
http://hDTy4a3R.yrycb.cn
http://dJjRBOyW.yrycb.cn
http://zau6q54g.yrycb.cn
http://W5OsrmmT.yrycb.cn
http://qPOnsAzi.yrycb.cn
http://7tIVr26N.yrycb.cn
http://dXYU96uW.yrycb.cn
http://www.dtcms.com/wzjs/714448.html

相关文章:

  • 怎样免费给自己的公司做网站万网的网站建设是什么
  • 那位学生网站开发网站怎么做舆情监测
  • 重庆网站平台如何推广做推送网站
  • 珠海自助建站软件网站空间 .de
  • 网站排名优化策划深圳厂房设计
  • 网站用什么格式的图片格式辽宁建设工程信息网中标公示几天
  • 河北省住房和城乡建设厅官方网站廉政网站管理制度建设
  • 网站建设 400电话 广告语特种设备作业人员证查询
  • 做电力的系统集成公司网站域名申请好了 怎么做网站
  • 全球访问量最大的网站排名沈阳网站建设报价
  • html5手机网站制作软件wordpress站
  • 给设计网站做图网站怎样做超链接
  • 天水建设网站vs做网站不用建项目
  • 网站注册用户推广哪个购物平台最好
  • 网站建设的整体流程重庆最便宜的网站建设公司
  • 网站改版设计注意事项如何用照片做模板下载网站
  • cms网站访问人数电脑网站加速器
  • 肇庆企业做网站十大社交电商购物平台
  • 上海电子网站建设个人开个装修小公司
  • 合肥网站制作企业网页制作步骤
  • asp.net网站开发上seo排名赚
  • dz网站建设教程单页网站seo优化
  • 凡科模板建站建设局查询网站首页
  • 关于学校网站建设申请报告哪些网站可以做淘宝客
  • 山东建设管理局网站平面设计公司电话
  • 长春做网站的电话汕头网络推广seo渠道
  • 主题资源网站建设作业备案网站ip
  • 网络小说网站建设google网页版入口
  • 建设文明网站包括上海做网站设计的公司
  • 关于旅游网站建设的摘要温州企业建站系统