您的位置:首页 > 数据库

java数据库编程 可以用变量更改数据库信息

2012-10-20 13:58 211 查看
有两种方式,一种是用

statement:int a;(当然 实际跑的时候是有值的)

String sql = "insert in to table1(num) values(" + a + ")";

stmt = con.createStatement();

stmt.executeUpdate(sql);只需要把参数连接在字符串中。

如果是String的参数:String username;(当然 实际跑的时候是有值的)

String sql = "insert in to table1(username) values("'+ username +'")";

stmt = con.createStatement();

stmt.executeUpdate(sql);

sql变量的正确写法是:

1,)String sql = "insert in to table1(username) values()";

2)光标移到最好括号中,输入两个双引号

3)再将光标移到刚才输入的双引中间输入两个单引号(如果是非字符串变量,不需要输入单引号)

4)再将光标移到刚才输入的单引号中间,输入两个加号

5)将光标移到刚才输入的加号中间,输入变量名。

(良好的编程习惯会在加号的左右两边各打上一个空格再输入变量)以上完整的试一次 就会清楚了 看着好像很复杂。

这样写,这个sql变量 看起来不来舒服所以下面介绍另一种方法:

使用PreparedStatement:

int a;(使用时需要初始化)

String sql = "insert into table(num) valuse(?)";

PreparedStatement pstat = conn.prepareStatement(sql);

pstat.setInt(1, a);

pstat.executeUpdate();

与statement不同的是,在获得preparedstatement的时候需要传递一个预处理的sql语句,里面的参数用问号(?)代替。

然后紧接着用它的setXXX为这个问号赋值,如上述的setInt();

他需要两个参数,第一个是指为第几个问号赋值,第二个是要赋的值。如果需要传递的是String 就需要调用setString而不是setInt了。

上述两种方法都是可以接受多参数的,适当变更就行了。

另外一点要说的是,用preparedstatement除了方便阅读外,还有很多好处,我这里指出两点我体会深的:

1,sql语句方便调试,在java中定义的那个sql字段,直接可以在数据库中执行,这样很方便检测我们的sql语句有没有书写错误。

2,后者的效率会比前者高很多。具体区别 可以参看其他资料,建议多使用后者。如还有疑问可以再联系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息