jdbc工具类2..0

Posted zxf6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc工具类2..0相关的知识,希望对你有一定的参考价值。

一、创建外部文件

url=jdbc:mysql:///qy66
use=root
password=root
driver=com.mysql.jdbc.Driver

二、创建工具类

package cn.zhouzhou;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/*
 * jdbc2.0?
 * 
 *    一、配置文件
 *
     1.在SRC下创建文件 格式为properties  jdbc.properties
     2.写入
             url=jdbc:mysql:///qy66 注意【这里的qy66】 是自己的数据库中有的 库!
            use=root
            password=root
            driver=com.mysql.jdbc.Driver 
     3.好处?
     这样写 可以直接在外部文件改变驱动、用户名、或是连接地址
            
       二、获得路径的方式?
               1.读取文件        Properties pro01=new Properties();
               2.获取文件路径    ClassLoader class01=工具类存在硬编码问题.class.getClassLoader();    classloader()类加载器!
               3.通过getPath(); 提供文件路径
               4.load(Reader reader)         以简单的线性格式从输入字符流读取属性列表(关键字和元素对)
             5.getProperty(String key)     使用此属性列表中指定的键搜索属性。 
             
    三、获取连接对象?
    
    四、释放资源?
  

 */
public class 工具类存在硬编码问题 {
    private static String driver;
    private static String url;
    private static String use;
    private static String password;
    
    //文件的读取?
    static{
        try {
                                                            
            Properties pro01=new Properties();                                //读取文件?proerties
                                                                
            ClassLoader class01=工具类存在硬编码问题.class.getClassLoader();//获取SRC路径?classloader()类加载器! 作用 将class文件加载到jvm虚拟机中去,程序就可以正确运行了
            
            URL res=class01.getResource("jdbc.properties");    //getResource? 获得SRC目录下的jdbc.properties文件
            String path=res.getPath();                        //getpath()?     提供文件路径
                                        
            pro01.load(new FileReader(path));
            
            url=pro01.getProperty("url");
            use=pro01.getProperty("use");
            password=pro01.getProperty("password");
            driver=pro01.getProperty("driver");
            
        } catch (Exception e) {
            
            e.printStackTrace();
        }  
    }
    //获取连接对象?
    public static Connection  getConnection() throws SQLException{
        return DriverManager.getConnection(url, use, password);
        
    }
    //释放资源?
    public static void close(Statement stmt,Connection conn){
        if (stmt!=null) {
            try {
                stmt.close();
            } catch (SQLException e) {
            
                e.printStackTrace();
            }
        }
        if (conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
            
                e.printStackTrace();
            }
        }
        
    }
    //还要释放资源? 方法的重载。
    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();
            }
        }
    }    
}

三、测试类

package cn.zhouzhou;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/*
 * 测试?执行写的工具类?
 * 
 */
public class Text01 {
    public static void main(String[] args) throws SQLException {
        
        Connection con=工具类存在硬编码问题.getConnection();    //1.注册
        
        String string="select * from shop";            //2.查询
        
        PreparedStatement start=con.prepareStatement(string); //3.设置 执行语句
        
        ResultSet rs=con.prepareStatement(string).executeQuery(); 
        
        while (rs.next()) {
            System.out.println(rs.getInt(1)+" "+rs.getString(2)+"  "+rs.getDouble(3));
        }    
        
        Jdbc工具类.close(con, start, rs);        //4.关闭资源
    }
    /*
     * 输出结果!
          2 打牌支出  200.0
        3 衣服支出  100.0
        4 工资收入  200100.0
        5 商品收入  2000.0
        6 张三  2000.0
        7 工资收入  0.0
        12 003  5000.0
     * */
    
}

 

以上是关于jdbc工具类2..0的主要内容,如果未能解决你的问题,请参考以下文章

00313_JDBC工具类

JDBC工具类连接数据库,模仿登录

JDBC工具类

开源JDBC工具类DbUtils

一个JDBC封装工具类

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例