一、创建数据库表和对应的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>