springboot 部署ssm项目crud操作

Posted q1427094386

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 部署ssm项目crud操作相关的知识,希望对你有一定的参考价值。

springboot 部署ssm 项目结构

从上到下 先 在根目录创建一个文件加 sql 之后创建sql文件

drop table if exists   `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
   `password` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

# 添加
insert  into `user`(id, name,password, age, sex) values (null ,'tom','123',22,'男');

# 查询
select * from user;

java 代码 首先是 controller 层

package cn.hp.boot3.controller;
import cn.hp.boot3.model.User;
import cn.hp.boot3.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;

@Controller
//@RequestMapping("/user")
public class UserComtroller {

    @Autowired
    private UserService userService;
    //访问 页面 需要走 controller
    /**
     * 跳转导列表  登录页面
     *
     * @return
     */
    @GetMapping("toLogin")
    public String toIndex() {
        return "login.html";
    }

    /**
     * 登录 提交 重定向到 list请求
     * @param user
     * @return
     */
    @PostMapping("/login")
    public String login(User user) {
        userService.login(user);
        return "redirect:list";    //转向导到list列表 
    }

    /**
     * 全查询
     * @return
     */
    @GetMapping("/list")
    public Object list1() {
       List<User> list= userService.list();
       ModelAndView modelAndView=new ModelAndView();
       modelAndView.addObject("list",list);
       modelAndView.setViewName("index");
       return  modelAndView;
    }


    /**
     * 新增  html样式 跳页面
     * @return
     */
    @RequestMapping("/user_add")
    public String user_add(){
//        return "redirect:user_add";
        return "user_add.html";
    }

    /**
     * 新增  html样式 页面提交
     * @param user
     * @return
     */
    @RequestMapping("/user_add2")
    public String user_add2(User user){
        int i=  userService.user_add2(user);
        if (i>0){
            return "redirect:list";    //转向导到列表
        }
        return null;  //添加失败 跳转没写
    }
    
    /**
     * 新增  Thymeleaf样式  跳页面
     * @return
     */
    @RequestMapping("/user2_add")
    public String user2_add(){
        return "user2_add.html";
    }
    
    /**
     * 新增 Thymeleaf样式  页面提交
     * @param user
     * @return
     */
    @RequestMapping("/user2_add2")
    public String user2_add2(User user){
        int i=  userService.user2_add2(user);
        if (i>0){
            return "redirect:list";    //转向导到列表
        }
        return null;  //添加失败 跳转没写
    }
    
    /**
     * 删除 根据id 删除一条数据
     * @param id
     * @return
     */
    @RequestMapping("/user_delectById")
    public String user_delectById(int id){
       int i= userService.user_delectById(id);
        if (i>0){
            return "redirect:list";    //转向导到列表
        }
        return null;  //删除失败 跳转没写
    }

    /**
     * 修改 根据id 查找一个用户
     * @param model
     * @param id
     * @return
     */
    @RequestMapping("/user_selectById")
    public String user_selectById(Model model,int id){
       User user= userService.user_selectById(id);
        model.addAttribute("user",user);
        return "user_selectById.html";
    }

    /**
     * 修改
     * @param user
     * @return
     */
    @RequestMapping("/user_update")
    public  String user_update(User user){
        userService.user_update(user);
        return "redirect:list";    //转向导到列表
    }
}

mapper层 (接口)

package cn.hp.boot3.mapper;

import cn.hp.boot3.model.User;
import cn.hp.boot3.model.UserExample;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
public interface UserMapper {
    long countByExample(UserExample example);

    int deleteByExample(UserExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    List<User> selectByExample(UserExample example);

    User selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    int updateByExample(@Param("record") User record, @Param("example") UserExample example);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}

model 实体类

package cn.hp.boot3.model;

public class User {
    private Integer id;
    private String name;
    private String password;
    private Integer age;
    private String sex;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", password=").append(password);
        sb.append(", age=").append(age);
        sb.append(", sex=").append(sex);
        sb.append("]");
        return sb.toString();
    }
}

service 层

package cn.hp.boot3.service;

import cn.hp.boot3.mapper.UserMapper;
import cn.hp.boot3.model.User;
import cn.hp.boot3.model.UserExample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public void login(User user) {
        UserExample example = new UserExample();
        UserExample.Criteria criteria = example.createCriteria();
        criteria.andNameEqualTo(user.getName());
        criteria.andPasswordEqualTo(user.getPassword());
        userMapper.selectByExample(example);

    }

    public List<User> list() {
        return userMapper.selectByExample(null);
    }

    public int user_add2(User user) {
        return userMapper.insert(user);
    }

    public int user_delectById(int id) {
        return userMapper.deleteByPrimaryKey(id);
    }

    public User user_selectById(int id) {
        return userMapper.selectByPrimaryKey(id);
    }

    public int user_update(User user) {
        return userMapper.updateByPrimaryKeySelective(user);
    }

    public int user2_add2(User user) {
        return userMapper.insert(user);

    }
}

boot的启动类 Boot3Application

package cn.hp.boot3;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("cn.hp")
//@MapperScan("cn.hp.boot3.mapper")
public class Boot3Application {

    public static void main(String[] args) {
        SpringApplication.run(Boot3Application.class, args);
    }

}

resources 资源文件
在resources 根目录下创建 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>
    <context id="mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        <property name="autoDelimitKeywords" value="true"/>
        <!--在table / 列名 左右两边加入 反引号,避免关键词-->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--覆盖生成XML文件(可以重复执行生成, 每次新生成的xml会覆盖原有xml,原xml会被删除掉)-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
        <!-- 在生成的实体类中添加toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

        <!-- 不生成注释(mybatis默认注释是英文,不需要) -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库连接配置-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/springboot3_8.13"
                        userId="boot"
                        password="boot">
        </jdbcConnection>

        <!-- domain  model  实体类的位置 -->
        <javaModelGenerator targetProject="src\\main\\java"
                            targetPackage="cn.zz.boot3.model"/>
        <!--                            targetPackage="cn.zz.boot3.domain"/>-->

        <!-- mapper xml的位置 -->
        <sqlMapGenerator targetProject="src\\main\\resources"
                         targetPackage="mapper"/>

        <!-- mapper类的位置
        3种生成方式
        1.ANNOTATEDMAPPER (生成的SQL都在java中)
        2.MIXEDMAPPER     (sql部分再java类中,部分再xml中)
        3.XMLMAPPER       (sql全都在xml中)  TODO 推荐使用
        -->
        <javaClientGenerator targetProject="src\\main\\java"
                             targetPackage="cn.zz.boot3.mapper"
                             type="XMLMAPPER" />

        <!-- <table tableName="test" domainObjectName="Test"/>-->
        <table tableName="user" domainObjectName="User"/>
    </context>
</generatorConfiguration>

在resources 根目录下创建 js包 包下 js (我用的是 jquery-3.6.0.min.js) 这个对版本没有要求

在resources 根目录下创建 mapper 下创建UserMapper.xml 配置文件 注 :(此处的mapper 的配置文件 跟java文件的 mapper 中的接口 名字相同)

<?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">
<mapper namespace="cn.hp.boot3.mapper.UserMapper">
  <resultMap id="BaseResultMap" type="cn.hp.boot3.model.User">
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="name" jdbcType="VARCHAR" property="name" />
    <result column="password" jdbcType以上是关于springboot 部署ssm项目crud操作的主要内容,如果未能解决你的问题,请参考以下文章

Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)八(文件的上传FastDFS和校验)(Nginx的请求前缀配置,在发布项目的时候要注意)(代

SSM-CRUD入门项目——待更新

Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十三(项目打包和部署)

Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十三(项目打包和部署)

SSM-CRUD

精通系列)创建 Springboot 项目+基于 ssm 多模块项目案例+微服务实战