SpringBoot搭建SSM项目二

一、创建数据库表和对应的java实体类

         1、创建t_user表

SET FOREIGN_KEY_CHECKS=0;
-- Table structure for `t_user`
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户表id',
  `user_id` varchar(255) NOT NULL COMMENT '用户id',
  `user_name` varchar(255) NOT NULL COMMENT '用户名',
  `pass_word` varchar(255) NOT NULL COMMENT '用户密码',
  `address` varchar(255) DEFAULT NULL COMMENT '用户地址',
  `picture` varchar(255) DEFAULT NULL COMMENT '用户头像',
  `gender` varchar(255) DEFAULT NULL COMMENT '性别',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `eamil` varchar(255) DEFAULT NULL COMMENT '用户邮箱',
  `integral` int(11) DEFAULT '0' COMMENT '用户积分',
  `create_time` datetime DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  `role_id` int(11) NOT NULL COMMENT '角色id',
  `state` int(11) NOT NULL DEFAULT '1' COMMENT '使用状态 0 注销  1使用',
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

  2、java试题类,这里只贴属性名称

package cn.fcw.bb.webapply.model;
import java.io.Serializable;
public class UserBean  implements Serializable {
    private String  userName;
    private String  passWord;
    private String  address;
    private int     age;
    private char    gender;
    private String  userId;
    private int     id;
    private int     roleId;
    private int     state;
}

3、在mpper报下创建dao层接口和相应xml实现

package cn.fcw.bb.webapply.mapper;
import cn.fcw.bb.webapply.model.UserBean;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface IUserMapper {
    /**查詢所有用戶*/
    List<UserBean>  findAll();
     /**使用id查询用户*/
    UserBean        findUserById(int  id);
    /**修改用户资料*/
    void            updateUser(UserBean userBean);
    /**用户登录*/
    UserBean        login(Map<String,String>  map);
    /**用户注册*/
    void            register(@Param("userName")String name,@Param("passWord")String  pwd,@Param("roleId")int  roleId);
    
    /**查询用户名的个数*/
    int             findUserByName(String name);
    /**新增用户(造测试数据用)*/
    void            insertUser(UserBean userBean);
}

UserMaper.xml配置sql:

<?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.fcw.bb.webapply.mapper.IUserMapper">

  <resultMap  id="findRes"        type="cn.fcw.bb.webapply.model.UserBean" autoMapping="true">
      <id     column="id"         property="id"                 />
      <result column="user_name"  property="userName" />
      <result column="pass_word"  property="passWord" />
      <result column="address"    property="address"   />
      <result column="gender"     property="gender"    />
      <result column="user_id"    property="userId"   />
      <result  column="role_id"   property="roleId"/>
      <result  column="state"      property="state"/>
  </resultMap>

    <sql id="insertId">
        user_name,pass_word,address,gender,user_id
    </sql>

    <select id="findAll"  resultMap="findRes">
        select  *  from  t_user
    </select>


    <select id="findUserById"  resultMap="findRes"  parameterType="java.lang.Integer">
          SELECT * FROM  t_user  where   id=#{value}
    </select>


    <select id="findUserByName"  parameterType="java.lang.String"  resultType="java.lang.Integer">
        SELECT  count(*)  FROM    t_user   WHERE  user_name=#{value};
    </select>


    <select id="login"  resultMap="findRes"   parameterType="java.util.Map">
        SELECT 
            *
         FROM 
            t_user
         WHERE 
             <if test="userName!=null">
                  user_name=#{userName}
             </if>
        AND
           <if test="passWord!=null">
               pass_word=#{passWord}
           </if>
    </select>


    <insert id="register"  parameterType="java.util.Map">
        INSERT  INTO
            t_user
            (user_name,pass_word,role_id)
        VALUES
             (#{userName},#{passWord},#{roleId})
    </insert>

    <update id="updateUser"  parameterType="cn.fcw.bb.webapply.model.UserBean">
        UPDATE
           t_user
        SET
          user_name=#{userName},
          address=#{address}
        WHERE
           id=#{id}
    </update>


    <insert id="insertUser"  parameterType="cn.fcw.bb.webapply.model.UserBean">
        INSERT INTO
              t_user
             (user_name,pass_word,address,gender,user_id)
        VALUES
              (#{userName},#{passWord},#{address},#{gender},#{userId})
    </insert>

</mapper>

4、创建service接口和实现类

package cn.fcw.bb.webapply.service;
import cn.fcw.bb.webapply.base.BaseBean;
import cn.fcw.bb.webapply.model.UserBean;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface IUserService {
    //此处省略异常抛出
    @Transactional
    List<UserBean>       findAll();
    
    @Transactional
    UserBean             findUserById(int  id);
    
   @Transactional
    BaseBean<UserBean>   register(String name,String pwd,int  roleId);

    @Transactional
    BaseBean<UserBean>   login(String  name,String pwd);

    @Transactional
    UserBean             updateUser(UserBean  userBean);

    @Transactional
    void                 insertUser(UserBean userBean);
 }

  服务实现类业务

package cn.fcw.bb.webapply.service.impl;
import cn.fcw.bb.webapply.base.BaseBean;
import cn.fcw.bb.webapply.mapper.IUserMapper;
import cn.fcw.bb.webapply.model.UserBean;
import cn.fcw.bb.webapply.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class UserServiceImpl implements IUserService {

    @Autowired
    private IUserMapper userMapper;

    @Override
    public List<UserBean> findAll() {
        return  userMapper.findAll();
    }

    @Override
    public UserBean findUserById(int id) {
        return userMapper.findUserById(id);
    }

    @Override
    public BaseBean<UserBean> register(String name, String pwd, int roleId) {
        BaseBean<UserBean>  baseBean=new BaseBean<>();
        int  num=  userMapper.findUserByName(name);
         if (num>0){
             baseBean.setMsg("该用户名已经被使用");
             baseBean.setRes(0);
         }else {
             Map<String,Object>  map=new HashMap<>();
             map.put("userName",name);
             map.put("passWord",pwd);
             map.put("rileId",1);
             userMapper.register(map);

             HashMap<String,String>  userMap=new HashMap<>();
             userMap.put("userName",name);
             userMap.put("passWord",pwd);
             UserBean u=userMapper.login(userMap);
             if (u!=null){
                 baseBean.setMsg("恭喜您!注册成功");
                 baseBean.setData(u);
                 baseBean.setRes(1);
             }else {
                 baseBean.setMsg("注册成功失敗!");
                 baseBean.setData(null);
                 baseBean.setRes(0);
             }

         }
         return baseBean;
    }

    @Override
    public BaseBean<UserBean> login(String name,String pwd) {
        BaseBean<UserBean>  userBeanBaseBean=new BaseBean<>();
        int  num= userMapper.findUserByName(name);
        if (num==0){
            userBeanBaseBean.setMsg("该用户不存在");
            userBeanBaseBean.setRes(0);
        }else {
            Map<String,String>  map=new HashMap<>();
            map.put("userName",name);
            map.put("passWord",pwd);
            UserBean u= userMapper.login(map);
           if (u==null){
               userBeanBaseBean.setMsg("登录密码错误");
               userBeanBaseBean.setRes(0);
           }else {
               int  state=u.getState();
               if (state==1) {
                   userBeanBaseBean.setMsg("登录成功");
                   userBeanBaseBean.setRes(1);
                   userBeanBaseBean.setData(u);
               }else {
                   userBeanBaseBean.setMsg("该用户已经注销");
                   userBeanBaseBean.setRes(1);
                   userBeanBaseBean.setData(null);
               }

           }
        }
        return userBeanBaseBean;
    }

    @Override
    public void insertUser(UserBean userBean) {
        userMapper.insertUser(userBean);
    }

    @Override
    public UserBean updateUser(UserBean userBean) {
        userMapper.updateUser(userBean);
        return  userMapper.findUserById(userBean.getId());
    }

}

  5、controller层业务,配置启动项目后自动访问登录页面   

package cn.fcw.bb.webapply.ctl;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
    @RequestMapping("/")
    public String  index(){
        return "user/login";
    }
}

6、视图界面:

     加入静态资源jquery和bootstrap,引入easyui,动态页面整合freemarker模板,pom.xml加入依赖


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

   

    

猜你喜欢

转载自blog.csdn.net/fengchengwu2012/article/details/82019423