Java中利用druid连接池进行数据库查询操作实例

代码如下:

rt com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

/*
利用druid连接池进行数据库查询操作(配置文件方式)
 */
public class Test03 {
    public static void main(String[] args) throws Exception {
        /*
        导包
        准备配置文件,只要是properties文件即可,需要自己加载该配置文件
        创建连接池对象
        获取连接
        获取语句执行者进行后续的一系列操作
         */
        //创建properties对象,将配置文件信息读取到该对象中
        Properties pro = new Properties();
        InputStream in = Test03.class.getClassLoader().getResourceAsStream("druid.properties");//获取输入流
        pro.load(in);//读取配置文件的信息到ps中,抛出异常
        DataSource dataSource = DruidDataSourceFactory.createDataSource(pro);//获取连接池
        Connection connection = dataSource.getConnection();//获取连接
        //查询出部门编号、部门名称、部门位置、每个部门的员工人数
        String sql =" SELECT d.id,d.dname,d.loc,COUNT(*) FROM emp e JOIN dept d ON e.`dept_id`= d.`id`  GROUP BY d.`id`;";
        //查询经理的信息。显示员工姓名,员工工资,职务名称,职务描述,部门名称,部门位置,工资等级
        String sql1 = "select e.ename,e.salary,j.jname,j.description,d.dname,d.loc,s.grade from emp e join job j join\n" +
                "dept d join salarygrade s on e.`dept_id`= d.`id` and e.`job_id`=j.`id` where  j.`jname`='经理'\n" +
                "and e.`salary` between s.`losalary` and s.`hisalary`;";
        //查询所有员工信息。显示员工姓名,员工工资,职务名称,职务描述,部门名称,部门位置,工资等级
        String sql2 = " select e.ename,e.salary,j.jname,j.description,d.dname,d.loc,s.grade from emp e join job j join\n" +
                " dept d join salarygrade s on e.`job_id`= j.`id` and e.`dept_id`= d.`id` where e.`salary` between \n" +
                " s.`losalary` and s.`hisalary`;";
        //获取语句执行者等一系列操作
        PreparedStatement ps = connection.prepareStatement(sql);
        PreparedStatement ps1 = connection.prepareStatement(sql1);
        PreparedStatement ps2 = connection.prepareStatement(sql2);
        ResultSet resultSet = ps.executeQuery();
        ResultSet resultSet1 = ps1.executeQuery();
        ResultSet resultSet2 = ps2.executeQuery();
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String dname = resultSet.getString("dname");
            String loc = resultSet.getString("loc");
            int count = resultSet.getInt("count(*)");
            System.out.println("id="+id+" dname="+dname+" loc="+loc+" count="+count );

        }
        System.out.println("===================================================================");
        while (resultSet1.next()) {
            String ename = resultSet1.getString("ename");
            int salary = resultSet1.getInt("salary");
            String jname = resultSet1.getString("jname");
            String description = resultSet1.getString("description");
            String dname = resultSet1.getString("dname");
            String loc = resultSet1.getString("loc");
            int grade = resultSet1.getInt("grade");
            System.out.println("ename="+ename+" salary="+salary+" jname="+jname+" description="+description
                    +" dname="+dname+" loc="+loc+" grade="+grade);

        }
        System.out.println("===================================================================");
        while (resultSet2.next()) {
            String ename = resultSet2.getString("ename");
            int salary = resultSet2.getInt("salary");
            String jname = resultSet2.getString("jname");
            String description = resultSet2.getString("description");
            String dname = resultSet2.getString("dname");
            String loc = resultSet2.getString("loc");
            int grade = resultSet2.getInt("grade");
            System.out.println("ename="+ename+" salary="+salary+" jname="+jname+" description="+description
                    +" dname="+dname+" loc="+loc+" grade="+grade);

        }
        //释放资源
        Utils11.closeResource(resultSet,ps,connection);
        Utils11.closeResource(resultSet1,ps1,null);
        Utils11.closeResource(resultSet2,ps2,null);

    }
}

配置文件概况:

控制台打印效果:

猜你喜欢

转载自blog.csdn.net/xilin6664/article/details/89455959