ssm重新开发新闻网站

一、完整项目结构

       

二、SSM框架整合

详细整合过程请看:https://blog.csdn.net/h2503652646/article/details/89675123

上面只是一个SSM整合的Demo,利用mybatis-generator逆向生成的方法并不完整,我们可以进行修改生成所有的方法,方便后续网站功能补充。完整的generatorConfig.xml配置如下。

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE generatorConfiguration  
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
<generatorConfiguration>  
<!-- 数据库驱动-->  
<!-- 因为使用的maven方式让MyBatis Generator生成代码,所以不需要classPathEntry标签,-->
   <!--  <classPathEntry  location="mysql-connector-java-5.1.25-bin.jar"/>   -->
    <context id="DB2Tables"  targetRuntime="MyBatis3">  
        <commentGenerator>  
            <property name="suppressDate" value="true"/>  
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
            <property name="suppressAllComments" value="true"/>  
        </commentGenerator>  
        <!--数据库链接URL,用户名、密码 -->  
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/dbnews" userId="root" password="root">  
        </jdbcConnection>  
        <javaTypeResolver>  
            <property name="forceBigDecimals" value="false"/>  
        </javaTypeResolver>  
        <!-- 生成模型的包名和位置-->  
        <javaModelGenerator targetPackage="com.hedong.pojo" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true"/>  
            <property name="trimStrings" value="true"/>  
        </javaModelGenerator>  
        <!-- 生成映射文件的包名和位置-->  
        <sqlMapGenerator targetPackage="com.hedong.mapping" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true"/>  
        </sqlMapGenerator>  
        <!-- 生成DAO的包名和位置-->  
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.hedong.dao" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true"/>  
        </javaClientGenerator>  
        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名
        enableInsert(默认true):指定是否生成insert语句;
        enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
        enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
        enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
        enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
        enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
        enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
        enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
        -->  
        <table tableName="news_tb" domainObjectName="News" 
          enableInsert="true" 
          enableSelectByPrimaryKey="true" 
          enableSelectByExample="true" 
          enableUpdateByPrimaryKey="true" 
          enableDeleteByPrimaryKey="true"
          enableDeleteByExample="true" 
          enableCountByExample="true" 
          enableUpdateByExample="true" 
        >
        </table>
        
        <table tableName="login_tb" domainObjectName="User" 
          enableInsert="true" 
          enableSelectByPrimaryKey="true" 
          enableSelectByExample="true" 
          enableUpdateByPrimaryKey="true" 
          enableDeleteByPrimaryKey="true"
          enableDeleteByExample="true" 
          enableCountByExample="true" 
          enableUpdateByExample="true" 
        >
        </table>
    </context>  
</generatorConfiguration> 

三、控制类代码

SSM框架整合好以后就会发现我们不用再去管如何连接数据库,如何写sql语句了,我们要做的就是用它自动生成的各种方法连接数据库进行增删改查,然后将结果返回到前端显示就行了。

operateController.java

package com.hedong.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.hedong.pojo.News;
import com.hedong.pojo.User;
import com.hedong.service.INewsService;
import com.hedong.service.IUserService;

@Controller  
@RequestMapping("/news")  
public class operateController {
	@Resource
	private IUserService userService;
	@Resource
	private INewsService newsService;
	
	@RequestMapping("showNews")  
    public String goPage(HttpServletRequest request,Model model){  
    	//获取flag参数,判断是否是管理员进入页面
		String flag=request.getParameter("flag");
		
		List<News> news=this.newsService.getAllNews();	
        model.addAttribute("news", news); 
        
		if(flag!=null && flag.equals("admin")) {
			//若是管理员,则进入管理页面
			return "ShowList.jsp";
		}else{
			//否则进入新闻首页
			return "NewsCenter.jsp";  
		}
		     
    }
	
	@RequestMapping("Login")
    public String Login() {
    	return "Login.jsp";
    }
	
	@RequestMapping("operateNews")
    public String operateNews(HttpServletRequest request) {
		//获取action参数,判断是显示增加新闻页面还是编辑新闻页面
		String action=request.getParameter("action");
		if(action.equals("add")) {
			return "operateNews.jsp?action=add";
		}else{
			return "operateNews.jsp?action=edit";
		}
    	
    }
	
	@RequestMapping("operate")
    public String OperateCenter(HttpServletRequest request,HttpServletResponse response,Model model) throws IOException, ParseException, ServletException { 	
		
		//获取参数
		PrintWriter out=response.getWriter();
		String action=request.getParameter("action");
		String Account=request.getParameter("userName");
		String Password=request.getParameter("passWord");
		String myType=request.getParameter("newsType");
		String myTitle=request.getParameter("newsTitle");
		String myContent=request.getParameter("editorValue");
		String writer=request.getParameter("newsWriter");
		String myID=request.getParameter("newsID");
		
		if(action.equals("login")) {
			User user=this.userService.getUserById(Account);
			if(user.getPassword().equals(Password)) {
				out.write("1");
			}else if(Account==""||Password==""){
				out.write("2");
			}else {
				out.write("3");
			}
				out.close();
				return "";
				
		}else if(action.equals("add")) {
			
			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
			String time= df.format(new Date());// new Date()为获取当前系统时间
			//生成新闻对象
			News news=new News();
			news.setNewstitle(myTitle);
			news.setNewstype(myType);
			news.setNewscontent(myContent);
			news.setNewswriter(writer);
			news.setNewstime(df.parse(time));
			
			int result=this.newsService.insertNews(news);//调用服务层添加新闻
			response.sendRedirect("showNews?flag=admin");//重新打开新闻管理页面
			if(result>0) {
				System.out.println("add news success!");
			}
			return "";
			
		}else if(action.equals("delete")) {
			
			int result=this.newsService.deleteNews(Integer.parseInt(myID));//调用服务层删除新闻
			response.sendRedirect("showNews?flag=admin");//重新打开新闻管理页面
			if(result>0) {
				System.out.println("delete news success!");
			}
			return "";
			
		}else if(action.equals("edit")) {
			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
			String time= df.format(new Date());// new Date()为获取当前系统时间
			//生成新闻对象
			News news=new News();
			news.setNewsid(Integer.parseInt(myID));//因使用updateByPrimaryKeySelective()函数,修改必须携带id主键
			news.setNewstitle(myTitle);
			news.setNewstype(myType);
			news.setNewscontent(myContent);
			news.setNewswriter(writer);
			news.setNewstime(df.parse(time));
			
			int result=this.newsService.updateNews(news);//调用服务层修改新闻
			response.sendRedirect("showNews?flag=admin");//重新打开新闻管理页面
			if(result>0) {
				System.out.println("update news success!");
			}
			return "";

			
		}else if(action.equals("select")) {
			//获取参数flag,若为edit则将新闻信息发送到新闻编辑页面,若为check则发送带新闻详情页面
			String flag=request.getParameter("flag");
			
			News selectNew=this.newsService.selectNews(Integer.parseInt(myID));//调用服务层查询指定新闻
			model.addAttribute("selectNew", selectNew);
			if(flag.equals("edit")) {
				return "operateNews.jsp?action=edit";
			}else {
				return "NewsInfo.jsp";
			}
			
			
		}else {
			return "";
		}
    	
    	
    }

}

四、结果截图

 

posted @ 2019-05-01 19:52  DoNg_一隅  阅读(858)  评论(0编辑  收藏  举报