JDBCUtils工具类

JDBCUtils工具类的使用

package util;

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

//JDBC工具类(都是静态)
public class JDBCUtils {

    //配置文件的读取,使用静态代码
    private  static String url;
    private static String user;
    private static String password;
    private static String driver;

    static {
        try {
            //读取资源文件,获取值
            //Properties集合类
            Properties pro = new Properties();
            //获取src路径下的文件方式:ClassLoader类加载器
            ClassLoader classLoader=JDBCUtils.class.getClassLoader();
            URL res=classLoader.getResource("jdbc.properties");
            String path=res.getPath();
            System.out.println(path);


            //加载文件,确定路径
           // pro.load(new FileReader(""));
            pro.load(new FileReader(path));
            //获取数据 赋值
            url=pro.getProperty("url");
            user=pro.getProperty("user");
            password=pro.getProperty("password");
            driver=pro.getProperty("driver");
            //注册驱动
            Class.forName("com.mysql.jdbc.Driver");

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

    //获取连接,return连接对象
    public static  Connection getConnection() throws SQLException{
        return DriverManager.getConnection(url,user,password);


    }

    //释放资源
    // 重载对象
    public static void close(ResultSet rs,Statement stmt, Connection conn){

        //抓异常

        if(rs!=null){
            try{
                rs.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
        if(stmt!=null){
            try{
                stmt.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }

        if(conn!=null){
            try{
                conn.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }

    }





}

新建一个空文件并插入以下代码

url=jdbc:mysql:///jdbctest
user=root
password=root
driver=com.mysql.jdbc.Driver

新建一个class ,

package cn.itcast.jdbc;

import util.JDBCUtils;

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


public class Dem5 {

    public static void main(String[] args){
        List<EMP> list=new Dem5().findAll();
        System.out.println(list);
        System.out.println(list.size());//查询对象的行数

    }



    //查询所有 emp
    public List<EMP> findAll() {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
List<EMP> list=null;

        try {
            /*//注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //获取连接
              conn = DriverManager.getConnection("jdbc:mysql:///jdbctest", "root", "root");
           */
            conn=JDBCUtils.getConnection(); 

            //定义sql
            String sql = "select * from user";
            //获取执行sql的对象
            stmt = conn.createStatement();
            //执行sql
             rs = stmt.executeQuery(sql);

            //遍历接结果集,封装对象,装载集合
            EMP emp=null;
            list=new ArrayList<EMP>();
            while (rs.next()) {

                //要跟数据库的列名一样

                int id = rs.getInt("id");
                String name = rs.getString("name");
                String pwd = rs.getString("pwd");
                String sex = rs.getString("sex");
                String home = rs.getString("home");
                String info = rs.getString("info");
                //创建emp对象并赋值
                emp=new EMP();
                emp.setId(id);
                emp.setName(name);
                emp.setPwd(pwd);
                emp.setSex(sex);
                emp.setHome(home);
                emp.setInfo(info);

                //装载集合
                list.add(emp);




            }


        } /*catch (ClassNotFoundException e) {
            e.printStackTrace();

        }*/catch (SQLException e){
            e.printStackTrace();
        }finally {
            //释放资源
           /* if(rs!=null){
                try{
                    rs.close();

                }catch (SQLException e){
                    e.printStackTrace();
                }
            }


            if(conn!=null){
                try{
                    conn.close();

                }catch (SQLException e){
                    e.printStackTrace();
                }
            }

            if(stmt!=null){
                try{
                    stmt.close();

                }catch (SQLException e){
                    e.printStackTrace();
                }
            }*/

            JDBCUtils.close(rs,stmt,conn);

        }



        return list;


    }

}

//注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
//获取连接
conn = DriverManager.getConnection(“jdbc:mysql:///jdbctest”, “root”, “root”);

   可以将以上代码更改为  conn=JDBCUtils.getConnection(); 

释放资源也可以更改为 JDBCUtils.close(rs,stmt,conn); 只需这一行代码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值