好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

java中链接数据库的具体操作以及pstmt.setObject(i+1, objects[i])这

dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class BaseDao { private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ; private String url = "jdbc:sqlserver://localhost:1433;databaseName=EasyBuy" ; private String user = "sa" ; private String password = "sa" ; /** * 获取数据库连接对象 * * @return */ public Connection getcConnection() { Connection conn = null ; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 关闭数据库连接对象 * @param rs * @param pstmt * @param conn */ public void closeAll(ResultSet rs,PreparedStatement pstmt,Connection conn){ try { if (rs!= null ){ rs.close(); } if (pstmt!= null ){ pstmt.close(); } if (conn!= null ){ conn.close(); } } catch (Exception e) { e.printStackTrace(); } } /** * 增删改方法 * @param sql * @param objects * @return */ public int executeUpdate(String sql,Object[] objects){ int num=0 ; PreparedStatement pstmt = null ; Connection conn = getcConnection(); try { pstmt = conn.prepareStatement(sql); for ( int i = 0; i < objects.length; i++ ) { pstmt.setObject(i +1 ,objects[i]); } num = pstmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { closeAll( null , pstmt, conn); } return num; } }

上述是java连接数据库的具体步骤,关闭数据库的话,肯定是先关查询结果rs,再关闭pstmt,再关闭conn而打开反之~~,这里的三个对像应该是创建连接,创建查询,和查询结果。
要想清楚是先有连接,再创建查询,才会返回结果。

对于pstmt.setObject(i+1, objects[i]);这行代码,因为在方法引用了可变参数(为什么要引用可变参数,是因为前面是字符串,后面是数据库语句,类型不匹配),所谓可变参数就是 :适用于参数个数不确定,类型不确定的情况,java把可变参数当做数组处理,但不是数组,功能比数组强,可以变成没有参数,或者为空。而这行代码就是将数据库语句赋值给参数,因为参数是从1开始的,故要写成i+1.

java中链接数据库的具体操作以及pstmt.setObject(i+1, objects[i])这行代码的意思

标签:

查看更多关于java中链接数据库的具体操作以及pstmt.setObject(i+1, objects[i])这的详细内容...

  阅读:29次