Java连接数据库的四种方式

网站编辑2023-05-17 16:06:43781

在Java应用程序中,连接数据库是非常常见的操作。Java提供了多种连接数据库的方式,本文将介绍Java连接数据库的四种方式。

JDBC是Java Database Connectivity的缩写,是Java连接数据库的标准API。使用JDBC连接数据库需要以下步骤:

1. 加载数据库驱动程序

2. 建立数据库连接

3. 创建Statement对象

4. 执行SQL语句

5. 处理结果集

6. 关闭连接

以下是一个使用JDBC连接MySQL数据库的示例代码:

```java

import java.sql.*;

public class JdbcDemo {

public static void main(String[] args) {

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");

stmt = conn.createStatement();

rs = stmt.executeQuery("SELECT * FROM users");

while (rs.next()) {

System.out.println(rs.getString("name"));

}

} catch (ClassNotFoundException | SQLException e) {

e.printStackTrace();

} finally {

try {

if (rs != null) rs.close();

if (stmt != null) stmt.close();

if (conn != null) conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

```

ORM(Object-Relational Mapping)框架是一种将对象模型和关系数据库映射的技术。ORM框架可以自动将Java对象映射到数据库表中,使得开发者可以使用面向对象的方式操作数据库。

常见的ORM框架有Hibernate、MyBatis等。以下是一个使用Hibernate连接MySQL数据库的示例代码:

```java

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

public class HibernateDemo {

public static void main(String[] args) {

Configuration cfg = new Configuration().configure();

SessionFactory sessionFactory = cfg.buildSessionFactory();

Session session = sessionFactory.openSession();

List users = session.createQuery("FROM User").list();

for (User user : users) {

System.out.println(user.getName());

}

session.close();

sessionFactory.close();

}

}

```

连接池是一种管理数据库连接的技术,它可以在应用程序启动时创建一定数量的数据库连接,并在需要时分配给应用程序使用。使用连接池可以提高应用程序的性能和可伸缩性。

常见的连接池有Apache Commons DBCP、C3P0等。以下是一个使用C3P0连接MySQL数据库的示例代码:

```java

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class C3P0Demo {

public static void main(String[] args) {

ComboPooledDataSource dataSource = new ComboPooledDataSource();

dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");

dataSource.setUser("root");

dataSource.setPassword("password");

try (Connection conn = dataSource.getConnection();

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {

while (rs.next()) {

System.out.println(rs.getString("name"));

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

```

NoSQL(Not Only SQL)数据库是一种非关系型数据库,它不使用SQL语言进行数据操作。NoSQL数据库通常具有高可扩展性、高性能和高可用性等特点。

常见的NoSQL数据库有MongoDB、Redis等。以下是一个使用MongoDB连接数据库的示例代码:

```java

import com.mongodb.MongoClient;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

import org.bson.Document;

public class MongoDBDemo {

public static void main(String[] args) {

MongoClient mongoClient = new MongoClient("localhost", 27017);

MongoDatabase database = mongoClient.getDatabase("test");

MongoCollection collection = database.getCollection("users");

for (Document document : collection.find()) {

System.out.println(document.getString("name"));

}

mongoClient.close();

}

}

```

以上是Java连接数据库的四种方式,开发者可以根据自己的需求选择适合自己的方式。

最新推荐

右侧广告图1
  • 数据库审计

    在满足等保2.0‘安全审计’相关要求的同时,智能解析数据库通信流量,细粒度审计数据库访问行为,通过对数据库全量行为的审计溯源、危险攻击的实时告警、风险语句的智能预警,提供敏感的数据库资产安全的监控保障

    ¥3000.00/月

    等保合规

  • 云数据库 ClickHouse

    开箱即用,高吞吐写入,秒级实时分析、自动弹性优势。 广泛应用于流量分析、广告营销分析、行为分析、人群划分、客户画像、敏捷BI、数据集市、网络监控、分布式服务和链路监控等业务场景。

    ¥1473.40/月

    1年85折

  • 云数据库 RDS

    高性价比、稳定安全可靠的云数据库 RDS 即开即用、“自动驾驶”,助您免除数据库运维烦恼

    ¥88.00/年

    折扣优惠,高性价比,安全稳定

右侧广告图2