随着互联网的发展,数据的存储和处理变得越来越重要,因此学习如何使用Java连接数据库也变得越来越重要。Java是一种广泛使用的编程语言,具有跨平台性和易于学习的特点,同时也可以方便地连接数据库。
一、连接关系型数据库
Java可以与大多数关系型数据库进行连接,如Oracle、MySQL、PostgreSQL等。下面以MySQL为例介绍Java如何连接数据库。
首先需要下载该数据库的驱动程序,并将其添加到Java项目的类路径中。
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/database";
Connection conn = DriverManager.getConnection(url,"root","password");
在代码中,首先使用Class.forName()方法加载MySQL的驱动程序,在连接字符串中指定连接的数据库和端口号。使用DriverManager.getConnection()方法连接数据库,并指定用户名和密码。
连接数据库成功后,可以通过Connection对象执行SQL语句。
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM users;";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("name"));
}
在以上代码中,使用Connection.createStatement()方法创建Statement对象,使用executeQuery()方法执行SQL查询,并使用ResultSet遍历结果集。
二、连接非关系型数据库
除了关系型数据库,Java还可以连接非关系型数据库,如MongoDB、Redis、Cassandra等。
下面以MongoDB为例介绍Java如何连接非关系型数据库。
首先需要下载该数据库的驱动程序,并将其添加到Java项目的类路径中。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Properties properties = new Properties();
properties.load(classLoader.getResourceAsStream("mongo.properties"));
String host = properties.getProperty("host");
int port = Integer.parseInt(properties.getProperty("port"));
String databaseName = properties.getProperty("databaseName");
MongoClient mongoClient = new MongoClient(host, port);
MongoDatabase database = mongoClient.getDatabase(databaseName);
MongoCollection<Document> collection = database.getCollection("users");
FindIterable<Document> iterable = collection.find();
for(Document document : iterable) {
System.out.println(document.toJson());
}
在以上代码中,通过加载属性文件的方式获取MongoDB的连接信息,并创建MongoClient连接。获取MongoDatabase对象和MongoCollection对象,使用find()方法查询文档,并使用Document.toJson()方法将结果转化为JSON格式输出。
三、连接池技术
连接池技术是一种提高数据库连接利用率的技术,通过提前创建连接对象,并将其存储在连接池中等待重用,避免了重复创建连接对象的性能开销。
下面以Druid连接池为例介绍Java如何使用连接池技术。
首先需要将Druid的依赖添加到项目中。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
在代码中,使用DruidDataSource创建连接池对象,设置连接池的属性,并通过getConnection()方法获取连接对象。
//创建dataSource
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDbType("mysql");
dataSource.setUrl("jdbc:mysql://localhost:3306/database");
dataSource.setUsername("root");
dataSource.setPassword("password");
//获取连接对象
Connection conn = dataSource.getConnection();
在以上代码中,通过设置数据源的URL、用户名和密码等信息,使用dataSource.getConnection()方法获取连接对象,使用完毕后需要调用conn.close()方法归还连接池对象。
代码示例
完整的Java连接数据库的代码示例如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import com.alibaba.druid.pool.DruidDataSource;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class ConnectionDemo {
//连接MySQL数据库
public void mysqlConnectionDemo() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/database";
Connection conn = DriverManager.getConnection(url,"root","password");
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM users;";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("name"));
}
conn.close();
}
//连接MongoDB数据库
public void mongoConnectionDemo() throws Exception {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Properties properties = new Properties();
properties.load(classLoader.getResourceAsStream("mongo.properties"));
String host = properties.getProperty("host");
int port = Integer.parseInt(properties.getProperty("port"));
String databaseName = properties.getProperty("databaseName");
MongoClient mongoClient = new MongoClient(host, port);
MongoDatabase database = mongoClient.getDatabase(databaseName);
MongoCollection collection = database.getCollection("users");
FindIterable iterable = collection.find();
for(Document document : iterable) {
System.out.println(document.toJson());
}
mongoClient.close();
}
//使用Druid连接池连接MySQL数据库
public void druidConnectionDemo() throws SQLException {
//创建dataSource
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDbType("mysql");
dataSource.setUrl("jdbc:mysql://localhost:3306/database");
dataSource.setUsername("root");
dataSource.setPassword("password");
//获取连接对象
Connection conn = dataSource.getConnection();
conn.close();
}
}
总结
本文从连接关系型数据库、连接非关系型数据库、连接池技术三个方面详细介绍了如何使用Java连接数据库,并提供了相应的代码示例。Java连接数据库是Java开发中的一个重要知识点,对于提高应用的性能和稳定性具有重要作用。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/248881.html
微信扫一扫
支付宝扫一扫