ssm整合实现增删改查
时间: 2023-07-07 11:05:06 浏览: 30
SSM是Spring+SpringMVC+MyBatis的缩写,它们分别是流行的Java框架,可以协同作用来实现快速、高效的Web开发。
下面是一个简单的示例,演示如何利用SSM框架来实现增删改查操作:
1. 配置数据源和MyBatis
在Spring的配置文件中,我们需要配置数据源和MyBatis的相关信息。以下是一个示例:
```xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper"/>
</bean>
```
2. 创建实体类和Mapper接口
创建一个实体类,它对应着数据库中的一张表:
```java
public class User {
private Long id;
private String name;
private Integer age;
// 省略getter和setter方法
}
```
接着,创建一个Mapper接口,定义对应的增删改查方法:
```java
public interface UserMapper {
User selectById(Long id);
List<User> selectAll();
void insert(User user);
void update(User user);
void delete(Long id);
}
```
3. 创建Mapper映射文件
在src/main/resources/mapper目录下创建UserMapper.xml文件,定义SQL语句:
```xml
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectById" parameterType="java.lang.Long" resultType="com.example.domain.User">
select * from user where id = #{id}
</select>
<select id="selectAll" resultType="com.example.domain.User">
select * from user
</select>
<insert id="insert" parameterType="com.example.domain.User">
insert into user(name, age) values(#{name}, #{age})
</insert>
<update id="update" parameterType="com.example.domain.User">
update user set name = #{name}, age = #{age} where id = #{id}
</update>
<delete id="delete" parameterType="java.lang.Long">
delete from user where id = #{id}
</delete>
</mapper>
```
4. 创建Service层
创建一个UserService接口,定义对应的增删改查方法:
```java
public interface UserService {
User selectById(Long id);
List<User> selectAll();
void insert(User user);
void update(User user);
void delete(Long id);
}
```
创建一个UserServiceImpl类,实现UserService接口:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User selectById(Long id) {
return userMapper.selectById(id);
}
@Override
public List<User> selectAll() {
return userMapper.selectAll();
}
@Override
public void insert(User user) {
userMapper.insert(user);
}
@Override
public void update(User user) {
userMapper.update(user);
}
@Override
public void delete(Long id) {
userMapper.delete(id);
}
}
```
5. 创建Controller层
创建一个UserController类,处理用户的HTTP请求:
```java
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
@ResponseBody
public User selectById(@PathVariable("id") Long id) {
return userService.selectById(id);
}
@GetMapping("")
@ResponseBody
public List<User> selectAll() {
return userService.selectAll();
}
@PostMapping("")
@ResponseBody
public void insert(@RequestBody User user) {
userService.insert(user);
}
@PutMapping("")
@ResponseBody
public void update(@RequestBody User user) {
userService.update(user);
}
@DeleteMapping("/{id}")
@ResponseBody
public void delete(@PathVariable("id") Long id) {
userService.delete(id);
}
}
```
6. 运行程序
现在,我们可以启动程序,访问http://localhost:8080/user,来获取所有用户的信息;或者访问http://localhost:8080/user/1,来获取ID为1的用户的信息。
当我们使用POST、PUT、DELETE请求时,需要在请求头中添加Content-Type: application/json,以告诉服务器请求数据的格式为JSON。同时,请求体需要传入JSON格式的数据,例如:
```json
{
"name": "Tom",
"age": 20
}
```
这样就可以实现增删改查功能了。
相关推荐




SSM框架是指Spring+SpringMVC+MyBatis三大框架的整合,下面提供一个基于SSM框架的增删改查页面示例:
首先,我们需要在SpringMVC的配置文件中添加视图解析器和处理器映射器:
xml
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
然后,我们需要编写一个Controller类来处理页面请求,并且调用Service层来实现增删改查的操作:
java
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView userList() {
ModelAndView modelAndView = new ModelAndView("userList");
List<User> userList = userService.findAllUsers();
modelAndView.addObject("userList", userList);
return modelAndView;
}
@RequestMapping(value = "/add", method = RequestMethod.GET)
public ModelAndView addUserPage() {
ModelAndView modelAndView = new ModelAndView("addUser");
return modelAndView;
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ModelAndView addUser(User user) {
ModelAndView modelAndView = new ModelAndView("redirect:/user/list");
userService.addUser(user);
return modelAndView;
}
@RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
public ModelAndView deleteUser(@PathVariable("id") int id) {
ModelAndView modelAndView = new ModelAndView("redirect:/user/list");
userService.deleteUser(id);
return modelAndView;
}
@RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
public ModelAndView updateUserPage(@PathVariable("id") int id) {
ModelAndView modelAndView = new ModelAndView("updateUser");
User user = userService.findUserById(id);
modelAndView.addObject("user", user);
return modelAndView;
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
public ModelAndView updateUser(User user) {
ModelAndView modelAndView = new ModelAndView("redirect:/user/list");
userService.updateUser(user);
return modelAndView;
}
}
在以上Controller类的代码中,我们提供了五个请求方法:
1. userList():用于展示所有用户信息的页面;
2. addUserPage():用于展示添加用户信息的页面;
3. addUser(User user):用于接收添加用户信息的表单数据;
4. deleteUser(int id):用于删除指定用户信息;
5. updateUserPage(int id):用于展示修改指定用户信息的页面;
6. updateUser(User user):用于接收修改用户信息的表单数据。
最后,我们需要编写相应的JSP页面来展示数据和表单。比如我们可以编写一个userList.jsp页面来展示所有用户信息:
html
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>User List</title>
</head>
<body>
User List
ID
Name
Age
Gender
Phone
Email
Action
<c:forEach items="${userList}" var="user">
${user.id}
${user.name}
${user.age}
${user.gender}
${user.phone}
${user.email}
Edit
Delete
</c:forEach>
Add User
</body>
</html>
在以上JSP页面的代码中,我们使用了JSTL标签库来遍历所有用户信息,并且提供了“Add User”、“Edit”和“Delete”三个超链接来触发相关请求方法。
其他的JSP页面也类似,只需要根据表单数据的不同来进行相应的处理即可。











