利用IDEA实现SSM框架对于数据库简单的增删查改(一)

在JAVA开发时,Spring框架是必须的,而Struts2框架是MVC模式的一个经典应用框架。Mybatis框架作为持久层的框架,虽然需要自己编写SQL语句,但是其对高并发高响应的支持,以及对动态SQL和动态绑定的支持使其脱颖而出。所以SSM框架在应用开发中使用较多,替代了以前的SSH框架

开发工具

IntelliJ IDEA Ultimate 2018.2.2
Apache-tomcat-7.0
JDK 1.8.0_121
MySQL 5.7
Maven 3.6.0

工程结构

利用IDEA实现SSM框架对于数据库简单的增删查改(一)_第1张图片

开发骨架的搭建

新建项目

点击File -> New -> Project -> Maven -> 勾选 Create from archetype -> 选择 maven-archetype-webapp (注意:此处不要错选成上面的cocoom-22-archetype-webapp)
下一步输入在弹出的new project 选项卡中填写GroupId和Artifactid,这两项分别代表项目组织唯一的标识符和项目的唯一的标识符,如果只是个人开发可以随便填写。之后一直next直到finish。

新建完之后需要在跟文件夹里新建target文件夹,并把文件夹类型设置为excluded类型,用来存放程序的发布代码。(运行时会自动生成内容)
利用IDEA实现SSM框架对于数据库简单的增删查改(一)_第2张图片
添加所需文件
之后在main文件夹中新建java文件夹,将其设置为Source Root类型,方法同上,用来存放java源代码。
之后在java文件夹下分别新建新建“com”,再在com包下新建四个包,分别命名为:bean,dao,service,controller

  • bean包中代码用来存放与数据库交互的JavaBean组件,类必须是具体的和公共的,并且具有无参数的构造器。 JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。(个人理解为建立与数据库中数据类型相同的类,在之后与数据库交互时提供对象)
  • dao包定义接口,用来实现DAO(DataAccessobjects)模式,实现位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
  • service包是用来定义接口,包含系统所提供的功能。(之后还会在service包下再新建impl包实现具体操作)。
  • controller包是控制器,负责接收页面请求,转发和处理。

有些生成的项目没有resources文件夹(有些项目会自动生成resources文件夹,就不用再新建),需要自己新建文件夹,然后将文件夹类型改为Reosurces Root类型
之后在resource包下新建Directory:“mapper”(用于存放xxxMapper.xml文件)和“spring”(用于存放spring-xxx.xml配置文件),新建文件:“jdbc.properties”(mysql数据库配置文件),”log4j.properties”(日志输出配置文件),”mybatis-config.xml”(mybatis框架配置文件)。
之后在web-inf目录下新建jsp包,用来存放后续的一些Jsp页面,有的web-inf文件夹下没有index.jsp文件就需要自己新建。
自定UserInfo类
在这之前要对项目的pom.xml文件进行配置,在此文件中配置项目所需要的jar包。
此次项目使用的pom.xml文件为,




  4.0.0

  com.zhongruan
  ssm1
  1.0-SNAPSHOT
  war

  ssm1 Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.8
    1.8
    5.0.2.RELEASE
    
    3.2.6
    
    1.7.7
    1.2.17
    0.9.5.2
    1.1.2
  

    
      
      junit
      junit
      4.11
      test
    
      
      
        org.springframework
        spring-core
        ${spring.version}
      

      
        org.springframework
        spring-web
        ${spring.version}
      
      
        org.springframework
        spring-oxm
        ${spring.version}
      
      
        org.springframework
        spring-tx
        ${spring.version}
      

      
        org.springframework
        spring-jdbc
        ${spring.version}
      

      
        org.springframework
        spring-webmvc
        ${spring.version}
      
      
        org.springframework
        spring-aop
        ${spring.version}
      

      
        org.springframework
        spring-context-support
        ${spring.version}
      

      
        org.springframework
        spring-test
        ${spring.version}
      
      
      
        org.mybatis
        mybatis
        ${mybatis.version}
      
      
      
        org.mybatis
        mybatis-spring
        1.2.2
      
      
      
        javax
        javaee-api
        7.0
      

      
      
        mysql
        mysql-connector-java
        5.1.30
      
      
      
        commons-dbcp
        commons-dbcp
        1.2.2
      
      
      
        jstl
        jstl
        1.2
      
      
      
      
        log4j
        log4j
        ${log4j.version}
      


      
      
        com.mchange
        c3p0
        ${c3p0.version}
      

      
        taglibs
        standard
        ${taglibs.version}
      

      
        org.slf4j
        slf4j-api
        ${slf4j.version}
      
      
        org.slf4j
        slf4j-log4j12
        ${slf4j.version}
      

      
      
        javax.servlet
        javax.servlet-api
        3.1.0
        provided
      
      
      
        javax.servlet.jsp
        javax.servlet.jsp-api
        2.3.1
        provided
      

    


  
    ssm1
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  


本项目所用的数据库为,我是用图形界面建的表,表名为userinfo,表里有三列,分别是int id,varchar username,varchar password。用来表示用户的id,用户名和密码。
在这里插入图片描述

代码编写

JAVA代码编写:

  • 在bean包内新建UserInfo类,变量为:
public class UserInfo {
 	private int id;
    private String username;  //usr
    private String password;  //pwd
    }

然后可以右键->generate->Getter and Settrer 来进行设置get/set函数和toString函数,也可快捷键Alt+Insert快捷键进行设置。结果如下:
利用IDEA实现SSM框架对于数据库简单的增删查改(一)_第3张图片

  • 在service包内新建接口IUserService,右键->new->JAVA Class;

利用IDEA实现SSM框架对于数据库简单的增删查改(一)_第4张图片
其中内容为之后操作需要的service函数的定义,

package com.ssm1.service;

import com.ssm1.bean.UserInfo;

import java.util.List;

public interface IUserService {
    public List findAll();
    public int addUser(UserInfo userInfo);
    public int updateUser(UserInfo userInfo);
    public UserInfo queryById(int id);
    public int deleteUserById(int id);
}
  • 与IUserService一起还要新建impl包,里面存放的UserServiceImpl是UserService接口的具体实现:
package com.ssm1.service.impl;

import com.ssm1.bean.UserInfo;
import com.ssm1.dao.IUserDao;
import com.ssm1.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UsrServiceImpl  implements IUserService {
    @Autowired
    IUserDao userDao;

    @Override
    public List findAll() {
        return userDao.findAll();
    }

    @Override
    public int addUser(UserInfo userInfo) {
        return userDao.addUser(userInfo);
    }

    @Override
    public int updateUser(UserInfo userInfo) {
        return  userDao.updateUser(userInfo);
    }

    @Override
    public UserInfo queryById(int id) {
        return userDao.queryById(id);
    }

    @Override
    public int deleteUserById(int id) {
       return userDao.deleteUserById(id);
    }
}
  • 在dao包中新建接口IUserDao
package com.ssm1.dao;

import com.ssm1.bean.UserInfo;

import java.util.List;

public interface IUserDao {
    public List findAll();
    public int addUser(UserInfo userInfo);
    public int updateUser(UserInfo userInfo);
    public  UserInfo queryById(int id);
    public int deleteUserById(int id);
}

在Controller包里新建UserComtroller类,用来接收和jsp界面传来的需求。

package com.ssm1.controller;

import com.ssm1.bean.UserInfo;
import com.ssm1.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.enterprise.inject.Model;
import java.util.List;
@Controller
@RequestMapping("user")
public class Usercontroller {
    @Autowired
    private IUserService userService;
    @RequestMapping("/findAll.do")
    public ModelAndView findAll(){
        List userInfos =userService.findAll();
        ModelAndView mv = new ModelAndView();
        mv.addObject("ui",userInfos);
        mv.setViewName("allUser");
        return mv;
    }
    @RequestMapping("/toAddUser.do")
    public ModelAndView toAddUser(){
        ModelAndView mv = new ModelAndView();
       // mv.addObject("usid",id);
        mv.setViewName("addUser");//设置跳转的页面
        return mv;
    }
    @RequestMapping("/toUpdate.do")
    public ModelAndView toUpdate(int id){
        ModelAndView mv = new ModelAndView();
        mv.addObject("updateid",id);
        mv.setViewName("updateUser");//设置跳转的页面
        return mv;
    }
    @RequestMapping("/save.do")
    public String AddUser(UserInfo userInfo){
        userService.addUser(userInfo);
        return "redirect:/user/findAll.do";
    }

    @RequestMapping("/update.do")
    public String UpdateUser(UserInfo userInfo){

       // UserInfo User1=new UserInfo();
     // User1= userService.queryById(userInfo.getId());
        userService.updateUser(userInfo);
        //model.addAttribute("paper", paper);
        return "redirect:/user/findAll.do";
    }
    @RequestMapping("/delete.do")
    public String DeleteUserById(int id){
        userService.deleteUserById(id);
        return "redirect:/user/findAll.do";
    }
}

利用IDEA实现SSM框架对于数据库简单的增删查改(二)地址

你可能感兴趣的:(WEB)