如何用java中的变量替换硬编码的数字 - mysql代码

时间:2009-12-21 07:48:53

标签: java mysql

如何在使用jdbc访问mysql数据库的java语句中用硬编码替换变量。使用executeQuery(query)

执行查询

这是java语句

String query = "select * from TableA where num = '1233' ";

我需要在此声明中将此1233替换为变量。

任何帮助表示赞赏

此致

2 个答案:

答案 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());
}