给我一个用Spring MVC和mybatis的增加数据库名为library、表名称为message中信息的案例
- 创建数据库
首先,我们需要在MySQL中创建一个名为library的数据库:
CREATE DATABASE library;
- 创建表
然后,在library数据库中创建一个名为message的表:
CREATE TABLE message (
id INT PRIMARY KEY AUTO_INCREMENT,
content VARCHAR(255) NOT NULL
);
- 配置数据库连接和mybatis
在Spring MVC项目中,我们需要在web.xml中配置DispatcherServlet,并在其配置文件中配置数据库连接和mybatis。
web.xml配置:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-mvc.xml配置:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/library" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="messageMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
<property name="mapperInterface" value="com.example.mapper.MessageMapper"/>
</bean>
其中,dataSource配置了数据库连接信息,sqlSessionFactory配置了mybatis的SqlSessionFactory,messageMapper配置了我们要使用的Mapper接口MessageMapper。
- 创建实体类和Mapper接口
我们需要创建一个实体类Message和一个对应的Mapper接口MessageMapper,用于操作message表。
Message.java:
public class Message {
private Integer id;
private String content;
// getter和setter方法省略
}
MessageMapper.java:
public interface MessageMapper {
void insertMessage(Message message);
}
- 编写Controller和View
最后,我们需要编写一个Controller和一个View,用于增加信息到message表中。
MessageController.java:
@Controller
@RequestMapping("/message")
public class MessageController {
@Autowired
private MessageMapper messageMapper;
@RequestMapping("/add")
public String addMessage(@RequestParam("content") String content) {
Message message = new Message();
message.setContent(content);
messageMapper.insertMessage(message);
return "redirect:/message/list";
}
@RequestMapping("/list")
public String listMessage(Model model) {
List<Message> messages = messageMapper.selectAll();
model.addAttribute("messages", messages);
return "list";
}
}
其中,addMessage方法用于向message表中插入一条信息,listMessage方法用于展示message表中的所有信息。
list.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Message List</title>
</head>
<body>
<h1>Message List</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>Content</th>
</tr>
</thead>
<tbody>
<c:forEach var="message" items="${messages}">
<tr>
<td>${message.id}</td>
<td>${message.content}</td>
</tr>
</c:forEach>
</tbody>
</table>
<hr/>
<form action="${pageContext.request.contextPath}/message/add" method="post">
<label>Content:</label>
<input type="text" name="content"/>
<input type="submit" value="Add"/>
</form>
</body>
</html>
其中,form表单用于输入信息并提交到addMessage方法中,展示信息使用了JSTL的forEach标签。
- 测试
现在,我们可以启动应用程序并访问http://localhost:8080/message/list,添加信息到message表中,并查看所有信息
原文地址: http://www.cveoy.top/t/topic/gE40 著作权归作者所有。请勿转载和采集!