springmvc mybatis增删改查 
时间: 2023-04-20 09:01:53 浏览: 46
SpringMVC和MyBatis是两个常用的Java框架,可以结合使用进行增删改查操作。
增加数据:
在SpringMVC中,可以使用@Controller注解来定义一个控制器类,使用@RequestMapping注解来定义请求映射。在控制器类中,可以使用@Autowired注解来注入MyBatis的Mapper接口,然后调用Mapper接口中的insert方法来插入数据。
删除数据:
在SpringMVC中,可以使用@RequestMapping注解来定义请求映射,然后在控制器类中调用MyBatis的Mapper接口中的delete方法来删除数据。
修改数据:
在SpringMVC中,可以使用@RequestMapping注解来定义请求映射,然后在控制器类中调用MyBatis的Mapper接口中的update方法来修改数据。
查询数据:
在SpringMVC中,可以使用@RequestMapping注解来定义请求映射,然后在控制器类中调用MyBatis的Mapper接口中的select方法来查询数据。查询结果可以返回给前端页面或者其他业务逻辑处理。
相关问题
springmvc增删改查
在Spring MVC中,可以利用Spring MVC、Spring和MyBatis这三个框架来进行增删改查操作。首先,在Spring配置文件中通过配置`<mvc:annotation-driven />`,Spring会自动帮我们注册相应的bean,不需要我们手动注册这些bean。
在具体的代码实现中,可以使用注解来声明不同的组件。通过`@Controller`注解来声明处理请求的Controller组件,通过`@Service`注解来声明Service组件,通过`@Repository`注解来声明Dao组件,通过`@Component`注解来泛指其他不好归类的组件。
为了将URL和对应的类方法绑定,可以使用`@RequestMapping`注解,在@RequestMapping注解中指定URL路径,Spring MVC会根据这个路径来决定调用哪个方法处理请求。
在具体的Controller类的方法中,可以使用相应的MyBatis方法来进行数据库的增删改查操作,例如使用`insert`方法进行插入操作,使用`delete`方法进行删除操作,使用`update`方法进行更新操作,使用`select`方法进行查询操作。具体的操作可以根据业务需求和数据库设计进行相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [springMvc增删改查](https://download.csdn.net/download/peak91/9944690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Spring MVC 实现增删改查](https://blog.csdn.net/CHBSRZF/article/details/48833419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
SpringMvc+resultful+mybatis+layui实现商品的增删改查
好的,这里是一个基于SpringMVC、MyBatis、Layui的商品增删改查的示例代码,你可以参考一下:
### 1. 创建商品实体类
```java
public class Product {
private Integer id;
private String name;
private Double price;
// getter和setter方法省略
}
```
### 2. 创建商品DAO接口
```java
public interface ProductDao {
List<Product> findAll();
Product findById(Integer id);
void save(Product product);
void update(Product product);
void deleteById(Integer id);
}
```
### 3. 创建商品DAO实现类
```java
@Repository
public class ProductDaoImpl implements ProductDao {
@Autowired
private SqlSession sqlSession;
@Override
public List<Product> findAll() {
return sqlSession.selectList("findAll");
}
@Override
public Product findById(Integer id) {
return sqlSession.selectOne("findById", id);
}
@Override
public void save(Product product) {
sqlSession.insert("save", product);
}
@Override
public void update(Product product) {
sqlSession.update("update", product);
}
@Override
public void deleteById(Integer id) {
sqlSession.delete("deleteById", id);
}
}
```
### 4. 创建商品控制器
```java
@Controller
@RequestMapping("/product")
public class ProductController {
@Autowired
private ProductDao productDao;
@GetMapping("/list")
public String list(Model model) {
List<Product> productList = productDao.findAll();
model.addAttribute("productList", productList);
return "product/list";
}
@GetMapping("/add")
public String add() {
return "product/add";
}
@PostMapping("/save")
public String save(Product product) {
productDao.save(product);
return "redirect:/product/list";
}
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Integer id, Model model) {
Product product = productDao.findById(id);
model.addAttribute("product", product);
return "product/edit";
}
@PostMapping("/update")
public String update(Product product) {
productDao.update(product);
return "redirect:/product/list";
}
@GetMapping("/delete/{id}")
public String delete(@PathVariable("id") Integer id) {
productDao.deleteById(id);
return "redirect:/product/list";
}
}
```
### 5. 创建商品列表页面
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>商品列表</title>
<link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md12">
<table class="layui-table">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>价格</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<#list productList as product>
<tr>
<td>${product.id}</td>
<td>${product.name}</td>
<td>${product.price}</td>
<td>
<a href="/product/edit/${product.id}" class="layui-btn layui-btn-sm layui-btn-normal">编辑</a>
<a href="/product/delete/${product.id}" class="layui-btn layui-btn-sm layui-btn-danger">删除</a>
</td>
</tr>
</#list>
</tbody>
</table>
<a href="/product/add" class="layui-btn layui-btn-sm layui-btn-normal">添加商品</a>
</div>
</div>
</div>
<script src="/layui/layui.js"></script>
</body>
</html>
```
### 6. 创建添加商品页面
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加商品</title>
<link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md12">
<form class="layui-form" action="/product/save" method="post">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input type="text" name="name" lay-verify="required" autocomplete="off" placeholder="请输入名称" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">价格</label>
<div class="layui-input-block">
<input type="text" name="price" lay-verify="required" autocomplete="off" placeholder="请输入价格" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">提交</button>
<a href="/product/list" class="layui-btn layui-btn-primary">返回</a>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="/layui/layui.js"></script>
</body>
</html>
```
### 7. 创建编辑商品页面
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>编辑商品</title>
<link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-md12">
<form class="layui-form" action="/product/update" method="post">
<input type="hidden" name="id" value="${product.id}">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input type="text" name="name" lay-verify="required" autocomplete="off" placeholder="请输入名称" class="layui-input" value="${product.name}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">价格</label>
<div class="layui-input-block">
<input type="text" name="price" lay-verify="required" autocomplete="off" placeholder="请输入价格" class="layui-input" value="${product.price}">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">提交</button>
<a href="/product/list" class="layui-btn layui-btn-primary">返回</a>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="/layui/layui.js"></script>
</body>
</html>
```
### 8. 配置SpringMVC和MyBatis
在SpringMVC中,需要配置视图解析器、静态资源访问、文件上传等。这里只提供一个简单的配置示例:
```xml
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 静态资源访问 -->
<mvc:resources mapping="/layui/**" location="/layui/" />
<!-- 文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<property name="maxUploadSize" value="10485760" />
</bean>
<!-- MyBatis -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="com.example.model" />
<property name="mapperLocations" value="classpath*:com/example/dao/*.xml" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.dao" />
</bean>
```
### 9. 启动应用程序
在浏览器中输入http://localhost:8080/product/list访问商品列表页面,即可进行商品的增删改查操作。
相关推荐










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页面也类似,只需要根据表单数据的不同来进行相应的处理即可。


