尚硅谷之JDBC
3、获取数据库链接
可以通过 DriverManager 类建立到数据库的连接Connection:
DriverManager 试图从已注册的 JDBC 驱动程序集中选择一个适当的驱动程序。
- public static Connection getConnection(String url)
- public static Connection getConnection(String url,String user, String password)
- public static Connection getConnection(String url,Properties info)
3.1 JDBC URL
JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
JDBC URL的标准由三部分组成,各部分间用冒号分隔。
jdbc:<子协议>:<子名称>
- 协议:JDBC URL中的协议总是jdbc
- 子协议:子协议用于标识一个数据库驱动程序
- 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息
例如:
- MySQL的连接URL编写方式:
- jdbc:mysql://主机名称:mysql服务端口号/数据库名称?参数=值&参数=值
- jdbc:mysql://localhost:3306/testdb
- jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf8
- jdbc:mysql://localhost:3306/testdb?user=root&password=123456
- Oracle9i:
- jdbc:oracle:thin:@主机名称:oracle服务端口号:数据库名称
- jdbc:oracle:thin:@localhost:1521:testdb
- SQLServer
- jdbc:sqlserver://主机名称:sqlserver服务端口号:DatabaseName=数据库名称
- jdbc:sqlserver://localhost:1433:DatabaseName=testdb
//1、加载与注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2、获取数据库连接 String url = "jdbc:mysql://localhost:3306/test"; Connection conn = DriverManager.getConnection(url, "root", "root"); //硬编码 |
3.2 jdbc.properties
在src下建立文件jdbc.properties,当然也可以是其他名字,只不过这里为了见名知意取这个名
通常至少应该包括 "user" 和 "password" 属性
#key=value driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test user=root password=root |
public static void main(String[] args) throws Exception { //预先加载配置文件jdbc.properties,把配置信息封装到Properties对象中 Properties pro = new Properties(); //ClassLoader只能加载类路径下的资源文件 //如果不是类路径下,只能使用FileInputStream pro.load(ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties")); //1、加载与注册驱动 Class.forName(pro.getProperty("driver")); //2、获取数据库连接 // Connection conn = DriverManager.getConnection(pro.getProperty("url"), pro); Connection conn = DriverManager.getConnection(pro.getProperty("url"), pro.getProperty("user"),pro.getProperty("password")); System.out.println(conn); } //解决了硬编码的问题 |