数据库连接的五种方式讲解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

JDBC:获取数据库连接的5种方式


获取数据库连接前,我们需要做一些前期准备:

  • 在项目工程中导入数据库连接相关数据库驱动(也就是第三方api)。这里我使用的是mysql数据库。数据库驱动包请手动获取:链接:https://pan.baidu.com/s/1JMWJQD5R4oWzUchOtkjpGQ
    提取码:ye59

注意:

  • 数据库驱动未导入则程序无法运行;
  • 前四种在实际项目开发中不太建议使用,最终落地使用第五种方式,每一种连接方式都由前一种优化而来,仅供参考学习;

方式一:

 //1、获取Driver实现类对象,其中com.mysql.jdbc.Driver()
 //来自于第三方的api
Driver driver = new com.mysql.jdbc.Driver();
 //2、提供要连接的数据库
String url = "jdbc:mysql://localhost:3306/test"
 /*
 url = "jdbc:mysql://localhost:3306/test" 的理解
 1、jdbc:mysql是协议,jdbc是主协议,mysql是子协议
 2、localhost:ip地址,这里指本机
 3、3306:mysql服务器端口号
 4、test:数据库名,如果项目中所用的表是在其他数据库,则要修改该数据库名
 */
 
 //3、properties对象用于封装数据库的user和password
 Properties pro = new Properties();
 pro.setProperty("user","数据库用户名");
 pro.setProperty("password","数据库密码");
 //4、进行连接
 Connection conn = driver.connect(url,pro);
return conn;

对于
pro.setProperty(“user”,“数据库用户名”);
pro.setProperty(“password”,“数据库密码”);
中的数据库用户名和数据库密码的解释:
在这里插入图片描述

方式二:对方式一的优化(代码中不出现第三方api,移植性更好

 //1、通过反射,获取Driver实现类对象
 class aclass = Class.forName("com.mysql.jdbc.Driver");
 Driver driver = (Driver)aclass.newInstance();
 //下面的步骤和方式一一样
 //2、提供要连接的数据库
 String url = "jdbc:mysql://localhost:3306/test"
 //3、properties对象用于封装数据库的user和password
 Properties pro = new Properties();
 pro.setProperty("user","数据库用户名");
 pro.setProperty("password","数据库密码");
 //4、进行连接
 Connection conn = driver.connect(url,pro);
return conn;

方式三:对方式二的优化(使用DriverManager替换Driver)-

java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。

  • 在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。
    • Oracle的驱动:oracle.jdbc.driver.OracleDriver
    • mySql的驱动: com.mysql.jdbc.Driver
//1、获取Driver实现类的对象
Class aClass = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) aClass.newInstance();
//2、注册(加载)数据库驱动
DriverManager.registerDriver(driver);
//3、提供获取数据库连接的三个要素:url、user、password
//获取url(指明连接的数据库)
String url = "jdbc:mysql://localhost:3306/test";
//数据库用户名
String user = "xxxx";//若是连接的是本机数据库,则为root
//数据库密码
String password = "xxxx"
//4、获取连接
Connection conn = DriverManager.getConnection(url, user, password);
return conn;

方式四:对方式三的优化

//1、提供获取连接的三个要素
String url = "jdbc:mysql://localhost:3306/test";
String user = "数据库用户名";
String password = "数据库密码";
//2、注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3、获取连接
Connection conn= DriverManager.getConnection(url, user, password);

return conn;

方式五(final版):

将数据库连接需要的四个基本信息(user、password、url和加载驱动需要的信息)声明在配置文件jdbc.Properties中,通过读取配置文件的方式,获取连接

配置文件jdbc.Properties:
在这里插入图片描述
在这里插入图片描述
jdbc.Properties中的内容:

user=数据库用户名
password=数据库密码
url=jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true
driverClass=com.mysql.jdbc.Driver

获取连接的主代码:

 //加载jdbc.Properties文件,存进对应的流对象里
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.Properties");
//new一个Properties对象
Properties pro = new Properties();
//加载is流文件进对应的Properties对象pro中
pro.load(is);

//通过pro获取jdbc.Properties中的ket-value
String user = pro.getProperty("user");
String password = pro.getProperty("password");
String driverClass = pro.getProperty("driverClass");
String url = pro.getProperty("url");

//加载驱动
Class.forName(driverClass);
//获取连接
Connection conn = DriverManager.getConnection(url, user, password);
return conn;

第五种方式和前面几种方式比较,好处在于:
1、使用配置文件将获取数据库连接的要素(用户名、密码、url、数据库驱动)封装起来,避免了在程序中使用硬编码的方式将代码写死。这样,若是我们使用的数据库用户名或者密码修改了,或者是使用了其他数据库,不需要修改程序的代码,只需要将配置文件中对应的内容进行修改即可。这样就实现了代码的解耦。
2、如果需要修改配置文件信息,可以避免程序重新打包。

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBCJava Database Connectivity)是Java语言中访问关系型数据库的标准API。通过JDBC,我们可以在Java程序中连接到不同的数据库,执行SQL语句,并处理查询结果。 下面简单介绍JDBC操作数据库的一些基本步骤: 1. 加载数据库驱动 在使用JDBC之前,需要先加载数据库驱动。例如,如果要连接MySQL数据库,需要加载MySQL的驱动程序,可以使用Class.forName()方法来加载: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接 使用DriverManager.getConnection()方法建立数据库连接,需要提供数据库的URL、用户名和密码: ``` Connection conn = DriverManager.getConnection(url, username, password); ``` 其中,url是连接数据库的URL,包括数据库类型、主机名、端口号和数据库名称等信息。例如,连接MySQL数据库的URL为: ``` jdbc:mysql://localhost:3306/mydb ``` 3. 创建Statement对象 使用Connection.createStatement()方法创建Statement对象,用于执行SQL语句: ``` Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句 使用Statement.execute()、Statement.executeUpdate()或Statement.executeQuery()方法执行SQL语句,例如: ``` String sql = "SELECT * FROM users"; ResultSet rs = stmt.executeQuery(sql); ``` 执行查询语句时,会返回一个ResultSet对象,其中包含查询结果。可以使用ResultSet的方法来获取查询结果。 5. 处理查询结果 使用ResultSet的方法来处理查询结果,例如: ``` while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id: " + id + ", name: " + name + ", age: " + age); } ``` 6. 关闭数据库连接 使用Connection.close()方法关闭数据库连接: ``` conn.close(); ``` 以上就是JDBC操作数据库的基本步骤。当然,在实际应用中,可能还需要处理SQL语句中的参数、使用PreparedStatement预编译SQL语句等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值