如何通过yml文件配置mysql数据库并使用jndi

作为一名经验丰富的开发者,我将会教你如何通过yml文件配置mysql数据库并使用jndi。

步骤

首先,让我们看一下整个过程的步骤:

步骤 操作
1 引入依赖
2 配置yml文件
3 配置JNDI数据源
4 在代码中获取数据源
5 使用数据源进行数据库操作

具体操作

步骤1:引入依赖

pom.xml文件中引入MySQL和JNDI的相关依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>
<dependency>
    <groupId>javax.sql</groupId>
    <artifactId>javax.sql-api</artifactId>
    <version>1.4.0</version>
</dependency>

步骤2:配置yml文件

application.yml文件中配置数据库连接信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

步骤3:配置JNDI数据源

在Tomcat的context.xml文件中配置JNDI数据源:

<Resource name="jdbc/mydatabase" auth="Container"
              type="javax.sql.DataSource" driverClassName="com.mysql.cj.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/mydatabase"
              username="root" password="password" maxTotal="20" maxIdle="10"
              maxWaitMillis="-1"/>

步骤4:在代码中获取数据源

创建一个DataSourceUtil类,用于获取数据源:

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DataSourceUtil {
    public static DataSource getDataSource() {
        try {
            InitialContext initContext = new InitialContext();
            return (DataSource) initContext.lookup("java:comp/env/jdbc/mydatabase");
        } catch (NamingException e) {
            e.printStackTrace();
            return null;
        }
    }
}

步骤5:使用数据源进行数据库操作

现在可以在代码中使用获取的数据源进行数据库操作,例如:

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Main {
    public static void main(String[] args) {
        DataSource dataSource = DataSourceUtil.getDataSource();
        try (Connection connection = dataSource.getConnection();
             PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM users")) {
            // 执行数据库操作
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

总结

通过以上步骤,你已经学会了如何通过yml文件配置mysql数据库并使用jndi。希會这篇文章能够帮助到你,祝你顺利上手!

classDiagram
    DataSourceUtil --|> DataSource
sequenceDiagram
    participant Main
    participant DataSourceUtil
    participant InitialContext
    participant DataSource
    Main ->> DataSourceUtil: getDataSource()
    DataSourceUtil ->> InitialContext: lookup("java:comp/env/jdbc/mydatabase")
    InitialContext ->> DataSource: return DataSource