本文目录导读:
实验目的
本次实验旨在通过Java数据库编程技术,掌握Java数据库连接、操作和管理的相关知识,提高在实际项目中运用Java数据库的能力,通过实验,使学生能够熟练使用Java数据库连接(JDBC)技术进行数据库的连接、查询、更新、删除等操作,并学会使用Java数据库连接池等技术提高数据库访问效率。
实验环境
1、操作系统:Windows 10
2、开发工具:Eclipse IDE
3、数据库:MySQL 5.7
图片来源于网络,如有侵权联系删除
4、Java版本:Java 1.8
1、数据库连接
在Java中,使用JDBC连接数据库,首先需要导入MySQL JDBC驱动包,以下是一个简单的数据库连接示例:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnect { public static void main(String[] args) { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "root"); System.out.println("数据库连接成功!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
2、数据库查询
查询数据库是Java数据库编程中的基本操作,以下是一个简单的查询示例:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DatabaseQuery { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "root"); String sql = "SELECT * FROM users WHERE username = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); rs = pstmt.executeQuery(); while (rs.next()) { String username = rs.getString("username"); String password = rs.getString("password"); System.out.println("用户名:" + username + ",密码:" + password); } } catch (SQLException e) { e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
3、数据库更新
图片来源于网络,如有侵权联系删除
更新数据库数据也是Java数据库编程中的常见操作,以下是一个简单的更新示例:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class DatabaseUpdate { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "root"); String sql = "UPDATE users SET password = ? WHERE username = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "newpassword"); pstmt.setString(2, "user1"); int result = pstmt.executeUpdate(); if (result > 0) { System.out.println("更新成功!"); } else { System.out.println("更新失败!"); } } catch (SQLException e) { e.printStackTrace(); } finally { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
4、数据库删除
删除数据库数据同样是Java数据库编程中的基本操作,以下是一个简单的删除示例:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class DatabaseDelete { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "root"); String sql = "DELETE FROM users WHERE username = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); int result = pstmt.executeUpdate(); if (result > 0) { System.out.println("删除成功!"); } else { System.out.println("删除失败!"); } } catch (SQLException e) { e.printStackTrace(); } finally { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
5、数据库连接池
在实际项目中,为了提高数据库访问效率,通常会使用数据库连接池技术,以下是一个使用Apache Commons DBCP连接池的示例:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.commons.dbcp2.BasicDataSource; public class DatabaseConnectionPool { private static BasicDataSource dataSource; static { dataSource = new BasicDataSource(); dataSource.setUrl("jdbc:mysql://localhost:3306/mydatabase"); dataSource.setUsername("root"); dataSource.setPassword("root"); dataSource.setMinIdle(5); dataSource.setMaxIdle(10); dataSource.setMaxOpenPreparedStatements(100); } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DatabaseConnectionPool.getConnection(); String sql = "SELECT * FROM users WHERE username = ?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, "user1"); rs = pstmt.executeQuery(); while (rs.next()) { String username = rs.getString("username"); String password = rs.getString("password"); System.out.println("用户名:" + username + ",密码:" + password); } } catch (SQLException e) { e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
本次实验通过Java数据库编程技术,学习了数据库连接、查询、更新、删除等基本操作,以及数据库连接池技术的应用,通过实验,我们掌握了以下知识点:
图片来源于网络,如有侵权联系删除
1、使用JDBC连接数据库,实现数据库的连接、查询、更新、删除等操作。
2、使用数据库连接池技术提高数据库访问效率。
3、熟悉Java数据库编程中的异常处理。
本次实验提高了我们的实际操作能力,为今后在项目中运用Java数据库编程技术打下了坚实的基础,在今后的学习和工作中,我们将继续深入探索Java数据库编程技术,提高自己的编程水平。
标签: #java数据库编辑的实验报告
评论列表