如何在使用jdbc访问mysql数据库的java语句中用硬编码替换变量。使用executeQuery(query)
执行查询这是java语句
String query = "select * from TableA where num = '1233' ";
我需要在此声明中将此1233替换为变量。
任何帮助表示赞赏
此致
答案 0 :(得分:7)
如果你可以使用预准备语句,你会更安全(没有SQL注入的风险):
Connection con = getMyConnection();
try {
PreparedStatement ps = con.prepareStatement("select * from TableA where num = ?");
try {
ps.setLong(1, number);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
//TODO
}
} finally {
ps.close();
}
} finally {
con.close();
}
答案 1 :(得分:0)
您使用的是Hibernate
吗?如果是,那么你应该如何去supose str是要替换的字符串/整数然后通过requestobject获取str并继续使用以下代码。
try {
SessionFactory sessionfactory = new Configuration().configure().buildSessionFactory();
session = sessionfactory.openSession();<br>
String query = "from Contact c where name='"+str+"'";
Query query1 = session.createQuery(query);<br>
list = query1.list();
System.out.println("Number of users in the system :- "+list.size());
for (Contact contact : list) {
System.out.println(contact.getId()+" : "+contact.getName()+" : "+ contact.getRole()+ " : "+ contact.isEnable());
}