【后端】JDBC工具类代码

JDBC工具类代码

一,注册驱动抽取
二,mysql数据库连接抽取
三,释放资源抽取
第一步:在SRC下创建配置文件,用来储存动态的数据库变量

url=jdbc:mysql://localhost:3306/db01?serverTimezone=UTC//换成你的数据链接
user=root//换成你的数据库账户
password=password//换成你的数据库密码
driver=com.mysql.cj.jdbc.Driver//换成你的数据库驱动

第二步:创建JAVA工具类

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

/**
 * JDBC工具类
 */
public class JDBC_utils {

    //创建静态变量 只有静态的变量才能被静态代码块和静态方法访问
    private static String url;
    private static String user;
    private static String password;
    private static String driver;


    /**
     * 使用静态代码块进行一次调用配置文件完成数据库连接
     */
    static {


        try { //创建properties集合类对象
            Properties pro = new Properties();
            //src下动态获取文件的方法--class类加载器
            ClassLoader classLoader = JDBC_utils.class.getClassLoader();
            URL resource = classLoader.getResource("JDBC.properties");
            String path = resource.getPath();
            System.out.println(path);
            //通过load来获取配置数据
            pro.load(new FileReader(path));
            //获取配置文件数据
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            password = pro.getProperty("password");
            driver = pro.getProperty("driver");
            //注册驱动
            Class.forName(driver);

        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }


    }


    /**
     * 获取连接对象的方法
     *
     * @return 返回一个连接对象
     */
    public static Connection getConnections() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }

    public static void Close(Statement sta, Connection con) {
        if (sta != null) {
            try {
                sta.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }


    }

    public static void Close(ResultSet res, Statement sta, Connection con) {
        if (sta != null) {
            try {
                sta.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (res != null) {
            try {
                res.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }


    }

}

第三步:在实例中使用工具类,这里我使用了一份数据库,可自行替换成自己的数据库

import cn.jdbc02.emp;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class jdbcdemo7 {
    /**
     * 演示JDBC工具类
     *
     * @param args
     */
    public static void main(String[] args) {
        List<emp> list = new jdbcdemo7().findall2();
        System.out.println(list);
        System.out.println(list.size());
        for (emp a : list
        ) {
            System.out.println(a + "\t");
        }

    }

    public List<emp> findall2() {
        Connection connections = null;
        Statement statement = null;
        ResultSet resultSet = null;
        List<emp> list = null;
        //注册驱动
        try {
            connections = JDBC_utils.getConnections();
            //定义sql语句
            String sql = "select * from emp";
            //获取执行sql对象
            statement = connections.createStatement();
            //执行sql
            resultSet = statement.executeQuery(sql);
            //获取结果集 封装对象 装载集合
            emp emp = null;
            list = new ArrayList<emp>();
            while (resultSet.next()) {
                //获取数据
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String gender = resultSet.getString("gender");
                double salary = resultSet.getDouble("salary");
                Date join_date = resultSet.getDate("join_date");
                int dept_id = resultSet.getInt("dept_id");
                //创建emp对象 并赋值
//                emp = new emp();
//                emp.setId(id);
//                emp.setName(name);
//                emp.setGender(gender);
//                emp.setJoin_date(join_date);
//                emp.setSalary(salary);
//                emp.setDept_id(dept_id);
                emp = new emp(id, name, gender, salary, join_date, dept_id);
                //装载集合
                list.add(emp);

            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBC_utils.Close(resultSet, statement, connections);
        }


        return list;

    }
}

第四步,运行结果:
在这里插入图片描述
第五:附录一份文章内使用的数据库sql

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 8.0.18 
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;

create table `emp` (
	`id` int (11),
	`name` varchar (30),
	`gender` char (3),
	`salary` double ,
	`join_date` date ,
	`dept_id` int (11)
); 
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('1','孙悟空','男','7200','2013-02-24','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('2','猪八戒','男','3600','2010-12-02','2');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('3','白骨精','女','5000','2015-10-07','3');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('4','蜘蛛精','女','4500','2011-03-14','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('5','孙悟空','男','7200','2013-02-24','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('6','猪八戒','男','3600','2010-12-02','2');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('7','唐僧','男','9000','2008-08-08','2');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('8','白骨精','女','5000','2015-10-07','3');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('9','蜘蛛精','女','4500','2011-03-14','1');
insert into `emp` (`id`, `name`, `gender`, `salary`, `join_date`, `dept_id`) values('10','小白龙','男','3000',NULL,NULL);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值