JDBC

1,jdbc.properties文件

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:BDQN
username=wjb
password=wjb

2,读取properties文件

package cn.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigManager {
    //读取jdbc.properties配置文件,单例模式 
    
    private static ConfigManager configManager;
    private static Properties properties;
    
    //单例模式必须用private构造方法,不能用public
    private ConfigManager(){
        String configFile = "jdbc.properties";
        properties = new Properties();
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    //提供一个入口获取ConfigManager,这个方法可以严格控制实例生成的个数
    public static ConfigManager getInstance(){
        //如果为空就创建一个自已的构造方法,获取ConfigManager
        if(configManager == null){
            configManager = new ConfigManager();
        }
        return configManager;
    }
    
    //以上只是获取了properties的KEY值,下面这个方法获取对应的value值
    public String getString (String key){
        return properties.getProperty(key);
    }
    
}

3,连接数据库的基类

package cn.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import cn.pojo.Dancer;
import cn.util.ConfigManager;

public class BaseDao {
    Connection connection = null;
    ResultSet rs = null;
    PreparedStatement pst = null;
    
//连接数据库的方法
    public boolean getConnection(){
        String driver = ConfigManager.getInstance().getString("driverClassName");
        String url = ConfigManager.getInstance().getString("url");
        String username = ConfigManager.getInstance().getString("username");
        String password = ConfigManager.getInstance().getString("password");
        
        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        return true;
    }
    
    //增删改
    public int executeUpdate(String sql,Object[] param){
        int row = 0;
        if(this.getConnection()){
            try {
                pst = connection.prepareStatement(sql);
                for(int i = 0;i<param.length;i++){
                    pst.setObject(i+1, param[i]);
                }
                row = pst.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return row;
    }
    
    //查询
    public ResultSet executeQuery(String sql,Object[] param){
        if(this.getConnection()){
            try {
                pst = connection.prepareStatement(sql);
                for(int i=0;i<param.length;i++){
                    pst.setObject(i+1, param[i]);
                }
                rs = pst.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        return rs;
    }
    
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 回顾: 脏读:未提交事务的数据 不可重复读:已提交数据 update 幻读或者虚读:已经提交了数据的行数 inse...
    纪绘阅读 225评论 0 0
  • 1.加载数据库驱动 (1)在工程目录下新建Floder->Folder name:lib (2)在lib目录导入数...
    不差不多阅读 372评论 0 0
  • JDBC(JAVA DataBase connectivity)-java数据库连接 为什么会出现JDBC SUN...
    进击的大东阅读 723评论 0 0
  • JDBC基础持久化:把数据存到可掉电式存储设备中以供以后使用JDBC:Java Database Connecti...
    funOfFan阅读 198评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,606评论 28 53