采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,您的密码加密是在数据库完成的。那么当我写了一个java程序,需要校对用户密码是否输入正确(登录功能),或者新建用户的时候。我该怎么办? 我是否应该在自己的DAO层,写出带有AES_ENCRYPT()的sql,然后封装成数据层的方法自己调用。 那么将意味着跟用户表相关的操作,我没法利用插件,要自己完成DAO层相关部分的开发。
你说的插件指的是前端页面么?为什么我选择数据库AES加密密码呢?因为用Java去实现AES算法有BUG,windows和Linux系统的AES算法在实现上不兼容。也就是说你要用Java判断系统,然后再选择算法。所以用数据库去实现AES,兼容性更好。
我的意思是,java的连接数据库取数,比如像mybatis-generator,jpa等java插件,可以不需要自己写sql就可以直接将数据库的数据映射称对象。但是如果使用老师您这种数据库加密,就不能直接使用他们的插件,要自己写sql在java的代码里了
不要指望所有的操作都可以qbc,这是不可能的。当初hibernate的qbc走到死胡同,不得不弄一个hql语言,所以该用sql还是要用sql的。我的团队里面禁止用qbc,因为要操作数据库集群,qbc生成的sql语句多数没法用,而且效率不高
明白,就是优秀的持久层,应该自己写。哪怕是select这种,因为分页插件做不到这种优化对吧。 但是如果是很小的系统就可以先用插件qbc进行敏捷开发,一切皆看实际业务对不对?
登录后可查看更多问答,登录/注册
解锁“新零售”业务让数据库实战能力再上一层楼
1.4k 7
1.6k 4
1.2k 1
1.2k 22
1.2k 12