java中创建两表之间的触发器详解

创建一个触发器实现借书自增数量/还书自减

在 books 被借阅属性 islend 更新时在 lender 表中同时更新借书数量 amount,其中islend 属性更新后保存的是借阅人 lender 的 id,lender 中 id 是主键,books 表中 islend 是外键,连接这两张表。

两个数据库表结构在下方给出,目前写的触发器如下:

CREATE TRIGGER `lendBook`
AFTER UPDATE ON `books`
FOR EACH ROW
 BEGIN
UPDATE lender
SET amount = ifnull(lender.amount ,0)+1
WHERE id = new.isLend;
 INSERT INTO test (v1) VALUES (new.isLend);
END

lender 表结构如下:

books 表结构如下:

测试语句

try {
ps = conn.prepareStatement(sql);
ps.setString(1, "1");
ps.setString(2, String.valueOf(bookId));
ps.setString(3, String.valueOf(id));
row = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}

可以正常实现借/还书功能,触发器的功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java正则表达式验证固定电话号码符合性

    下面给大家介绍Java正则表达式验证固定电话号码符合性,具体代码如下所示: /** * 验证固定电话号码的合法性 * @author jy */ package phone; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PhoneTest { public static boolean isPhone(String str) { Pattern p1 = null, p2 = null;

  • Java使用正则表达式验证手机号和电话号码的方法

    一个朋友需要,所以写了这两个,话不多说,看代码 中国电信号段 133.149.153.173.177.180.181.189.199 中国联通号段 130.131.132.145.155.156.166.175.176.185.186 中国移动号段 134(0-8).135.136.137.138.139.147.150.151.152.157.158.159.178.182.183.184.187.188.198 其他号段 14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147

  • javafx tableview鼠标触发更新属性详解

    本文实例为大家分享了javafx tableview鼠标触发更新属性,供大家参考,具体内容如下 public class HoverCell extends TableCell<Person, String> { public HoverCell(StringProperty hoverProperty) { setOnMouseEntered(e -> hoverProperty.set(getItem())); setOnMouseExited(e -> hoverProper

  • 深入浅解正则表达式在Java中的使用

    介绍 •正则表达式一般用于字符串匹配, 字符串查找和字符串替换. 别小看它的作用, 在工作学习中灵活运用正则表达式处理字符串能够大幅度提高效率, 编程的快乐来得就是这么简单. •一下子给出一堆匹配的规则可能会让人恐惧, 下面将由浅入深讲解正则表达式的使用. 从简单例子认识正则表达式匹配 •先上代码 public class Demo1 { public static void main(String[] args) { //字符串abc匹配正则表达式"...", 其中".&q

  • Java实现的计时器【秒表】功能示例

    本文实例讲述了Java实现的计时器[秒表]功能.分享给大家供大家参考,具体如下: 应用名称:Java计时器 用到的知识:Java GUI编程 开发环境:win8+eclipse+jdk1.8 功能说明:计时功能,精确到1毫秒,可暂停. 效果图: 源代码: import javax.swing.*; import java.awt.HeadlessException; import java.awt.BorderLayout; import java.awt.FlowLayout; import

  • java中表示一个文件的File类型详解

    前言 从本篇文章开始,我们将开启对 Java IO 系统的学习,本质上就是对文件的读写操作,听上去简单,其实并不容易.Java 的 IO 系统一直在完善和改进,设计了大量的类,也只有理解了这些类型被设计出来的意义以及各自的应用场景,才能提升文件 IO 的理解. 那么,第一步就是要解决如何表示一个文件的问题,Java 世界中「万物皆对象」,如何将一个实际磁盘文件或目录对应到一个 Java 对象则是我们首要的问题. Java 中使用 File 来抽象一个文件,无论是普通文件或是目录,都可对应于一个

  • java中创建两表之间的触发器详解

    创建一个触发器实现借书自增数量/还书自减 在 books 被借阅属性 islend 更新时在 lender 表中同时更新借书数量 amount,其中islend 属性更新后保存的是借阅人 lender 的 id,lender 中 id 是主键,books 表中 islend 是外键,连接这两张表. 两个数据库表结构在下方给出,目前写的触发器如下: CREATE TRIGGER `lendBook` AFTER UPDATE ON `books` FOR EACH ROW BEGIN UPDATE

  • JAVA中list,set,数组之间的转换详解

    JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.collections.CollectionUtils; String[] strArray = {"aaa", "bbb", "ccc"};    List strList = new ArrayList();    Set strSet = new Ha

  • Java中的重要核心知识点之继承详解

    目录 一.继承 1.概念 2.语法 3.父类成员的访问 (1)子类中访问父类成员变量 (2)子类中访问父类成员方法 4.super关键字 5.子类构造方法 6.super和this 7.代码块执行顺序 8.父类成员在子类中的可见性 9.继承方式 10.final关键字 11.组合 一.继承 1.概念 继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加新功能,这样产生新的类,称派生类.继承呈现了面向对象程序设计的

  • java中String StringBuffer和StringBuilder的区别详解

    目录 从声明定义上来谈 从结构上来谈 从线程安全来谈 总结 从声明定义上来谈 只有String 可以 直接声明创建 而 StringBuffer 与 StringBuilder 必须去new对象 这是因为只有String会在这种声明方式下去字符串常量池创建,其他则没有 StringBuffer stf = new StringBuffer("abc"); StringBuilder stb = new StringBuilder("abc"); StringBuff

  • 基于java中的PO VO DAO BO POJO(详解)

    一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的ava对象. 最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合PO中应该不包含任何对数据库的操作. 二.VO:value object值对象.通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象可以和表对应也可以不这根据业务的需要 三.DAO:data access object 数据访问对象,此对象用于访问数据库.通常和PO结合使用,DAO中包含了各种

  • Java中JDBC实现动态查询的实例详解

    一 概述 1.什么是动态查询? 从多个查询条件中随机选择若干个组合成一个DQL语句进行查询,这一过程叫做动态查询. 2.动态查询的难点 可供选择的查询条件多,组合情况多,难以一一列举. 3.最终查询语句的构成 一旦用户向查询条件中输入数据,该查询条件就成为最终条件的一部分. 二 基本原理 1.SQL基本框架 无论查询条件如何,查询字段与数据库是固定不变的,这些固定不变的内容构成SQL语句的基本框架,如 select column... from table. 2.StringBuilder形成D

  • Java中常见死锁与活锁的实例详解

    本文介绍了Java中常见死锁与活锁的实例详解,分享给大家,具体如下: 顺序死锁:过度加锁,导致由于执行顺序的原因,互相持有对方正在等待的锁 资源死锁:多个线程在相同的资源上发生等待 由于调用顺序而产生的死锁 public class Test { Object leftLock = new Object(); Object rightLock = new Object(); public static void main(String[] args) { final Test test = ne

  • Java中Validated、Valid 、Validator区别详解

    目录 1. 结论先出 JSR 380 Valid VS Validated 不同点? Validator 2. @Valid和​​​​​​​@Validated 注解 3. 例子 4.使用@Valid嵌套校验 5. 组合使用@Valid和@Validated 进行集合校验 6. 自定义校验 自定义约束注解 工作原理 结论 参考链接: 1. 结论先出 Valid VS Validated 相同点 都可以对方法和参数进行校验 @Valid和@Validated 两种注释都会导致应用标准Bean验证.

  • Go Java算法之Excel表列名称示例详解

    目录 Excel表列名称 方法一:数学(Java) 方法一:数学(Go) Excel表列名称 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称. 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入:columnNumber = 1 输出:"A" 示例 2: 输入:columnNumber = 28 输出:"AB"

  • java 中Excel转shape file的实例详解

    java  中Excel转shape file的实例详解 概述: 本文讲述如何结合geotools和POI实现Excel到shp的转换,再结合前文shp到geojson数据的转换,即可实现用户上传excel数据并在web端的展示功能. 截图: 原始Excel文件 运行耗时 运行结果 代码: package com.lzugis.geotools; import com.lzugis.CommonMethod; import com.vividsolutions.jts.geom.Coordina

随机推荐