类路径读取JdbcUtil的配置文件

本文介绍了如何改造Java项目中的JdbcUtil工具类,以实现更简洁的调用方式和增强通用性,使其同时适用于Java和Java Web项目。改造包括创建db.properties配置文件,并详细说明了改造后的JdbcUtil.java代码,核心思想是通过读取配置文件来简化数据库连接操作。

改造之前java项目中的JdbcUtil.java工具类:
1、要求:
1)达到简化调用JdbcUtil.java的程序的代码量。
2)通用性:既支持java项目,又支持java web项目。

2、改造代码:
1)创建db.properties文件

2)修改后的JdbcUtil.java

package sram.util;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * jdbc工具类
 */
public class JdbcUtil {
    private static String url = null;
    private static String user = null;
    private static String password = null;
    private static String driverClass = null;

    /**
     * 静态代码块中(只加载一次)
     */
    static{
        try {
            //读取db.properties文件
            Properties props = new Properties();
            /**
             *  . 代表java命令运行的目录
             *  在java项目下,. java命令的运行目录从项目的根目录开始
             *  在web项目下,  . java命令的而运行目录从tomcat/bin目录开始
             *  所以不能使用点.
             */
            //FileInputStream in = new FileInputStream("./src/db.properties");

            /**
             * 使用类路径的读取方式
             *  / : 斜杠表示classpath的根目录
             *     在java项目下,classpath的根目录从bin目录开始
             *     在web项目下,classpath的根目录从WEB-INF/classes目录开始
             */
            InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");

            //加载文件
            props.load(in);
            //读取信息
            url = props.getProperty("url");
            user = props.getProperty("user");
            password = props.getProperty("password");
            driverClass = props.getProperty("driverClass");

            //注册驱动程序
            Class.forName(driverClass);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("驱程程序注册出错");
        }
    }

    /**
     * 抽取获取连接对象的方法
     */
    public static Connection getConnection(){
        try {
            Connection conn = DriverManager.getConnection(url, user, password);
            return conn;
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    /**
     * 释放资源的方法
     */
    public static void close(Connection conn,Statement stmt){
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }

    public static void close(Connection conn,Statement stmt,ResultSet rs){
        if(rs!=null)
            try {
                rs.close();
            } catch (SQLException e1) {
                e1.printStackTrace();
                throw new RuntimeException(e1);
            }
        if(stmt!=null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }
}

3)核心思想:

(一)JSP用户登录练习——JdbcUtil数据库连接 目标: 1.掌握数据库工具类JdbcUtil的编写; 2.掌握配置文件编写,以及配置文件读取; 3.将原来的JSP用户登录案例改写成连接数据库,即从数据库中取到用户数据,然后进行登录校验; 步骤: 一、测试库创建 测试库demo的创建。 注意: 将测试数据进行修改,将一条记录修改为自己的姓名及学号信息,或新增一条记录填写自己的姓名及学号等信息。 二、项目创建及代码编写 1.建议保留原项目jspLogin不变,新建一个动态web项目jspLoginDB; 2.导入第三方jar包:jstl-1.2.jar(JSTL标签库)、mysql-connector-java-5.1.7-bin.jar(MySQL数据库的驱动文件),并添加到构建路径。 3.webContent添加两个jsp页面:login.jsp、userList.jsp; 4.在src下创建一个实体类User,两个servlet:LoginServlet和ListUserServlet然后添加示例代码; 5.在src下新建一个配置文件jdbc.properties,新建一个util包,添加一个类文件JdbcUtil.java; 注意:jdbc.properties中修改为自己的数据库名称和用户名、密码 6.在src下,改写LoginServlet文件; 7.实现功能: 1)用户从login.jsp登录页面,输入用户名和密码信息; 2)点击登录后,会将登录信息通过http请求提交到LoginServlet这个登录处理页面;在LoginServlet进行参数获取、信息校验(修改为从数据库获取用户数据)、(域对象中存储用户名)、然后根据校验结果进行页面跳转。 3)如果登录成功,则跳转到ListUserServlet,然后跳转到userList.jsp页面,用来显示数据。在LoginServlet向域对象中存入了用户名,在ListUserServlet中将用户列表数据存入域对象,在userList.jsp中获取用户名和用户列表数据。如果用户名没有,则说明还未登录,则仍跳回到login.jsp。 4)如果登录失败,则跳回到登录页面login.jsp。 注意: 1)将web项目发布到tomcat中,启动tomcat后,来访问login.jsp; 提交作业: 1.登录成功:显示用户列表的浏览器截图; 2.登录失败:显示用户名或密码错误的浏览器截图; 我采用的是动态网页dynamic web 项目,要求新建一个数据库名叫demo2,实现上述内容,要求简单快捷高效
05-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值