Java项目中如何实现数据的安全性,比如安全锁之类的,求代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java项目中如何实现数据的安全性,比如安全锁之类的,求代码相关的知识,希望对你有一定的参考价值。
您好,提问者:
1、重要信息进行加密操作。
2、地址栏尽量采用post提交方式。
3、如果涉及多线程的话,可以使用Synchronized锁。
下面例子:
public class Mainpublic static void main(String[] args)
new Thread(new Suo()).start();
new Thread(new Suo()).start();
//开启两个线程,加锁之后数据就不会出错
class Suo implements Runnable
private static int num = 100;
public synchronized void run()
while(true)
if(num==0)
break;
else
System.out.println(num--);
追问
没学过线程,领导让实现项目数据的安全性,可否详细描述讲解
追答这个很多知识,你可以找一些线程的书籍看下吧,安全性就是加锁或者休眠(wait())、唤醒(notify())
追问是否有现成的例子我好赶快完成工作
追答有例子也不是很符合你的,有这个时间看了自己写都出来了。
参考技术A 为数据加上一个字段,每次操作数据都会改变该字段的内容,并且操作时都会比对一下该字段的内容。追问求代码
追答没必要用多线程
没有代码
代码都是普通的数据库增删改查。
可能我说的不够清楚。
详细点:
在设计数据库中的表的时候,加上一个字段X,
每次取数据的时候把X的值取出来,
更新的时候比一下数据库中的X字段的内容是否和你取出来时一样。
如果一样,就更新这条数据,并把X的内容改变,比如设成X+1。
删除的时候也比对一下。
这是一种行级的排他锁。
java 锁的分类
java中为了解决多线程并发带来的线程安全问题,引入了锁机制。
java的加锁机制,可粗略分为两种:
1.内置锁。
什么是内置锁?把一个对象用作实现同步的锁,这样的锁就是内置锁。这是基于互斥的思想来实现的锁,即只有一个线程可以持有某一个锁。
显然这样做可以保证线程安全,但是性能方面不那么友好。比如直接将某个方法声明为synchronized。
2.重入锁。
重入锁是指当一个线程获取已经由它自己持有的锁,就会成功,这样意味着锁操作的粒度由 调用 降低到了 线程,如何实现这种机制呢,可以采用程序计数器法。
重入锁,降低了锁操作的粒度,大幅提升了性能。比如java并发包下的ReentrantLock 。当然它也可以解决线程死锁的问题。
以上是关于Java项目中如何实现数据的安全性,比如安全锁之类的,求代码的主要内容,如果未能解决你的问题,请参考以下文章