JDBC封装更新操作

JDBC

JDBC全称:Java DataBase Connectivity;是由SUN公司提供的一套通用的Java连接数据的标准(接口),这套接口用于屏蔽数据库之间的差异(方言),使得Java程序员可以专注于处理数据而不需要考虑数据库之间的差异;

使用JDBC的步骤

1. 加载数据库驱动
2. 获取数据库连接对象
3. 获取处理SQL语句的对象
4. 执行SQL语句
5. 处理结果
6. 关闭资源

案例:

// 1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");

// 2.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");

// 3.获取处理sql语句的对象
PreparedStatement stat = conn.PrepareStatement("insert into user(username,password,nickname) values('softeem','soft123','张三')");

// 4.执行sql(当执行结果为resultset(执行select操作时)时返回值为true,其他任何时候都是false)
boolean f = stat.executeUpdate();

// 5.处理结果
System.out.println("执行结果:"+f);

// 6.关闭资源
stat.close();
conn.close();

看完这段代码,相信很多都已经很晕了,毕竟是有点记不住;细心的人会发现,上图中很多代码是不变的,是固定的写法的,因此这样就可以封装起来,需要的时候就去调用就可以了,这样就简单明了;

JDBC封装

定义常量

定义常量,方便后序的修改方便

/**驱动类路径*/
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
/**URL地址*/
private static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
/**登录数据库服务器的账号*/
private static final String USER = "root";
/**登录数据库服务器的密码*/
private static final String PASSWORD = "123456";

获取数据库连接对象

数据库连接对象的语句基本没有需要更改的地方,所以我们可以将其封装起来

/**
 * 返回数据库连接对象
 * @return
 */
public static Connection getConn(){
    try {
        return DriverManager.getConnection(URL,USER,PASSWORD);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

关闭资源

当我们操作完成时需要关闭资源,这些方法也是固定的,所以我们可以将其封装起来

/**
 * 关闭资源
 * @param rs
 * @param stat
 * @param conn
 */
public static void close(ResultSet rs, Statement stat,Connection conn){
    try {
        if (rs != null){
            rs.close();
        }
        if (stat != null){
            stat.close();
        }
        if (conn != null){
            conn.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

封装通用的更新操作

更新,删除和修改的操作非常类似,所以我们可以将其一起封装,只需要从外部输入SQL语句和SQL语句需要的参数即可。
具体的实现思维写在了代码的注释上

/**
 * 封装通用的更新操作(即通过该方法实现对弈任意数据表的insert,update,delete操作)
 * @param sql      需要执行的SQL语句
 * @param params   执行SQL语句时需要传递进去参数
 * @return         执行结果
 */
public static boolean exeUpdate(String sql,Object... params){
	//获取连接对象
    Connection conn = getConn();
    PreparedStatement ps = null;
    try {
    	//获取预编译对象
        ps = conn.prepareStatement(sql);
        //执行参数赋值操作
        if(Objects.nonNull(params)){
        	//循环将所有的参数赋值
            for (int i = 0; i < params.length; i++) {
                ps.setObject(i + 1, params[i]);
            }
        }
        //执行更新
        return ps.executeUpdate() > 0;
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
    	//关闭资源
        DBUtils.close(null,ps,conn);
    }
    return false;
}

这样,我们的更新操作就封装好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值