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

package 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.

时间: 2024-10-25 07:37:59

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

Java连接MySQL数据库及简单操作代码

1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: "我的电脑"-> "属性" -> "高级" -> "环境变量",在系统变量那里编辑clas

在java中对数据库进行增删改查(转)

1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 package com.oracle.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.S

Java中有关剪切板的操作

Java提供两种类型的剪贴板:系统的和本地的. 本地剪贴板只在当前虚拟机中有效.Java允许多个本地剪贴板同时存在,可以方便地通过剪贴板的名称来进行存取访问. 系统剪贴板与同等操作系统直接关连,允许应用程序与运行在该操作系统下的其它程序之间进行信息交换. 在进一步深入之前,先看看与剪贴板相同的java类,这些类主要包含在java.awt.datatransfer包中,主要有以下几种: Clipboard类: 此类实现一种使用剪切/复制/粘贴操作传输数据的机制. ClipboardOwner接口:

java中的Properties类的操作

java中有个比较重要的类:Properties类,该类主要用于读取java的配置文件.每种语言都自己所支持的配置文件.java中的配置常为*.perperties文件,文件格式为文本格式,内容格式为“健=值”对格式,文本注释信息可用#注释. Properties继承Hashtable 它提供了几个主要的方法: 1. getProperty ( String key),用指定的键在此属性列表中搜索属性.也就是通过参数 key ,得到 key 所对应的 value. 2. load ( Input

混合框架中Oracle数据库的还原处理操作

在较早期的随笔<Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作>粗略介绍了Oracle数据库的备份还原操作,本文想从开发框架的基础上介绍Oracle数据库的脚本或者还原操作. 我们在Winform开发框架.混合式开发框架.Web开发框架等各种开发框架,底层都是支持多种数据库的,如MS SQLServer.Oracle.MySQL.SQLite.PostgreSQL等等,如下图所示. 其中SQLServer支持最为常用,而且也是最为方便备份还原的操作,而Oracle数据库这

java中你所不知道的CAS操作

1.CAS是什么 Compare and Swap(比较并操作),由处理器架构支持,语义是如果当前值V和旧值A相同,则将当前值修改为B,如果不相同则不修改.CAS操作采用的是乐观锁技术,当多线程同时修改某个变量时只有一个成功,其他线程会失败当是不会被挂起,会被告知失败并重试.2.CAS操作和synchronized有什么区别呢 synchronized关键字采用悲观锁技术,线程独享锁,其他线程会被挂起知道锁被释放线程恢复,挂起和恢复会有很大的开销.3.java中CAS操作有哪些 java1.5之

java中文件的I/O操作

java中文件的读写操作 (一) (1)java中文件的字节转成字符读操作 FileInputStream fStream = new FileInputStream("test.txt");//此时为字节流 byte[] b = new byte[31];//定义字节数组存储从文件夹中读取的数据,大小最多31字节 fStream.read(b);//将test.txt的数据读到b中 String line = new String(b,"UTF-8");//将字节

JavaWeb中对数据库事务的操作

对于用JDBC操作数据库,使用Connection类的setAutoCommit(false)方法可以开启事务,用commit()方法可以提交事务. 由于三层架构的设计模型,事务的逻辑必须在service层,而dao层只是提供简单的CRUD操作,所以必须由service获取Connection并开启事务,将这个Connection传给dao层进行操作后,在service层将事务提交. 将Connection传给dao层可以在调用dao层方法(或构造函数)时以参数形式传入,但是这样不但会污染dao

java jdbc链接数据库

jdbc工作原理 -加载驱动 -创建语句对象 -执行sql语句 -处理结果集 -关闭连接 驱动加载方式 Class.forName("oracle.jdbc.driver.OracleDriver")(注:装载驱动类驱动类通过static块实现在DriverManager中的自动注册) Connection con=DriverManager.getCommection("地址参数","数据库账号","数据库密码");注:Co