大神们,请教 查询字段怎么参数化啊?除了拼接sql,有其他方法吗?
ALTERproc[dbo].[Proc_TopArticles](@countint,@fieldsvarchar(200),@Column_Idvarchar(20)...
ALTER proc [dbo].[Proc_TopArticles] (
@count int,
@fields varchar(200),
@Column_Id varchar(20)
)
as
begin
select top( @count) @fields from articles
where Column_Id = @Column_Id AND State=1 ORDER BY UpdateDate
end 展开
@count int,
@fields varchar(200),
@Column_Id varchar(20)
)
as
begin
select top( @count) @fields from articles
where Column_Id = @Column_Id AND State=1 ORDER BY UpdateDate
end 展开
1个回答
展开全部
遇到复杂的拼接建议不要使用Statemente而是使用 java.sql.PreparedStatement这个类 也就是使用占位符来表示举个例子
String sql=“SELECT * FROM table1 where name= and age= ”;
PreparedStatement pstmt=conn.prepareStatement(sql) ;
pstmt.setString(1,"张三"); //设置sql里面的第一个 String类型
pstmt.setInt(2,23); //设置 sql里面的第二个 ?号,int类型
pstmt.executeQuery();
使用占位符可以减少sql语句发生错误,把需要用变量代替的地方都是用 ? ,然后 setXXX就可以 从 1 开始计数 注意类型
String sql=“SELECT * FROM table1 where name= and age= ”;
PreparedStatement pstmt=conn.prepareStatement(sql) ;
pstmt.setString(1,"张三"); //设置sql里面的第一个 String类型
pstmt.setInt(2,23); //设置 sql里面的第二个 ?号,int类型
pstmt.executeQuery();
使用占位符可以减少sql语句发生错误,把需要用变量代替的地方都是用 ? ,然后 setXXX就可以 从 1 开始计数 注意类型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询