Web 基础 之 Eclipse 中 SpringBoot 整合 SSM 环境 配置文件版和 注解版 两种版本方法使用的简单整理
目录
Web 基础 之 Eclipse 中 SpringBoot 整合 SSM 环境 配置文件版和 注解版 两种版本方法使用的简单整理
三、SpringBoot 整合 SSM 环境 ,使用配置文件的方法
四、SpringBoot 整合 SSM 环境 ,使用注解的方法
一、简单介绍
Web 开发的一些知识整理,方便后期遇到类似的问题,能够及时查阅使用。
本节介绍,Web 开发 中Eclipse 中 SpringBoot 整合 SSM 环境 配置文件版和 注解版 两种版本方法使用的简单整理,其实主要区别整理在于调用数据库的方法上,配置文件的需要引入 c3p0;两个整合环境版本放在一起,可以直观感受两者区别,根据需要选择合适版本使用即可,如果有不足之处,欢迎指出,或者你有更好的方法,欢迎留言。
二、相关环境
1、Windows 10
2、Eclipse 2021-06 (4.20.0)
3、apache-maven-3.8.3
4、MySQL 8.0.23 + MySQL Workbench 8.0 CE
三、SpringBoot 整合 SSM 环境 ,使用配置文件的方法
1、打开网址,创建一个 maven 工程,添加 Spring Web 、Mybatis Framework、MySQL Driver
(注意:spring boot 版本根据需要选取,java 根据自己实际安装版本选择,其他也根据自己需要设置添加即可 )
2、设置好了,下载工程到本地,然后解压
3、打开 Eclipse ,File - Import 导入 maven 工程
4、 等待一会儿,就好导入,并显示
(没有的话,可能还在加载,或者切换下工程状态,或者重启下 Eclipse)
5、打开 MySQL Workbench ,新建一个数据库和表,并且添加些数据,便于简单测试使用
6、在工程 src/main/java 下添加一些 package ,用来简单分类管理一些 脚本
7、在 entity package 下添加 User 数据模型,与之前 MySQL 创建的表的数据项目对上
package com.example.maven_srpingboot_ssm_config_file_test.entity;
/*
* 注意 :class 参数与数据库表对应上
* */
public class User {
public Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
8、在 dao package 下创建 接口脚本 UserDao,这里是可以对应连接数据库,进行操作的接口脚本(这里为了测试,只添加简单的查询接口)
package com.example.maven_srpingboot_ssm_config_file_test.dao;
import java.util.List;
import com.example.maven_srpingboot_ssm_config_file_test.entity.User;
public interface UserDao {
// 查 select * from user
List<User> searchAllUsers();
}
9、在工程下src/main/resource 下添加一个 mapper 文件夹,添加 xml 文件 UserMapper 和 MybatisConfig
(UserMapper 用来数据库语句的映射(这里简单配置查询数据的语句),MybatisConfig 配置一些参数)
UserMapper.xml (注意 与 dao 脚本对应上)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mubatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:Mapper 对应的 Dao -->
<mapper namespace="com.example.maven_srpingboot_ssm_config_file_test.dao.UserDao">
<!-- select:查询子句
id:对应的方法名称
resultType:返回的类型
-->
<select id="searchAllUsers" resultType="com.example.maven_srpingboot_ssm_config_file_test.entity.User">
select * from user
</select>
</mapper>
MybatisConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 获取主键自增的这个值 -->
<setting name="useGeneratedKeys" value="true"/>
<!-- 开启驼峰命名的转化 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
10、在 pom.xml 中引入 c3p0
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>maven_srpingboot_ssm_config_file_test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>maven_srpingboot_ssm_config_file_test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 引入 c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
11、在 config package 添加一个脚本,配置数据库等相关信息,关键是与一些数据构建各个关系,关键脚本(注意:一些数据库相关替换成你的数据库相关)
package com.example.maven_srpingboot_ssm_config_file_test.config;
import java.beans.PropertyVetoException;
import java.io.IOException;
import javax.sql.DataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import com.mchange.v2.c3p0.ComboPooledDataSource;
@Configuration
// mapper 的扫描路径
@MapperScan("com.example.maven_srpingboot_ssm_config_file_test.dao")
public class SQLConfig {
@Autowired
private DataSource dataSource; // 名称 与 @Bean(name="dataSource") 对上
// dataSource
@Bean(name="dataSource")
public ComboPooledDataSource createDataSource() throws PropertyVetoException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// driver
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
// url
dataSource.setJdbcUrl("jdbc:mysql://::1:3306/maven_ssm?serverTimezone=UTC&characterEncoding=utf-8&useSSL=true");
// username
dataSource.setUser("root");
// password
dataSource.setPassword("root123");
dataSource.setAutoCommitOnClose(false);
return dataSource;
}
// SessionFactory
@Bean(name="sqlSessionFactory")
public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
// 加载主配置文件 mybatis-config.xml
bean.setConfigLocation(new ClassPathResource("MybatisConfig.xml"));
// Mapper 扫描路径
PathMatchingResourcePatternResolver reslover = new PathMatchingResourcePatternResolver();
String packageSearchPath = "classpath*:/mapper/**.xml";
bean.setMapperLocations(reslover.getResources(packageSearchPath));
// 配置实体包
bean.setTypeAliasesPackage("com.example.maven_srpingboot_ssm_config_file_test.entity");
// dataSource
bean.setDataSource(dataSource);
return bean;
}
}
12、在 controller package 添加一个测试脚本 TestController,用来测试配置文件方法,调用数据库是否配置成功,这里简单查询数据库信息
package com.example.maven_srpingboot_ssm_config_file_test.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.maven_srpingboot_ssm_config_file_test.dao.UserDao;
import com.example.maven_srpingboot_ssm_config_file_test.entity.User;
@RestController
public class TestController {
@Autowired
private UserDao mUserDao;
@RequestMapping("/test")
public String testSearchAllUsers() {
List<User> users = mUserDao.searchAllUsers();
for(User user : users) {
System.out.println(user.toString());
}
return "testSearchAllUsers";
}
}
13、如图,选择启动脚本,右键 Run As, 运行 maven 工程
14、在网页输入 localhost:8080/test,控制台 Console 打印出数据库的信息
15、到此 SpringBoot 整合 SSM 环境 ,使用配置文件的方法基本完毕
四、SpringBoot 整合 SSM 环境 ,使用注解的方法
1、打开网址,创建一个 maven 工程,添加 Spring Web 、Mybatis Framework、MySQL Driver
(注意:spring boot 版本根据需要选取,java 根据自己实际安装版本选择,其他也根据自己需要设置添加即可 )
2、设置好了,下载工程到本地,然后解压
3、打开 Eclipse ,File - Import 导入 maven 工程
4、 等待一会儿,就好导入,并显示
(没有的话,可能还在加载,或者切换下工程状态,或者重启下 Eclipse)
5、打开 MySQL Workbench ,新建一个数据库和表,并且添加些数据,便于简单测试使用
(使用上个案例的数据)
6、在工程 src/main/resources 中的application.properites 添加数据库信息
(注意把文件改为 UTF-8 ,数据库关键信息替换成你数据库信息)
# 数据库 url (指定具体数据库)
spring.datasource.url=jdbc:mysql://::1:3306/maven_ssm?serverTimezone=UTC&characterEncoding=utf-8&useSSL=true
# 数据库登录用户名
spring.datasource.username=root
# 数据库登录密码
spring.datasource.password=root123
# 数据库驱动类名
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
7、在工程 src/main/java 下添加一些 package ,用来简单分类管理一些 脚本
8、在 entity package 下添加 User 脚本
(注意:User 参数与 数据库表对应上)
9、在 dao package 下添加 UserMapper 接口文件,用来映射到数据库的查询语言
(这里测试只添加查询数据库信息)
package com.example.maven_srpingboot_ssm_comment_test.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import com.example.maven_srpingboot_ssm_comment_test.entity.User;
@Mapper
public interface UserMapper {
@Select("select * from user")
List<User> searchAllUsers();
}
10、在 controller package 添加一个测试脚本 TestController,用来测试配置文件方法,调用数据库是否配置成功,这里简单查询数据库信息
package com.example.maven_srpingboot_ssm_comment_test.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.maven_srpingboot_ssm_comment_test.dao.UserMapper;
import com.example.maven_srpingboot_ssm_comment_test.entity.User;
@RestController
public class TestController {
@Autowired
private UserMapper mUserMapper;
@RequestMapping("/test")
public String testSearchAllUsers() {
List<User> users = mUserMapper.searchAllUsers();
for(User user : users) {
System.out.println(user.toString());
}
return "testSearchAllUsers";
}
}
11、如图,选择启动脚本,右键 Run As, 运行 maven 工程
12、在网页输入 localhost:8080/test,控制台 Console 打印出数据库的信息
13、到此 SpringBoot 整合 SSM 环境 ,使用注解的方法实现基本完毕