Springboot + JSP + Spring Security: 如何在MySQL中配置数据源?
在大量的开发工作中,使用到的数据库种类很多。而MySQL是其中比较常用的一种,很多开发人员需要使用MySQL作为数据源来操作数据。在使用Springboot + JSP + Spring Security框架进行开发时,需要配置MySQL数据源,本文将详细介绍如何在MySQL中配置数据源。
阅读更多:MySQL 教程
准备工作
首先需要在maven中配置MySQL依赖。打开项目的pom.xml文件,添加以下依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.5</version>
</dependency>
接下来在MySQL中先创建一个名为DBDemo的数据库,并创建一个名为user_info的表:
CREATE DATABASE DBDemo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE DBDemo;
CREATE TABLE user_info(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);
在此之后,即可进行MySQL数据源的配置。
数据源配置
1.在application.properties文件中配置MySQL数据源
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/DBDemo?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
这里的spring.datasource.url就是MySQL数据库的连接地址,其中localhost表示使用本地数据库,3306是MySQL数据库的默认端口号,而DBDemo则是在前面MySQL中创建的数据库的名字。
2.使用Java配置方式配置MySQL数据源
@Configuration
@EnableJpaRepositories(basePackages = "com.example.demo")
@EntityScan(basePackages = "com.example.demo.entity")
public class DataSourceConfig {
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
}
这里的@Configuration表示这是一个配置类,@EnableJpaRepositories和@EntityScan分别表示开启Spring Data JPA和实体类扫描,@Bean表示生成Bean,@Primary表示当出现多个同类型的Bean进行注入时,优先选择该Bean。
配置完成后即可进行数据操作,以下为一个常用的数据访问类示例:
@Repository
@Transactional
public class UserInfoDAO {
@Autowired
private EntityManager entityManager;
public void save(UserInfo userInfo) {
entityManager.persist(userInfo);
}
public PageInfo<UserInfo> findAll(int page, int pageSize) {
String hql = "FROM UserInfo";
TypedQuery<UserInfo> query = entityManager.createQuery(hql, UserInfo.class);
int totalRecord = query.getResultList().size();
Pageable pageable = new PageRequest(page - 1, pageSize, Sort.Direction.ASC, "id");
query.setFirstResult((page - 1) * pageSize);
query.setMaxResults(pageSize);
List<UserInfo> list = query.getResultList();
return new PageInfo<>(page, pageSize, totalRecord, list);
}
public UserInfo findByUsername(String username) {
String hql = "FROM UserInfo u WHERE u.username=:username";
TypedQuery<UserInfo> query = entityManager.createQuery(hql, UserInfo.class);
query.setParameter("username", username);
List<UserInfo> list = query.getResultList();
if(list!=null&&list.size()>0)
return list.get(0);
return null;
}
}
结论
以上就是在Springboot + JSP + Spring Security框架下使用MySQL数据库的配置方法。需要注意的是,在使用之前需要先准备好了MySQL数据库,才能配置数据源。在实际开发中,也需要根据实际情况进行一些调整。希望本文对大家有所帮助。
极客笔记