MVC2项目实践
使用MVC model2开发计科院新闻网站,实现新闻的发布,修改,查询等基本功能。
项目结构
与https://www.cnblogs.com/tianhaoqi/p/13124548.html中的项目结构一致,这里不再阐述。其中,将富文本编辑器的相关文件放入了项目的web文件夹中。
主要Java类介绍
DBConn类作为连接数据库和对数据库进行增删改查方法的设计类,其中连接数据库和对数据库进行查询的部分在https://www.cnblogs.com/tianhaoqi/p/13124548.html中已经做过介绍,此处只介绍对数据库进行增删改方法的设计类。
复制代码
//向数据库添加数据,并且需要sqlSession.commit()
public static void insertNews(News news){
SqlSession sqlSession = getSqlSession();
int result =sqlSession.insert("EmployeeMapper.insertNews",news);
sqlSession.commit();
free(sqlSession);
}
//删除新闻
public static int deleteNews(int id){
SqlSession sqlSession = getSqlSession();
int result = sqlSession.delete("EmployeeMapper.deleteNewsById",id);
sqlSession.commit();
free(sqlSession);
return result;
}
//修改新闻信息
public static int upDataNewsById(News news){
SqlSession sqlSession = getSqlSession();
int res = sqlSession.update("EmployeeMapper.upDataNewsById",news);
sqlSession.commit();
free(sqlSession);
return res;
}
复制代码
HelloWorld类作为请求映射的响应和逻辑业务的处理类,即Controller。大部分内容已在上面给出的博客链接中介绍,这里只介绍要补充的部分。
复制代码
@RequestMapping(value = "/AddNews")
public ModelAndView addNews(@RequestParam("title") String title, @RequestParam("author") String author,
@RequestParam("content") String content){
News news = new News();
news.setTitle(title);
news.setAuthor(author);
news.setContent(content);
news.setTime(new Date());
if (!Modify.modify){
//向数据库写入数据
DBConn.insertNews(news);
}
else{
news.setId(Modify.modifyId);
DBConn.upDataNewsById(news);
//重置Modify为默认状态
Modify.modify = false;
Modify.modifyId = -1;
}
return getAllData();
}
@RequestMapping("/delete")
public ModelAndView deleteNews(@RequestParam("id") int id){
DBConn.deleteNews(id);
return getAllData();
}
@RequestMapping("/upData")
public ModelAndView upDataMethod(@RequestParam("id") int id){
//数据库获取待修改的新闻信息
News news = DBConn.getNewsById(id);
//将数据发送至新闻编辑页面进行填充
ModelAndView modelAndView = new ModelAndView("addNews");
modelAndView.addObject("updata",news);
//设置修改操作的标识
Modify.modify = true;
//设置修改的新闻id
Modify.modifyId = id;
return modelAndView;
}
复制代码
Employee和News为对应用户和新闻属性的JavaBean。
配置文件介绍
myXML/EmployeeMapper.xml作为mybatis的mapper的SQL语句映射。同样补充在https://www.cnblogs.com/tianhaoqi/p/13124548.html中未介绍的部分。
复制代码
insert into news (title, author, content, time) values (#{title},#{author},#{content},#{time})
delete from news where id = #{id}
update news set title=#{title},author=#{author},content=#{content} where id = #{id}
复制代码
数据库连接操作配置文件已在给出的博客链接的博客中进行过介绍,不再阐述。
运行效果展示
登录页面和新闻查看页面已经在给出的博客中介绍,这里只介绍新闻添加页面。