SprintBoot学习笔记(4):登录(Hibernate+Mysql)
2017-10-09 21:42
507 查看
上一篇文章中已经实现了简单登录功能,现在通过Hibernate访问Mysql数据库从而进行用户信息判断。
一:创建数据库
这里创建一个名为“demo”的数据库,创建一张表“user”
二:配置数据源(修改application.properties)
三:创建实体类
通过注解建立该类与数据库表之间的映射关系,之后使用类对象数据库查询结果。
四:DAO
在此类中实现数据库查询,注意通过注解添加数据表映射,并添加bean支持(@Qualifiler)。
注意@Query()中的“User”为类名,而不是表名。
四:Controller
在controller中进行登录验证
五:重写login.html
使用ajax传输数据,根据返回结果进行相应处理。若用户名及密码正确,则跳转至“/core/loginSuccess”,否则提示相关错误信息。
一:创建数据库
这里创建一个名为“demo”的数据库,创建一张表“user”
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint(11) DEFAULT NULL, `user_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `create_date` datetime(0) DEFAULT NULL, `update_date` datetime(0) DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = Compact; SET FOREIGN_KEY_CHECKS = 1;
二:配置数据源(修改application.properties)
spring.datasource.url = jdbc:mysql://localhost:3306/demo spring.datasource.username = root spring.datasource.password = 123456 spring.datasource.driverClassName = com.mysql.jdbc.Driver # Specify the DBMS spring.jpa.database = MYSQL # Show or not log for each sql query spring.jpa.show-sql = true # Hibernate ddl auto (create, create-drop, update) spring.jpa.hibernate.ddl-auto = update # Naming strategy spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy # stripped before adding them to the entity manager) spring.jpa.properties.hibernate.dialect =org.hibernate.dialect.MySQL5Dialect
三:创建实体类
通过注解建立该类与数据库表之间的映射关系,之后使用类对象数据库查询结果。
package com.lim.demo.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="user") public class User { @Id //@GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private Long id; @Column(name = "user_id") private String userId; @Column(name = "user_name") private String userName; @Column(name = "password") private String password; @Column(name = "create_date") private String create_date; @Column(name = "update_date") private String update_date; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUserId() { return userId; } public void setUserId(String us a21a erId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getCreate_date() { return create_date; } public void setCreate_date(String create_date) { this.create_date = create_date; } public String getUpdate_date() { return update_date; } public void setUpdate_date(String update_date) { this.update_date = update_date; } }
四:DAO
在此类中实现数据库查询,注意通过注解添加数据表映射,并添加bean支持(@Qualifiler)。
注意@Query()中的“User”为类名,而不是表名。
@Repository @Table(name="user") @Qualifier("userRepository") public interface UserRepository extends CrudRepository<User, Long >{ public User findOne(Long id); public User save(User user); @Query("select t from User t where t.userName=:name") //User为类名 public User findUserByUserName(@Param("name") String name); }
四:Controller
在controller中进行登录验证
//通过注解调用DAO实例 @Autowired private UserRepository userRepository; @RequestMapping("/doLogin") @ResponseBody public String doLogin(HttpServletRequest request, HttpServletResponse response) { //String userId=request.getParameter("userId"); String userName=request.getParameter("userName"); String password=request.getParameter("password"); //String checkcode=request.getParameter("checkcode"); //数据获取失败 if(null == userName || null == password){ return "1@#@系统异常"; } User user=userRepository.findUserByUserName(userName); //用户不存在 if(null == user){ return "2@#@用户不存在"; } //密码错误 if (!password.equals(user.getPassword())) { return "3@#@密码错误"; } //登录成功 HttpSession session = request.getSession(true); session.setAttribute("userName", userName); return "0@#@登录成功"; } @RequestMapping("/loginSuccess") public String loginSuccess(HttpServletRequest request, HttpServletResponse response) { return "/core/loginsuccess"; }
五:重写login.html
使用ajax传输数据,根据返回结果进行相应处理。若用户名及密码正确,则跳转至“/core/loginSuccess”,否则提示相关错误信息。
$("#doLogin").click(function(){ $.ajax({ type:"POST", url:"/core/doLogin", data:{ "userName":$("#userName").val(), "password":$("#password").val(), "checkcode":$("#checkcode").val() }, success: function(result){ var arr=result.split("@#@"); if(arr[0]=="0"){ window.location.href="/core/loginSuccess"; }else{ alert(arr[1]); reset(); } } }) })
相关文章推荐
- hibernate学习笔记03-- hibernate + mysql + Annotation
- MySQL学习笔记1:安装和登录
- hibernate学习笔记02-- eclipse 下 hibernate+mysql 的实现。
- MySql学习笔记(登录、增加用户、密码更改)
- 【PHP+MYSQL】实现登录界面的学习笔记
- MySQL学习笔记1:安装和登录(多种方法)
- mysql学习笔记-创建用户以及登录,基本信息查询
- MySQL学习笔记1:安装和登录
- Hibernate 学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
- MySQL学习笔记1:安装和登录
- Hibernate 学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
- [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别
- MySQL学习笔记1:安装和登录(多种方法)
- mysql学习笔记之十(mysql运算符)
- Linux学习笔记(三)--数据库Mysql之Navicat Premium 12.0破解
- mysql学习笔记——显示&插入
- MySQL 学习笔记 二
- hibernate3.3.2学习笔记---多对多单向
- select,数据查询,排序,字段别名__mysql学习笔记