本文目录导读:
实验背景
随着互联网技术的飞速发展,数据库已经成为现代企业中不可或缺的一部分,Java作为一门流行的编程语言,与数据库的结合应用越来越广泛,本次实验旨在通过Java连接数据库,学习数据库的基本操作,提高编程能力。
图片来源于网络,如有侵权联系删除
实验目的
1、掌握Java连接数据库的方法;
2、熟悉数据库的基本操作,如增、删、改、查;
3、理解数据库连接池的概念及其应用;
4、提高编程能力,为以后的项目开发打下基础。
1、数据库连接
本次实验采用MySQL数据库,通过JDBC连接数据库,在项目中添加MySQL的JDBC驱动包,编写以下代码实现数据库连接:
图片来源于网络,如有侵权联系删除
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnect { public static Connection getConnection() throws ClassNotFoundException, SQLException { // 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 连接数据库 String url = "jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8"; String username = "用户名"; String password = "密码"; Connection conn = DriverManager.getConnection(url, username, password); return conn; } }
2、数据库操作
在连接数据库后,我们可以进行数据库的基本操作,以下是一些示例代码:
(1)插入数据
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class InsertData { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DatabaseConnect.getConnection(); String sql = "INSERT INTO 表名 (列1, 列2) VALUES (?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "值1"); pstmt.setString(2, "值2"); int result = pstmt.executeUpdate(); if (result > 0) { System.out.println("插入成功"); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { try { if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
(2)删除数据
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class DeleteData { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DatabaseConnect.getConnection(); String sql = "DELETE FROM 表名 WHERE 列1 = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "值"); int result = pstmt.executeUpdate(); if (result > 0) { System.out.println("删除成功"); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { try { if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
(3)修改数据
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class UpdateData { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DatabaseConnect.getConnection(); String sql = "UPDATE 表名 SET 列1 = ? WHERE 列2 = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "新值"); pstmt.setString(2, "旧值"); int result = pstmt.executeUpdate(); if (result > 0) { System.out.println("修改成功"); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { try { if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
(4)查询数据
图片来源于网络,如有侵权联系删除
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class QueryData { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DatabaseConnect.getConnection(); String sql = "SELECT * FROM 表名 WHERE 列1 = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "值"); rs = pstmt.executeQuery(); while (rs.next()) { String列1 = rs.getString("列1"); String列2 = rs.getString("列2"); System.out.println("列1:" + 列1 + ",列2:" + 列2); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
3、数据库连接池
在实际应用中,频繁地建立和关闭数据库连接会消耗大量资源,我们可以使用数据库连接池来管理数据库连接,以下是一个简单的数据库连接池实现:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.LinkedList; public class ConnectionPool { private static LinkedList<Connection> pool = new LinkedList<>(); private static String url = "jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF-8"; private static String username = "用户名"; private static String password = "密码"; public static Connection getConnection() throws ClassNotFoundException, SQLException { if (pool.isEmpty()) { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, username, password); pool.add(conn); return conn; } else { return pool.removeFirst(); } } public static void releaseConnection(Connection conn) { if (conn != null) { pool.add(conn); } } }
通过本次实验,我们掌握了Java连接数据库的方法,熟悉了数据库的基本操作,了解了数据库连接池的概念及其应用,在实验过程中,我们遇到了各种问题,如JDBC驱动包添加错误、SQL语句编写错误等,通过查阅资料和请教同学,我们逐步解决了这些问题,这次实验不仅提高了我们的编程能力,也让我们对数据库有了更深入的了解。
在今后的学习和工作中,我们将继续努力,不断提高自己的技术能力,为我国的信息化建设贡献自己的力量。
标签: #java数据库建立与连接实验心得
评论列表