Java Web学习二:JDBC连接MySQL数据库

JDBC连接MySQL数据库

一:JDBC及其使用原理

jdbc(Java DataBase Connectivity)顾名思义就是Java数据库连接,通过使用Java语言来操作数据库的工具。

我们知道,我们在console控制台操作数据库时使用的是SQL语句,其实同理JDBC就是通过java语言来向数据库发送SQL语句。

原理分析:JDBC
厂商每个来提供遵循我们这种语法或者说的英文规范的驱动(驱动程序)驱动是一种API。

API:应用程序编程接口,及应用程序编程的接口,一些预先定义的函数,无需访问到源码,直接调用。

所以,我们直接调用驱动程序来与我们的数据库连接。

JDBC是接口,而JDBC驱动才是真正的接口的实现,没有驱动就无法完成数据库的连接。

二:JDBC核心的接口,以及代码步骤

代码步骤:(注意导入mysql数据库的驱动jar包)

1.注册驱动:的Class.forName( “com.mysql.jdbc.driver”);

使用JDBC时注册驱动时,不使用DriverManager.registerDriver(new com.mysql.jdbc.Driver());因为java.sql.Driver这个接口码虽然可以注册驱动,但是出现硬编码,而且其实注册了两次,com.mysql.jdbc.Driver中其实静态板块会创建本类的对象。

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

静态 {

尝试 {

java.lang.DriverManager中registerDriver(new Driver());

} catch(SQLException E){

抛出 新的 RuntimeException(“无法注册驱动程序!”);

}

}

}

2.获取连接器(连接),如果可以获得,则表示已经连接上。

通过DriverManger的的getConnection方法来获取

Connection conn = DriverManger.getConnection(url,name,password);

url:标准资源的地址,也可以说是独有的网址。
它是用来找到要连接数据库“网址”,这里url =“jdbc:mysql:// 8080 / ”数据库名称“?useUnicode = true&characterEncoding = utf8”;

名与密码为数据库名和密码。

3.编写我们要执行的SQL语句

例如:String sql =“select * from tbl_user where uname =?and upassword =?”;

这里采用?占位符,是为了防止SQL攻击,加密了文档。

4.预处理创建对象来执行SQL语句。

对象采用PreparedStatement (PreparedStatement是Statement的子接口,你可以使用PreparedStatement来替换语句)。

//执行SQL语句PreparedStatement pstmt = conn.prepareStatement(sql);

5.设置占位符参数

pstmt.setString(1,username);

pstmt.setString(2,密码);

6.执行具体操作

(1)executeUpdate(sql)是执行更新操作,比如添加,更新(修改),删除的。

返回一个int类型的值用行接收,表示数据修改的次数,所以行> 0,则表示执行

否则没有执行。

executeQuery(sql)是执行查询的。返回一个结果集,我们用ResultSet rs对象来接收。则

ResultSet rs = pstmt.executeQuery();

rs.next()方法类似于IO流,调用rs对象的next()方法把“行光标”向下移动一行。用一个循环即可执行完所有数据的查询。

7.关闭

前面提到的IO流,其实JDBC类似于IO流。与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。

及先关闭我们的ResultSet rs对象,然后是PreparedStatement pstmt对象,最后是连接连接器。

rs.close();

stmt.close();

con.close();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 连接 MySQL 数据库需要使用 JDBC 驱动,以下是一个简单的示例代码: ```java import java.sql.*; public class Main { public static void main(String[] args) { Connection conn = null; try { // 注册 JDBC 驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 打开连接 System.out.println("连接数据库..."); String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); // 执行查询 System.out.println("实例化Statement对象..."); Statement stmt = conn.createStatement(); String sql = "SELECT id, name, age FROM student"; ResultSet rs = stmt.executeQuery(sql); // 处理结果集 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id:" + id + ", name:" + name + ", age:" + age); } // 关闭资源 rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch (Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); } finally { // 关闭资源 try { if (conn != null) { conn.close(); } } catch (SQLException se) { se.printStackTrace(); } } System.out.println("Goodbye!"); } } ``` 注意:在实际开发中,为了避免 SQL 注入等安全问题,应使用 PreparedStatement 来代替 Statement。同时,为了提高性能,可以使用连接池来管理数据库连接。 ### 回答2: JDBCJava Database Connectivity)是一种用于Java编程语言的API,它允许Java程序与各种数据库进行交互。MySQL是一种开放源代码的关系型数据库管理系统,常用于Web应用程序开发中。 要使用JDBC连接MySQL数据库,首先需要下载和安装MySQLJDBC驱动程序。可以从MySQL官方网站下载适合自己使用的JDBC驱动程序版本。下载完成后,需要将驱动程序的JAR文件添加到Java项目的类路径中,以便能够在代码中使用。 在编写Java代码时,需要使用JavaJDBC API进行MySQL数据库连接和操作。以下是一个简单的示例代码,用于连接MySQL数据库、执行查询并获取结果: ```java import java.sql.*; public class JDBCExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; String username = "your_username"; String password = "your_password"; try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 Connection connection = DriverManager.getConnection(url, username, password); // 创建查询语句 String query = "SELECT * FROM table_name"; // 执行查询 Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query); // 处理查询结果 while (resultSet.next()) { String column1 = resultSet.getString(1); String column2 = resultSet.getString(2); // ... System.out.println(column1 + " - " + column2); } // 关闭数据库连接 resultSet.close(); statement.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在代码中,需要替换`url`、`username`和`password`为MySQL数据库的相应连接信息。`url`用于指定数据库的地址和端口号,`username`和`password`用于指定数据库的登录凭据。 通过JDBC连接MySQL数据库后,可以使用Java的SQL语句执行各种数据库操作,如查询、插入、更新和删除等。 ### 回答3: JDBCJava语言访问数据库的标准接口,它提供了与数据库进行连接、执行SQL语句、处理结果集等功能。JDBC连接MySQL数据库的过程包括以下几个步骤: 1. 加载数据库驱动:首先需要加载MySQL数据库JDBC驱动程序,可以通过Class.forName()方法加载特定的驱动类,如"com.mysql.jdbc.Driver"。 2. 建立数据库连接:使用DriverManager.getConnection()方法获取数据库连接对象,传入数据库的URL、用户名和密码等参数。URL中包括了连接数据库类型、地址、端口等信息。 3. 创建执行SQL的Statement对象:通过连接对象的createStatement()方法创建一个Statement对象,用于执行SQL语句。 4. 执行SQL语句:使用Statement对象的executeQuery()方法执行SQL查询语句,返回一个ResultSet对象,或者使用executeUpdate()方法执行更新操作等。 5. 处理结果集:对于查询语句,可以通过ResultSet对象的next()方法遍历结果集并获取每一条记录的数据。 6. 关闭数据库连接:使用连接对象的close()方法关闭数据库连接,释放资源。 下面是一个简单的示例代码,演示了如何使用JDBC连接MySQL数据库并执行一个查询操作: ```java import java.sql.*; public class JDBCTest { public static void main(String[] args) { try { // 加载MySQL数据库JDBC驱动 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "123456"; Connection connection = DriverManager.getConnection(url, username, password); // 创建Statement对象 Statement statement = connection.createStatement(); // 执行SQL查询语句 String query = "SELECT * FROM students"; ResultSet resultSet = statement.executeQuery(query); // 遍历结果集并处理数据 while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); int age = resultSet.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } // 关闭数据库连接和资源 resultSet.close(); statement.close(); connection.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } ``` 以上是JDBC连接MySQL数据库的基本步骤和示例代码,具体的操作可以根据实际需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值