如何通过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