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 }
运行结果: