使用ssm框架实现简单的增删改查的实例
时间: 2024-05-01 11:23:20 浏览: 9
好的,下面我就给你介绍一下如何使用 SSM 框架来实现简单的增删改查。
首先,你需要准备好开发环境,包括 JDK、MySQL 数据库、Maven 和 Eclipse 等软件。接下来,按照以下步骤进行操作:
1. 创建一个 Maven 项目,在 pom.xml 文件中添加 SSM 框架的依赖:
```
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.4</version>
</dependency>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
```
2. 创建数据库表,例如:
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
`email` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
```
3. 创建 JavaBean,例如:
```
public class User {
private int id;
private String name;
private int age;
private String email;
// 省略 getter 和 setter 方法
}
```
4. 创建 Mapper 接口和 XML 文件,例如:
```
public interface UserMapper {
void addUser(User user);
void deleteUser(int id);
void updateUser(User user);
User getUserById(int id);
List<User> getAllUsers();
}
```
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<insert id="addUser" parameterType="User">
INSERT INTO `user` (`name`, `age`, `email`) VALUES (#{name}, #{age}, #{email})
</insert>
<delete id="deleteUser" parameterType="int">
DELETE FROM `user` WHERE `id` = #{id}
</delete>
<update id="updateUser" parameterType="User">
UPDATE `user` SET `name` = #{name}, `age` = #{age}, `email` = #{email} WHERE `id` = #{id}
</update>
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM `user` WHERE `id` = #{id}
</select>
<select id="getAllUsers" resultType="User">
SELECT * FROM `user`
</select>
</mapper>
```
5. 创建 Service 接口和实现类,例如:
```
public interface UserService {
void addUser(User user);
void deleteUser(int id);
void updateUser(User user);
User getUserById(int id);
List<User> getAllUsers();
}
```
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void addUser(User user) {
userMapper.addUser(user);
}
@Override
public void deleteUser(int id) {
userMapper.deleteUser(id);
}
@Override
public void updateUser(User user) {
userMapper.updateUser(user);
}
@Override
public User getUserById(int id) {
return userMapper.getUserById(id);
}
@Override
public List<User> getAllUsers() {
return userMapper.getAllUsers();
}
}
```
6. 创建 Controller 类,例如:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/add")
public void addUser(@RequestBody User user) {
userService.addUser(user);
}
@DeleteMapping("/delete/{id}")
public void deleteUser(@PathVariable int id) {
userService.deleteUser(id);
}
@PutMapping("/update")
public void updateUser(@RequestBody User user) {
userService.updateUser(user);
}
@GetMapping("/get/{id}")
public User getUserById(@PathVariable int id) {
return userService.getUserById(id);
}
@GetMapping("/getall")
public List<User> getAllUsers() {
return userService.getAllUsers();
}
}
```
7. 配置 Spring 和 MyBatis,例如:
```
@Configuration
@MapperScan("com.example.mapper")
public class AppConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dataSource.setUsername("root");
dataSource.setPassword("password");
return dataSource;
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
return sessionFactory;
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
}
```
最后,运行项目,访问 http://localhost:8080/user/getall 可以看到所有的用户信息。你可以根据需要修改代码,实现更多功能。