简单做一个个人博客系统,以博客中的日记模块为例。后台使用easyui。
数据库:personal_blog
日记表:diary
字段:
创建Maven工程
pom.xml文件<dependencies>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!--日志包-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<!--spring数据库-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
<!--aop-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
<!--spring-mybatis整合包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--spring MVC相关包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
<!--JSTL的目的就是在JSTL页面中美观的输出数据,它内置了很多标签库,包括很多逻辑判断,迭代,函数,数据库标签-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.2.1</version>
</dependency>
<!-- Jackson Json处理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<!--文件上传包-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
</dependencies>
<!--构建项目需要的信息-->
<build>
<finalName>ssm-blog-admin</finalName>
<!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。-->
<!--maven工程默认只导入resources下的配置文件 -->
<resources>
<!--这个元素描述了项目相关或测试相关的所有资源路径,-->
<!--导入mybatis-mapper.xml文件 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<!--扫描存放资源的路径 -->
<directory>src/main/resources</directory>
<!--包含的内容列表 -->
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
实体类pojo
Diary.java
public class Diary {
private Integer id; //主键ID
private Integer userId; //用户ID
private Date createdDate; //日记创建时间
private String content; //日记内容
private String title; //日记标题
private int status; //身份权限,1:有效,0:无效
private String nickname; //昵称
private AdminUser adminUser; //管理员
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public AdminUser getAdminUser() {
return adminUser;
}
public void setAdminUser(AdminUser adminUser) {
this.adminUser = adminUser;
}
}
DAO层
DiaryDAO.java
public interface DiaryDAO {
//插入日记方法
void addDiary(Diary diary);
//查询日记列表
List<Diary> getDiaryList(Diary diary);
//根据id查询日记
Diary getDiaryById(int id);
//更新日记
void updateDiary(Diary diary);
//更新用户权限
void updateDiaryStatus(Diary diary);
}
DiaryMapper.xml
<?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">
<!--namespace:对应dao层的全路径-->
<mapper namespace="com.ssm.blog.dao.DiaryDAO">
<!--id:dao层中添加日记方法,parameterType:mapper接口方法接受的参数类型-->
<insert id="addDiary" parameterType="Diary">
INSERT INTO diary(USER_ID,CREATED_DATE,CONTENT,TITLE,STATUS)
VALUES (#{userId},now(),#{content},#{title},#{status})
</insert>
<!--id 下方resultMap,type 对应实体类名-->
<resultMap id="diaryMap" type="Diary">
<!--property对应实体类中属性名,column对应数据库中字段名-->
<id property="id" column="ID"/>
<result property="userId" column="USER_ID"/>
<result property="createdDate" column="CREATED_DATE"/>
<result property="content" column="CONTENT"/>
<result property="title" column="TITLE"/>