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,后者的效率会比前者高很多。具体区别 可以参看其他资料,建议多使用后者。如还有疑问可以再联系
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,后者的效率会比前者高很多。具体区别 可以参看其他资料,建议多使用后者。如还有疑问可以再联系
相关文章推荐
- Java编程中,子类可以用用这种方法给继承父类的成员变量赋值么?
- java JDBC编程——从属性文件读取信息,并创建到数据库的连接
- 【java编程】反射之更改成员变量
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 使用Java实现数据库编程-Lesson5-事务、视图、索引、备份和恢复
- Java 中,为什么在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?
- JDBC 与JAVA 数据库编程
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- Java、XML与数据库编程实践(二)
- java 读取数据库中文信息,为何在jsp页面中出现乱码
- java 编程excel文件导入数据库
- Java数据库简单增删查改通用类,还可以优化否?
- JAVA利用JDBC对数据库的操作和JDBC编程之事务处理
- Java读取properties文件,得到数据库的配置信息
- Java数据库编程(执行数据库删除操作)
- JAVA数据库编程(JDBC技术)-入门笔记
- Java基础(极客)——07、Java常用技巧-Java配制环境变量与常用技巧(大多都是概述,可以看视频)
- 现在才知道Java中变量声明可以放在赋值后面。。。
- android GPS JAVA应用程序编程-------获得经纬度,卫星信息等
- Java数据库编程中的几个常用技巧