莞城网站仿做,建立平台网站要多久,做幼儿英语的教案网站,安平网站建设引言 在现代应用开发中#xff0c;与数据库交互是不可或缺的一部分。Java提供了JDBC#xff08;Java Database Connectivity#xff09; API#xff0c;允许开发者方便地连接到数据库并执行SQL操作。本文将详细介绍Java数据库编程的基础知识#xff0c;包括JDBC的基本概念…引言 在现代应用开发中与数据库交互是不可或缺的一部分。Java提供了JDBCJava Database Connectivity API允许开发者方便地连接到数据库并执行SQL操作。本文将详细介绍Java数据库编程的基础知识包括JDBC的基本概念、数据库连接与操作、事务处理、以及使用ORM框架如Hibernate并通过表格进行总结和示范。 JDBC基础 什么是JDBC JDBC是Java数据库连接的标准API允许Java应用与数据库进行交互。JDBC API提供了与数据库连接、执行SQL查询、更新数据库和处理结果集的方法。 JDBC体系结构 组件描述DriverManager管理一组JDBC驱动程序实现数据库连接Driver用于与数据库通信的JDBC驱动程序Connection表示与特定数据库的连接用于执行SQL语句Statement用于执行SQL查询和更新ResultSet表示SQL查询的结果允许迭代和处理结果集SQLException指示数据库访问错误的异常类 JDBC四大步骤 加载并注册数据库驱动建立数据库连接创建并执行SQL语句处理结果与关闭资源 数据库连接与操作 连接数据库 使用DriverManager获取数据库连接。 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DatabaseConnection {public static void main(String[] args) {String url jdbc:mysql://localhost:3306/mydatabase;String username root;String password password;try (Connection connection DriverManager.getConnection(url, username, password)) {System.out.println(Database connected!);} catch (SQLException e) {e.printStackTrace();}}
}执行SQL查询 使用Statement执行SQL查询并处理结果集。 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class SelectQueryExample {public static void main(String[] args) {String url jdbc:mysql://localhost:3306/mydatabase;String username root;String password password;try (Connection connection DriverManager.getConnection(url, username, password);Statement statement connection.createStatement()) {String query SELECT * FROM users;ResultSet resultSet statement.executeQuery(query);while (resultSet.next()) {int id resultSet.getInt(id);String name resultSet.getString(name);String email resultSet.getString(email);System.out.println(ID: id , Name: name , Email: email);}} catch (SQLException e) {e.printStackTrace();}}
}更新数据库 使用PreparedStatement执行SQL更新操作。 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class UpdateQueryExample {public static void main(String[] args) {String url jdbc:mysql://localhost:3306/mydatabase;String username root;String password password;try (Connection connection DriverManager.getConnection(url, username, password);PreparedStatement statement connection.prepareStatement(UPDATE users SET email ? WHERE id ?)) {statement.setString(1, newemailexample.com);statement.setInt(2, 1);int rowsAffected statement.executeUpdate();System.out.println(Rows affected: rowsAffected);} catch (SQLException e) {e.printStackTrace();}}
}JDBC常用类与方法表 类/接口方法描述DriverManagergetConnection(String, String, String)获取数据库连接ConnectioncreateStatement()创建Statement实例prepareStatement(String)创建PreparedStatement实例close()关闭数据库连接StatementexecuteQuery(String)执行SQL查询并返回ResultSetexecuteUpdate(String)执行SQL更新并返回受影响行数close()关闭StatementPreparedStatementsetString(int, String)设置SQL参数值setInt(int, int)设置SQL参数值executeUpdate()执行SQL更新并返回受影响行数executeQuery()执行SQL查询并返回ResultSetclose()关闭PreparedStatementResultSetnext()移动到下一行数据getInt(String)获取当前行指定列的整数值getString(String)获取当前行指定列的字符串值close()关闭ResultSetSQLExceptiongetMessage()获取异常消息printStackTrace()打印异常堆栈轨迹 事务处理 在数据库操作中事务用于保证一组操作要么全部成功要么全部失败确保数据一致性。事务具有四个属性ACID原子性、一致性、隔离性和持久性。 使用事务 使用Connection对象的事务控制方法实现数据库事务。 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class TransactionExample {public static void main(String[] args) {String url jdbc:mysql://localhost:3306/mydatabase;String username root;String password password;try (Connection connection DriverManager.getConnection(url, username, password)) {connection.setAutoCommit(false); // 开始事务try (PreparedStatement pst1 connection.prepareStatement(UPDATE accounts SET balance balance - ? WHERE id ?);PreparedStatement pst2 connection.prepareStatement(UPDATE accounts SET balance balance ? WHERE id ?)) {pst1.setDouble(1, 100.0);pst1.setInt(2, 1);pst1.executeUpdate();pst2.setDouble(1, 100.0);pst2.setInt(2, 2);pst2.executeUpdate();connection.commit(); // 提交事务System.out.println(Transaction committed successfully.);} catch (SQLException e) {connection.rollback(); // 回滚事务System.out.println(Transaction rolled back.);e.printStackTrace();}} catch (SQLException e) {e.printStackTrace();}}
}事务控制方法表 方法描述示例setAutoCommit(boolean)设置是否自动提交事务connection.setAutoCommit(false);commit()提交事务connection.commit();rollback()回滚事务connection.rollback(); 使用ORM框架Hibernate Hibernate是Java的一个流行的ORM对象关系映射框架通过将Java对象映射到数据库表简化了数据库操作并提高了生产力。 Hibernate配置 Hibernate通过hibernate.cfg.xml文件进行配置包括数据库连接信息和映射文件。 示例hibernate.cfg.xml !DOCTYPE hibernate-configuration PUBLIC-//Hibernate/Hibernate Configuration DTD 3.0//ENhttp://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd
hibernate-configurationsession-factory!-- 数据库连接配置 --property namehibernate.connection.driver_classcom.mysql.cj.jdbc.Driver/propertyproperty namehibernate.connection.urljdbc:mysql://localhost:3306/mydatabase/propertyproperty namehibernate.connection.usernameroot/propertyproperty namehibernate.connection.passwordpassword/propertyproperty namehibernate.dialectorg.hibernate.dialect.MySQLDialect/property!-- 映射类 --mapping classcom.example.User//session-factory
/hibernate-configurationHibernate实体类 定义一个实体类并使用Hibernate注解进行配置。
示例User实体类 import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;Entity
Table(name users)
public class User {Idprivate int id;private String name;private String email;// Getters and setterspublic int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}
}使用Hibernate进行数据库操作 使用Hibernate的Session和Transaction进行CRUD创建、读取、更新、删除操作。 示例Hibernate CRUD操作 import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;public class HibernateCRUDExample {public static void main(String[] args) {// 创建SessionFactorySessionFactory sessionFactory new Configuration().configure().buildSessionFactory();// 创建Sessiontry (Session session sessionFactory.openSession()) {// 创建TransactionTransaction transaction session.beginTransaction();// 创建并保存一个新用户User user new User();user.setId(1);user.setName(John Doe);user.setEmail(john.doeexample.com);session.save(user);System.out.println(User saved!);// 提交事务transaction.commit();} catch (Exception e) {e.printStackTrace();} finally {// 关闭SessionFactorysessionFactory.close();}}
}Hibernate常用类与方法表 类/接口方法描述Configurationconfigure()加载Hibernate配置文件buildSessionFactory()创建SessionFactory实例SessionFactoryopenSession()打开一个新的Session实例close()关闭SessionFactory实例SessionbeginTransaction()开始一个新的事务save(Object)保存一个对象到数据库update(Object)更新数据库中的一个对象delete(Object)从数据库中删除一个对象get(Class, Serializable)根据标识符从数据库中获取一个对象Transactioncommit()提交事务rollback()回滚事务 表格总结 JDBC常用类与方法表 类/接口方法描述DriverManagergetConnection(String, String, String)获取数据库连接ConnectioncreateStatement()创建Statement实例prepareStatement(String)创建PreparedStatement实例close()关闭数据库连接StatementexecuteQuery(String)执行SQL查询并返回ResultSetexecuteUpdate(String)执行SQL更新并返回受影响行数close()关闭StatementPreparedStatementsetString(int, String)设置SQL参数值setInt(int, int)设置SQL参数值executeUpdate()执行SQL更新并返回受影响行数executeQuery()执行SQL查询并返回ResultSetclose()关闭PreparedStatementResultSetnext()移动到下一行数据getInt(String)获取当前行指定列的整数值getString(String)获取当前行指定列的字符串值close()关闭ResultSetSQLExceptiongetMessage()获取异常消息printStackTrace()打印异常堆栈轨迹 事务控制方法表 方法描述示例setAutoCommit(boolean)设置是否自动提交事务connection.setAutoCommit(false);commit()提交事务connection.commit();rollback()回滚事务connection.rollback(); Hibernate常用类与方法表 类/接口方法描述Configurationconfigure()加载Hibernate配置文件buildSessionFactory()创建SessionFactory实例SessionFactoryopenSession()打开一个新的Session实例close()关闭SessionFactory实例SessionbeginTransaction()开始一个新的事务save(Object)保存一个对象到数据库update(Object)更新数据库中的一个对象delete(Object)从数据库中删除一个对象get(Class, Serializable)根据标识符从数据库中获取一个对象Transactioncommit()提交事务rollback()回滚事务 总结 本文详细介绍了Java数据库编程的基础知识包括JDBC的基本概念、数据库连接与操作、事务处理、以及使用ORM框架如Hibernate。通过示例代码和表格总结帮助读者更好地理解和应用Java中的数据库编程提高数据操作的效率和安全性。