• 03014_properties配置文件


    1、使用properties配置文件

      (1)开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可;

      (2)通常情况下,我们习惯使用properties文件,此文件我们将做如下要求:

        ①文件位置:任意,建议src下;

        ②文件名称:任意,扩展名为properties;

        ③文件内容:一行一组数据,格式是“key=value” ;

        ④key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driver ;

        ⑤value值不支持中文,如果需要使用非英文字符,将进行unicode转换。

    2、创建配置文件

      (1)在项目的根目录下,创建文件,输入“db.properties”文件名;

      (2)文件中的内容:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mybase
    user=root
    password=root

    3、加载配置文件:Properties对象

      (1)我们将采用加载properties文件获得流,然后使用Properties对象进行处理;

      (2)JDBCUtils.java中编写代码:

     1 import java.io.FileReader;
     2 import java.io.Reader;
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.util.Properties;
     6 
     7 public class JDBCUtils {
     8 
     9     private static String driver;
    10     private static String url;
    11     private static String user;
    12     private static String password;
    13     // 静态代码块
    14     static {
    15         try {
    16             // 1 使用Properties处理流
    17             // 使用load()方法加载指定的流
    18             Properties props = new Properties();
    19             Reader is = new FileReader("db.properties");
    20             props.load(is);
    21             // 2 使用getProperty(key),通过key获得需要的值,
    22             driver = props.getProperty("driver");
    23             url = props.getProperty("url");
    24             user = props.getProperty("user");
    25             password = props.getProperty("password");
    26         } catch (Exception e) {
    27             throw new RuntimeException(e);
    28         }
    29     }
    30 
    31     /**
    32      * 获得连接
    33      */
    34     public static Connection getConnection() {
    35         try {
    36             // 1 注册驱动
    37             Class.forName(driver);
    38             // 2 获得连接
    39             Connection conn = DriverManager.getConnection(url, user, password);
    40             return conn;
    41         } catch (Exception e) {
    42             throw new RuntimeException(e);
    43         }
    44     }
    45 }

      (3)测试类

     1 import java.sql.Connection;
     2 import java.sql.PreparedStatement;
     3 import java.sql.SQLException;
     4 
     5 public class Demo {
     6 
     7     public static void main(String[] args) {
     8         try {
     9             // 1,获取连接对象
    10             Connection conn = JDBCUtils.getConnection();
    11             // 2,指定要执行的SQL语句
    12             String sql = "INSERT INTO sort(sname) VALUES(?)";
    13             // 4,获取SQL语句的执行对象 PreparedStatement
    14             PreparedStatement ppstat = conn.prepareStatement(sql);
    15             // 5,执行SQL语句
    16             ppstat.setString(1, "洗衣机");
    17             int line = ppstat.executeUpdate();
    18             // 6,处理结果集
    19             System.out.println("line=" + line);
    20             // 7,关闭连接
    21             ppstat.close();
    22             conn.close();
    23         } catch (SQLException e) {
    24             throw new RuntimeException(e);
    25         }
    26     }
    27 }

      运行结果:

      

  • 相关阅读:
    pdf在线转换器
    抖音修复老照片动起来笑起来的程序app的下载地址
    FFmpeg.AutoGen Unable to load DLL 'avutil.56' 解决方法
    Array.prototype.fill 填充值被复用的问题
    Recoil Input 光标位置被重置到末尾的问题
    TypeScript 扩展全局 Window 时报错的解决
    Recoil 中默认值的正确处理
    Recoil 中多级数据联动及数据重置的合理做法
    Recoil 默认值及数据级联的使用
    Recoil 的使用
  • 原文地址:https://www.cnblogs.com/gzdlh/p/8111780.html
Copyright © 2020-2023  润新知