zoukankan      html  css  js  c++  java
  • JDBC连接数据库查询信息的步骤(提取成配置文件方式)

    硬编码格式的弊端:数据库发生改变时,要重新修改代码,重新编译和部署

    解决方法:将数据库信息写在配置文件当中,让程序通过读取配置文件来获得这些信息

    jdbc.driver.class=com.mysql.jdbc.Driver
    jdbc.connection.url=jdbc:mysql://127.0.0.1:3306/tree
    jdbc.connection.username=root
    jdbc.connection.password=123321
    

    编写配置文件database.properties
    创建包com.pb.tree.util,编写类ConfigManager 读取属性文件

    package cn.tree.util;

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

    //读取配置文件的工具类-单例模式
    public class ConfigManager {
    // 读取配置文件properties.load(inputstream)

    private static ConfigManager configManager;
    private static Properties properties;

    private ConfigManager() {
    String configFile = "database.properties";
    properties = new Properties();
    InputStream is = ConfigManager.class.getClassLoader()
    .getResourceAsStream(configFile);

    try {
    properties.load(is);
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    public static ConfigManager getInstance() {
    if (configManager == null) {
    configManager = new ConfigManager();
    }
    return configManager;
    }

    public String getString(String key) {
    return properties.getProperty(key);
    }

    }



    修改MenuDao类的查询信息的方法

    package cn.tree.util;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    //读取配置文件的工具类-单例模式
    public class ConfigManager {
    	// 读取配置文件properties.load(inputstream)
    
    	private static ConfigManager configManager;
    	private static Properties properties;
    
    	private ConfigManager() {
    		String configFile = "database.properties";
    		properties = new Properties();
    		InputStream is = ConfigManager.class.getClassLoader()
    				.getResourceAsStream(configFile);
    
    		try {
    			properties.load(is);
    			is.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static ConfigManager getInstance() {
    		if (configManager == null) {
    			configManager = new ConfigManager();
    		}
    		return configManager;
    	}
    
    	public String getString(String key) {
    		return properties.getProperty(key);
    	}
    
    }
    

      

    package cn.tree.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import cn.tree.util.ConfigManager;
    
    public class MenuDao {
    
    	// 查询主目录
    	public void getMainList() {
    		Connection connection = null;
    		Statement st = null;
    		ResultSet rs = null;
    		String driver = ConfigManager.getInstance().getString(
    				"jdbc.driver.class");
    		String url = ConfigManager.getInstance().getString(
    				"jdbc.connection.url");
    		String username = ConfigManager.getInstance().getString(
    				"jdbc.connection.username");
    		String password = ConfigManager.getInstance().getString(
    				"jdbc.connection.password");
    
    		try {
    			// 1、加载驱动
    			Class.forName(driver);
    			// 2、获取数据库连接
    			connection = DriverManager.getConnection(url, username, password);
    			// 3、获取Statement对象,执行sql语句
    			String sql = "select * from main";
    			st = connection.createStatement();
    			rs = st.executeQuery(sql);
    			// 4、处理sql执行结果
    			while (rs.next()) {
    				int id = rs.getInt("id");
    				String name = rs.getString("name");
    				System.out.println("id: " + id + "	" + "name: " + name);
    			}
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				// 5、释放资源
    				rs.close();
    				st.close();
    				connection.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	public static void main(String[] args) {
    		MenuDao menuDao = new MenuDao();
    		menuDao.getMainList();
    	}
    }
    

      

  • 相关阅读:
    mysql 查看并修改默认端口号
    安装MySQL-python 的问题
    mysql安装使用
    SAE部署Django1.6+MySQL
    Yii2框架学习 4-2小部件学习 (DetailView、ActiveForm、GridView 、ActionColumn 动作列的配置属性)
    Yii2框架学习 3-4 查询构建器QueryBuilder 的学习
    Yii2框架学习 4-2 HTML助手类、 Array Helper助手类
    Yii2框架学习 3-3 单条数据详情展示; 数据关联查询时 hasOne和hasMany
    Yii框架学习 3-2 数据库操作--ActiveRecord 操作和生命周期
    Yii2框架学习 3-1 yii连接数据库和使用数据库 数据库查询总结
  • 原文地址:https://www.cnblogs.com/xtdxs/p/6506902.html
Copyright © 2011-2022 走看看