编写SQL语句, 尤其是要插入多个Filed时, 是一件非常BT的事情, 至少让我很不爽, 使用preparedstatement可以使代码变得更优雅一些, 虽然会有些长, 但会更条理, 而且preparedstatement更高于SQL语句 - 相对来说不太容易随着数据库版本改变而变动. 另外preparedstatement效率更高, 安全性更好
下面是恐怖的SQL:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
这里是使用PreparedStatement后的语句:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
插入一行
-
声明 PreparedStatement。
PreparedStatement prepStmt;
-
将一条 SQL 语句指派给 PreparedStatement 对象。
prepStmt = conn.prepareStatement( "INSERT INTO MyTable(MyColumn) values (?)");
-
为该语句指派输入参数值。
以下代码显示一个字符串参数。
String newValue; // assign value prepStmt.setStringParameter(1, newValue);
-
执行该语句。
返回值表示受该语句影响的行数。
long rowsInserted = prepStmt.executeStatement();
-
如果禁用了 [自动提交],请提交更改。
conn.commit();
更新一行
-
声明 PreparedStatement。
PreparedStatement prepStmt;
-
将一条语句指派给 PreparedStatement 对象。
prepStmt = conn.prepareStatement( "UPDATE MyTable SET MyColumn1 = ? WHERE MyColumn2 = ?");
-
为该语句指派输入参数值。
String newValue; String oldValue; // assign values prepStmt.setStringParameter( 1, newValue ); prepStmt.setStringParameter( 2, oldValue );
-
执行该语句。
long rowsUpdated = prepStmt.executeStatement();
-
如果禁用了 [自动提交],请提交更改。
conn.commit();
删除一行
-
声明 PreparedStatement。
PreparedStatement prepStmt;
-
将一条语句指派给 PreparedStatement 对象。
prepStmt = conn.prepareStatement( "DELETE FROM MyTable WHERE MyColumn = ?");
-
为该语句指派输入参数值。
String deleteValue; prepStmt.setStringParameter(1, deleteValue);
-
执行该语句。
long rowsDeleted = prepStmt.executeStatement();
-
如果禁用了 [自动提交],请提交更改。
conn.commit();
转自:http://liguoliang.com/2009/02/773/
和http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/zh/html/uljvzh9/00000034.htm