需求是Web请求,生成序列号(每天初始化0),是在Controller的方法上加synchronized,还是在Model的方法上加synchronized,能排队执行。
Model里调用Mysql 函数,直接返回计算后的序列号。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
SerialGen sg = new SerialGen(); sg.save(); int result = sg.getInt("n");上面的代码会生成一个 instert into 语句自动创建一条数据库记录,并且立即返回其主键 n 的值,而这个 n 被设置为自增。由于次生成时每个线程都是调用的 insert into,这些线程拿到的 n 值也是本线程创建的,正好可以满足你的需求。 4:做个定时器,每天早上零点零分零秒自动清零一次,第二天又会从零开始,记得要用这个 sql:Db.update("truncate table serial_gen") 才可以
SerialGen sg = new SerialGen(); sg.save(); int result = sg.getInt("n");上面的代码会生成一个 instert into 语句自动创建一条数据库记录,并且立即返回其主键 n 的值,而这个 n 被设置为自增。由于次生成时每个线程都是调用的 insert into,这些线程拿到的 n 值也是本线程创建的,正好可以满足你的需求。 4:做个定时器,每天早上零点零分零秒自动清零一次,第二天又会从零开始,记得要用这个 sql:Db.update("truncate table serial_gen") 才可以 ######多谢,之前是控制不住,才使用mysql自定义函数控制。这是个好方法######
SerialGen sg = new SerialGen(); sg.save(); int result = sg.getInt("n");上面的代码会生成一个 instert into 语句自动创建一条数据库记录,并且立即返回其主键 n 的值,而这个 n 被设置为自增。由于次生成时每个线程都是调用的 insert into,这些线程拿到的 n 值也是本线程创建的,正好可以满足你的需求。 4:做个定时器,每天早上零点零分零秒自动清零一次,第二天又会从零开始,记得要用这个 sql:Db.update("truncate table serial_gen") 才可以 Controller renderJson不是 static,如何解??? ######renderJson不是static的 由this调用