ssm框架简易记事本
时间: 2024-12-27 12:28:23 浏览: 37
### 使用 SSM 框架构建简易记事本应用
#### 项目结构概述
为了更好地理解如何使用SSM框架(Spring, Spring MVC, MyBatis)来创建一个简易记事本应用程序,先了解项目的整体架构。该程序主要分为前端页面展示、业务逻辑处理以及数据持久化三个层次。
#### 创建 Maven 工程
通过Maven管理依赖关系简化了开发流程[^2]。新建一个名为`notebook-app`的Maven工程,并配置pom.xml文件加入必要的库支持:
```xml
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- MySQL Connector Java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
...
</dependencies>
```
#### 配置数据库连接池
编辑applicationContext-datasource.xml文件设置数据源参数以便MyBatis能够操作MySQL数据库中的笔记表单。
```xml
<!-- applicationContext-datasource.xml -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
```
#### 编写实体类 Note.java
定义用于表示每条记录的对象模型,包括ID、标题和内容字段。
```java
public class Note {
private Integer id;
private String title;
private String content;
// Getters and Setters...
}
```
#### Mapper接口设计
编写NoteMapper接口及其对应的XML映射文件完成CRUD功能。
```java
// NoteMapper.java
@Mapper
public interface NoteMapper {
List<Note> findAll();
void insert(Note note);
void update(Note note);
void deleteById(Integer id);
}
<!-- NoteMapper.xml -->
<mapper namespace="com.example.mapper.NoteMapper">
<select id="findAll" resultType="com.example.model.Note">
SELECT * FROM notes ORDER BY created_at DESC LIMIT #{limit};
</select>
<insert id="insert" parameterType="com.example.model.Note">
INSERT INTO notes (title,content) VALUES(#{title},#{content});
</insert>
...
</mapper>
```
#### Service 层实现
封装具体的业务规则和服务调用过程。
```java
@Service
@Transactional
public class NoteService {
@Autowired
private NoteMapper mapper;
public List<Note> listAll() {
return mapper.findAll();
}
public void addNew(String title, String text){
Note newRecord = new Note(null,title,text);
mapper.insert(newRecord);
}
// Other methods like edit/delete etc.
}
```
#### Controller 控制器层
负责接收HTTP请求并将响应返回给客户端浏览器。
```java
@Controller
@RequestMapping("/notes")
public class NotesController {
@Autowired
private NoteService service;
@GetMapping("")
public ModelAndView index(ModelAndView mav) {
mav.setViewName("index");
mav.addObject("list",service.listAll());
return mav;
}
@PostMapping("/add")
public String create(@RequestParam(value="title")String title,@RequestParam(value="text")String text){
service.addNew(title,text);
return "redirect:/notes";
}
}
```
#### 前端视图模板
最后准备HTML/CSS/JavaScript静态资源文件夹下的相应网页布局样式脚本等素材,确保用户界面友好美观易用。
阅读全文