触发器和JDBC

168 阅读3分钟

MySQL触发器是数据库中用于自动执行一系列操作的数据库对象

通常与表的特定事件(如插入、更新、删除)相关联。 以下是一些关于MySQL触发器的知识点:

  1. 触发器类型
  2. 根据触发事件的不同,可以将触发器分为INSERT触发器、UPDATE触发器和DELETE触发器。
  3. 触发时机
  4. 触发器可以设置为在触发事件发生之前(BEFORE)或之后(AFTER)执行。
  5. 触发事件
  6. 触发器基于特定的DML事件激活,包括INSERT、UPDATE和DELETE操作。
  7. 作用域
  8. 触发器关联于特定的表,当对该表执行相应的DML操作时,触发器被激活。
  9. 语法结构
  10. 创建触发器的基本语法包含触发器名、触发时机、触发事件、表名、FOR EACH ROW以及触发器主体。
  11. 限制
  12. 每个表对每个事件每次只允许有一个触发器,且触发器不能调用将数据直接返回客户端的存储程序。
  13. 事务
  14. 在触发器内不能显示或隐式地开始或结束事务,如使用START TRANSACTION, COMMIT或ROLLBACK语句。
  15. NEW和OLD关键字
  16. 这两个关键字用于访问触发器所在表中发生变化的数据行内容。在INSERT型触发器中使用NEW,UPDATE型触发器中同时使用NEW和OLD,DELETE型触发器中使用OLD。
  17. 设计考虑
  18. 由于触发器是基于行触发的,过于复杂的触发器或过多的触发器可能会影响数据的插入、修改或删除,因此在设计时需要谨慎考虑。

JDBC(Java Database Connectivity)是一套面向对象的应用程序接口,它允许Java程序通过SQL语句与数据库进行交互。以下是一些关于JDBC的知识点:

  1. JDBC的作用

  2. JDBC是Java程序访问数据库的标准接口,它为多种关系型数据库提供了统一的访问方式。

  3. JDBC连接数据库的步骤

    • 加载驱动:通过Class.forName()方法加载数据库驱动。
    • 创建连接:使用DriverManager.getConnection()方法建立与数据库的连接。
    • 执行SQL并返回执行结果:可以通过StatementPreparedStatement对象来执行SQL语句,并通过ResultSet获取执行结果。
    • 处理结果:对ResultSet结果集进行处理,获取所需的数据。
    • 关闭资源:关闭StatementConnection对象以释放资源。
  4. JDBC中的ResultSet

  5. ResultSet是一个结果集,它存放了执行SQL查询后返回的数据,可以理解为数据库中的数据表在Java程序中的表现形式。

  6. PreparedStatement的优点

  • 预编译的SQL语句:PreparedStatement可以使用预编译的SQL语句,提高效率。
  • SQL缓存:PreparedStatement可以利用SQL缓存区,提高执行效率。
  • 防止SQL注入:PreparedStatement可以有效防止SQL注入攻击。
  1. 事务处理
  2. 在JDBC中,事务处理是通过commit()rollback()方法来实现的。可以通过设置setAutoCommit(false)来禁止自动提交,然后手动控制事务的提交或回滚以保持数据的一致性。
  3. 连接池的作用
  4. 为了提高性能,减少频繁创建和关闭数据库连接所带来的开销,通常会使用连接池技术来管理数据库连接。连接池可以重复使用连接,当使用完连接后,调用close()方法不会真正关闭连接,而是将连接归还给连接池,以供再次使用。
  5. JDBC驱动器:每个数据库都有自己的JDBC驱动器,这是一个jar包,通常由数据库厂商提供。Java程序需要引入对应的数据库驱动jar包才能正常访问数据库服务器。