pal*_*lto 6 java sql hibernate
我需要实现一个搜索,用户可以输入*作为外卡.他们正在搜索的数据库是SQL服务器.我只想用*替换*:
userInput = userInput.replace('*', '%');
Run Code Online (Sandbox Code Playgroud)
我担心,因为我"手工"这样做,我可能会引入一些错误或安全漏洞.你觉得这样做有什么问题吗?有没有图书馆可以帮我这么做?
我使用Hibernate作为ORM映射器和Criteria API来创建查询,如果它有助于答案.
这正是我们公司所做的。我们有两种产品,一种在代码中使用简单的替换,如您的示例。另一种存储过程非常繁重,它是在“搜索”存储过程本身中完成的。
不管怎样,我们还没有遇到任何安全问题或用户对系统的投诉。
只是为了显示存储过程布局,但正如您所说的使用 ORM 可能是多余的:
CREATE PROC [dbo].[p_aaa]
@username nvarchar(100) = 'dbo',
@rows int = 0,
@name nvarchar(100) = '%'
AS
SET @name = REPLACE(@name, '*', '%')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |