eladmin后台管理系统(后端)——登录请求的实现
作者:互联网
1.数据库服务器端口的配置
server.port=8888
spring.datasource.url=jdbc:mysql://localhost:3306/eldmin?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password='1019'
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
2.根据字段创建bean对象,可使用注解省略属性与get、set方法
public class Admin implements Serializable {
/*主键*/
private Integer id;
/*账号*/
private String name;
/*密码*/
private String password;
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;
}
}
3.创建数据库层
@Repository
public interface AdminMapper {
/**
*验证密码是否正确
*/
public int verifyPassword(String username,String password);
}
4.配置mapper对应的xml文件
<?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-->
<mapper namespace="com.javaclimb.music.dao.AdminMapper">
<!-- resultMap最终还是要将结果映射到pojo上,type就是指定映射到哪一个pojo -->
<!-- id:设置ResultMap的id -->
<resultMap id="BaseResultMap" type="com.javaclimb.music.domain.Admin" >
<!-- 定义主键 ,非常重要。如果是多个字段,则定义多个id -->
<!-- property:主键在pojo中的属性名 -->
<!-- column:主键在数据库中的列名 -->
<!-- jdbcType数据库里面的字段类型 可以不写-->
<id column="id" jdbcType="INTEGER" property="id"/>
<!-- 定义普通属性 -->
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
<!-- association :配置一对一属性 -->
<!-- property:order里面的User属性名 -->
<!-- javaType:属性类型 -->
<!-- <association property="user" javaType="user">-->
<!-- <!– id:声明主键,表示user_id是关联查询对象的唯一标识–>-->
<!-- <id property="id" column="user_id" />-->
<!-- <result property="username" column="username" />-->
<!-- <result property="address" column="address" />-->
<!-- </association>-->
</resultMap>
<!-- 传入单个参数:-->
<!-- 基本类型:取值 #{随便写}-->
<!-- 传入多个参数:-->
<!-- 取值: #{参数名} 无效-->
<!-- 可用: 0,1参数的索引取值-->
<!-- 只要传入了多个参数 会自动将其封装在一个map中 封装时使用的key就是参数的索引和标识-->
<!-- Map<String,Object>map=new HashMap<>();\-->
<!-- map.put("1",传入的值)-->
<!-- 我们可以告诉mybatis,封装参数map的时候别乱来,使用我们指定的key-->
<!-- 在传入参数前加上 @Para("id")Integer id 为参数指定key-->
<!-- 传入pojo:-->
<!-- 取值:#{pojo属性名}-->
<!-- 传入map:-->
<!-- 取值:#{key}-->
<!-- 多级封装取值-->
<!-- method(@Param("id") Integer id,String empName,Employee employee);-->
<!-- #{param3.email} 取出employee中的email-->
<select id="verifyPassword" resultType="java.lang.Integer">
select count(*) from admin where name=#{0} and password=#{1}
</select>
</mapper>
5.创建service接口
/**
* 管理员service接口
*/
public interface AdminService {
/**
*验证密码是否正确
*/
public boolean verifyPassword(String username,String password);
}
6.创建service接口的实现类
/**
* 管理员service实现类
*/
@Service
public class AdminServiceImpl implements AdminService {
//自动装配
@Autowired
private AdminMapper adminMapper;
/**
* 验证密码是否正确
*
* @param username
* @param password
*/
@Override
public boolean verifyPassword(String username, String password) {
return adminMapper.verifyPassword(username,password)>0;
}
}
7.创建controller层
@RestController
//@ResponseBody
//@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
//注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。
//@Controller 表明是一个Controller
public class AdminController {
//由于接口存在实现类 会找到实现类
@Autowired
private AdminService adminService;
public Object loginStatus(HttpServletRequest request, HttpSession session){
//创建Json对象 使用alibaba.fastjson
JSONObject jsonObject = new JSONObject();
//取出参数
String name = request.getParameter("name");
String password = request.getParameter("password");
//核对账号密码
boolean flag = adminService.verifyPassword(name, password);
if (flag){
jsonObject.put(Consts.MSG,"登录成功");
jsonObject.put(Consts.CODE,1);
//将登录成功的用户名保存到域中
session.setAttribute(Consts.NAME,name);
//返回json对象
return jsonObject;
}
//核对失败
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名或密码错误");
return jsonObject;
}
}
标签:return,String,管理系统,jsonObject,eladmin,后台,password,public,name 来源: https://blog.csdn.net/Sun_python/article/details/120181835