使用SpringMVC配置MySQL数据库连接
一、整体流程概览
以下是配置SpringMVC与MySQL数据库连接的整体流程:
步骤 | 操作 |
---|---|
步骤一 | 添加MySQL数据库驱动依赖 |
步骤二 | 在Spring配置文件中定义数据源 |
步骤三 | 配置连接池和数据库连接相关属性 |
步骤四 | 创建持久化类(POJO)和DAO接口 |
步骤五 | 创建DAO接口的实现类,编写数据库操作逻辑 |
步骤六 | 在Spring配置文件中声明事务管理器 |
步骤七 | 在Spring配置文件中开启注解驱动 |
步骤八 | 在Controller中引入DAO接口并使用其方法读写数据库 |
步骤九 | 配置视图解析器和Controller映射 |
步骤十 | 编写前端页面,使用表单提交数据 |
二、详细步骤及代码示例
步骤一:添加MySQL数据库驱动依赖
在项目的pom.xml
文件中添加MySQL数据库驱动依赖,如下所示:
<dependencies>
<!-- 其他依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
步骤二:定义数据源
在Spring的配置文件(如applicationContext.xml
)中定义数据源,使用BasicDataSource
,并指定MySQL数据库相关配置,如下所示:
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="password" />
</bean>
步骤三:配置连接池和数据库连接相关属性
配置连接池和数据库连接相关属性,如最大连接数、初始连接数等。继续在Spring的配置文件中添加以下代码:
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<!-- 数据源配置 -->
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="password" />
<!-- 连接池配置 -->
<property name="initialSize" value="5" />
<property name="maxTotal" value="10" />
</bean>
步骤四:创建持久化类(POJO)和DAO接口
创建持久化类(POJO)和DAO接口,用于表示数据库表的结构和定义数据库操作方法。例如,创建一个User
类和UserDAO
接口,如下所示:
public class User {
private Long id;
private String username;
private String password;
// 其他属性和对应的getter/setter方法
}
public interface UserDAO {
void save(User user);
User findById(Long id);
// 其他数据库操作方法
}
步骤五:创建DAO接口的实现类
创建DAO接口的实现类,编写数据库操作逻辑。使用JDBC或其他ORM框架执行数据库操作,并在实现类中注入数据源。例如,使用JdbcTemplate执行数据库操作,如下所示:
public class JdbcUserDAO implements UserDAO {
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
@Override
public void save(User user) {
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
jdbcTemplate.update(sql, user.getUsername(), user.getPassword());
}
@Override
public User findById(Long id) {
String sql = "SELECT * FROM users WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new UserRowMapper());
}
// 其