JDBC:优化Java连接MySQL数据库(使用Java面对对象特性)

2022年4月1日星期五

上一篇文章讲解了一下JDBC连接MySQL数据库这篇文章将优化连接的代码主要使用了Java的面对对象特性。

不知道大家有没有发现连接和查询的代码块在程序运行中需要用到和多次而每次使用都要定义很多相同的属性调用或实现相同的方法或接口不过这样的操作会让代码产生冗余

为了解决这样的一个问题我们可以使用Java面对对象的思想定义一个公共的工具类供其他实现类调用

实现代码如下:

package cn.zjx;

import java.sql.*;

public class DBHelper(){//工具类
    //定义公共的静态属性
    private static String DRIVER = "com.mysql.jdbc.Driver";
    private static String URL = "jdbc:mysql://127.0.0.1:3306/StudentDB";
    private static String USER = "root";
    private static String PASS = "root";
    
    //定义要使用到到的对象
    Connection conn = null;//连接对象
    Statement st = null;//执行对象
    ResultSet rt = null;//处理结果集对象
    
    //通用连接方法
    public Connection getConnection(){
        try{
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(URL,USER,PASS);
        }catch(Exception e){
           e.printStackTrace();//打印堆栈信息
        }finally{
            return conn;//返回连接对象
        }
    }
    
    //通用关闭方法
    public void Close(Connection conn,Statement st,ResultSet rt){
        try{
            //判断传入对象是否为空 为空将不做关闭操作
            if(conn != null){
                conn.close();
            }
            if(st != null){
                st.close();
            }
            if(rt != null){
                rt.close();
            }
        }catch(Exception e){
             e.printStackTrace();//打印堆栈信息
        }
    }
    
    //通用增删改
    public boolean IDU(String Sql){//增删改操作只是传入的SQL语句不同
        boolean ifa = false;
        try{
            conn = getConnection();//调用同类的连接数据库方法   
                                                 
            st = conn.createStatement();//为执行sql语句方法赋值

            int num = st.executeUpdate(sql);//接收受影响的行数

            if(num>0){//对num进行判断 大于0说明操作成功
                ifa = true;
            }
        }catch(Exception e){
             e.printStackTrace();//打印堆栈信息
        }finally{
            return ifa;//返回boolean类型
        }
    }
    
    //通用查询
    public ResultSet Select(String sql){
        try{
            conn = getConnection();//调用同类的连接数据库方法   
                                                 
            st = conn.createStatement();//为执行sql语句方法赋值
            
            rs = st.executeQuery(sql);//用结果集接收
        }catch(Exception e){
             e.printStackTrace();//打印堆栈信息
        }finally{
            return rs;//返回出接收的结果集 然后处理
        }
    }
}

编写的是一个公共的Java连接数据库的工具类放在项目内需要调用时可以随时调用解决了代码冗余的问题减少了代码量提高了安全性可靠性和后期对程序的维护性

没有看过前一篇文章的同学可以先从前面开始

作者 胡桃の里                                                                                                    多多评论指出不足!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值