数据绑定可以让数据库替你完成sql中特殊字符的操作!大家知道在许多的程序中经常有替换单引号,回车等等的方法,其实看了它就可以让数据可替你作了!呵呵!其他数据库只需修改string sdbdriver 和 string sconnstr 即可(补充:临时表的操作不同数据库会有差别)。当然这只是个小例子。
import java.sql.*;
public class dbprepare
{
dbprepare()
{
}
public void doperpare()
{
string sdbdriver = "com.informix.jdbc.ifxdriver";
string sconnstr = "jdbc:informix-sqli://10.100.56.25:8001/db0:informixserver=dbserver;db_locale=zh_cn.57357;client_locale=zh_cn.57357;user=root;password=";
connection cn = null;
try
{
//private string dbtype="oracle";
class.forname(sdbdriver);
cn = drivermanager.getconnection(sconnstr);
resultset rs = null;
statement stmt = cn.createstatement();
string sql = "begin work;";
stmt.executeupdate(sql);
sql = "create temp table";
sql += " tmp_sub_ne (int_id int,object_class int,zh_label varchar(40,20));";
stmt.executeupdate(sql);
sql = "insert into tmp_sub_ne(int_id,object_class,zh_label)values(?,?,?);";
preparedstatement prestmt = cn.preparestatement(sql);
int int_id = 1;
int object_class = 2;
string zh_label = "it is a test";
prestmt.setint(1, int_id);
prestmt.setint(2, object_class);
prestmt.setstring(3, zh_label);
prestmt.executeupdate();
sql = "commit";
stmt.executeupdate(sql);
sql = "select * from tmp_sub_ne";
rs = stmt.executequery(sql);
while (rs.next())
{
system.out.println("int_id=" + rs.getint("int_id") + ",object_class=" + rs.getint("object_class") + ",zh_label=" + rs.getstring("zh_label"));
}
}
catch (exception e)
{
system.err.println("conndb(): " + e.getmessage());
}
}
public static void main(string[] args)
{
dbprepare db1 = new dbprepare();
db1.doperpare();
}
}
