📜  JDBC-示例,示例代码(1)

📅  最后修改于: 2023-12-03 14:43:05.609000             🧑  作者: Mango

JDBC示例代码

JDBC(Java Database Connectivity)是Java编程语言中访问数据库的通用API。JDBC为开发人员提供了一种标准的方法,用于连接任何SQL兼容的数据库。在本文中,我们将介绍如何使用JDBC连接到MySQL数据库,并执行基本的CRUD操作。

步骤
1. 下载MySQL驱动程序

你可以从MySQL官网下载最新版本的JDBC驱动程序。下载完成后,你需要把mysql-connector-java-x.x.x.jar文件添加到你的Java项目中。

2. 连接MySQL数据库

以下是连接MySQL数据库的示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JdbcExample {
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";

   // 数据库的用户名与密码
   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
      Connection conn = null;
      try{
         // 注册 JDBC 驱动
         Class.forName(JDBC_DRIVER);

         // 打开链接
         System.out.println("连接数据库...");
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // 执行查询
         System.out.println("实例化Statement对象...");
         Statement stmt = conn.createStatement();
         String sql;
         sql = "SELECT id, name, age FROM users";
         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.print("ID: " + id);
            System.out.print(", 姓名: " + name);
            System.out.print(", 年龄: " + age);
            System.out.println();
         }
         // 完成后关闭
         rs.close();
         stmt.close();
         conn.close();
      }catch(SQLException se){
         // 处理 JDBC 错误
         se.printStackTrace();
      }catch(Exception e){
         // 处理 Class.forName 错误
         e.printStackTrace();
      }finally{
         // 关闭资源
         try{
            if(stmt!=null) stmt.close();
         }catch(SQLException se2){
         }try{
            if(conn!=null) conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }
      }
      System.out.println("Goodbye!");
   }
}
3. 执行CRUD操作

你可以使用以下示例代码执行基本CEUD操作:

创建表

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcExample {
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";

   // 数据库的用户名与密码
   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
      Connection conn = null;
      Statement stmt = null;
      try{
         // 注册 JDBC 驱动
         Class.forName(JDBC_DRIVER);

         // 打开链接
         System.out.println("连接数据库...");
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // 执行查询
         System.out.println("实例化Statement对象...");
         stmt = conn.createStatement();
         String sql;
         sql = "CREATE TABLE users " +
               "(id INTEGER not NULL, " +
               " name VARCHAR(255), " +
               " age INTEGER, " +
               " PRIMARY KEY ( id ))";

         stmt.executeUpdate(sql);
         System.out.println("创建表成功...");
      }catch(SQLException se){
         // 处理 JDBC 错误
         se.printStackTrace();
      }catch(Exception e){
         // 处理 Class.forName 错误
         e.printStackTrace();
      }finally{
         // 关闭资源
         try{
            if(stmt!=null) stmt.close();
         }catch(SQLException se2){
         }try{
            if(conn!=null) conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }
      }
      System.out.println("Goodbye!");
   }
}

插入数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcExample {
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";

   // 数据库的用户名与密码
   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
      Connection conn = null;
      Statement stmt = null;
      try{
         // 注册 JDBC 驱动
         Class.forName(JDBC_DRIVER);

         // 打开链接
         System.out.println("连接数据库...");
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // 执行查询
         System.out.println("实例化Statement对象...");
         stmt = conn.createStatement();
         String sql;
         sql = "INSERT INTO users (id, name, age) VALUES (1, '张三', 20)";
         stmt.executeUpdate(sql);
         System.out.println("插入数据成功...");
      }catch(SQLException se){
         // 处理 JDBC 错误
         se.printStackTrace();
      }catch(Exception e){
         // 处理 Class.forName 错误
         e.printStackTrace();
      }finally{
         // 关闭资源
         try{
            if(stmt!=null) stmt.close();
         }catch(SQLException se2){
         }try{
            if(conn!=null) conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }
      }
      System.out.println("Goodbye!");
   }
}

更新数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcExample {
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";

   // 数据库的用户名与密码
   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
      Connection conn = null;
      Statement stmt = null;
      try{
         // 注册 JDBC 驱动
         Class.forName(JDBC_DRIVER);

         // 打开链接
         System.out.println("连接数据库...");
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // 执行查询
         System.out.println("实例化Statement对象...");
         stmt = conn.createStatement();
         String sql;
         sql = "UPDATE users SET age = 21 WHERE id = 1";
         stmt.executeUpdate(sql);
         System.out.println("更新数据成功...");
      }catch(SQLException se){
         // 处理 JDBC 错误
         se.printStackTrace();
      }catch(Exception e){
         // 处理 Class.forName 错误
         e.printStackTrace();
      }finally{
         // 关闭资源
         try{
            if(stmt!=null) stmt.close();
         }catch(SQLException se2){
         }try{
            if(conn!=null) conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }
      }
      System.out.println("Goodbye!");
   }
}

删除数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcExample {
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";

   // 数据库的用户名与密码
   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
      Connection conn = null;
      Statement stmt = null;
      try{
         // 注册 JDBC 驱动
         Class.forName(JDBC_DRIVER);

         // 打开链接
         System.out.println("连接数据库...");
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // 执行查询
         System.out.println("实例化Statement对象...");
         stmt = conn.createStatement();
         String sql;
         sql = "DELETE FROM users WHERE id = 1";
         stmt.executeUpdate(sql);
         System.out.println("删除数据成功...");
      }catch(SQLException se){
         // 处理 JDBC 错误
         se.printStackTrace();
      }catch(Exception e){
         // 处理 Class.forName 错误
         e.printStackTrace();
      }finally{
         // 关闭资源
         try{
            if(stmt!=null) stmt.close();
         }catch(SQLException se2){
         }try{
            if(conn!=null) conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }
      }
      System.out.println("Goodbye!");
   }
}
结论

以上是连接到MySQL数据库并执行基本CRUD操作的示例代码。JDBC是Java中使用最广泛的数据库API之一,它可以用于连接任何SQL兼容的数据库并执行基本操作。在实际开发中,你可以使用JDBC来构建更复杂的数据访问逻辑。