1.maven项目创建的两种方法
1.1第一种是使用spring initializr,这个配置是最简单的,但是在建项目的时候操作流程有点繁琐。
如果没有镜像,默认选择default;点击下一步Group包组织, artifact 工程名,
1.2packaging 打包的因素:jar和war
jar 前后端分离,只有java代码
war 不光有java代码,还有web网页
version 版本选择8
1.3dependence 选项,选择下面这四个
developer tools :spring boot devtools
web :spring web
sql: mabatis framwork mysql driver
1.4加载完成,选择自动化更新
完成上面的操作,maven配置完成了,
2.也可以选择maven进行创建项目,选择quickstart,这个创建简单,但是创建好之后,
还需要配置.xml ,可以根据上面创建好的对应,少的就添加进去
3.在资源文件夹中配置驱动,url,以及数据库的用户名和密码,方便连接数据库
spring:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.154.100/kb15
username: root
passwor: ok
thymeleaf:
prefix:
classpath: /tempaltes/
suffix: .html
4.下面操作是显示用户的查询以及登录
要建controller层,dao层,entity层,service层。资源文件夹中要加一个login.html,这个html作用是保护用户信息,下面分别讲一下各个层的具体类及方法
.controller层:实现页面跳转
package cn.kgc.controller;
import cn.kgc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/doLogin")
@ResponseBody
public String login(String username,String password){
return "<h1>"+userService.login( username,password )+"</h1>";
}
@RequestMapping("/userLogin")
public String userLogin(){
return "login";
}
}
dao层:接口,主要编写用户的增删改查等代码
import cn.kgc.entity.User;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.ResponseBody;
@Repository
public interface UserDao {
@Select( "select *from tb_user_info where username=#{username}" )
User queryUserByName(String username);
}
service层:业务逻辑判断,
import cn.kgc.dao.UserDao;
import cn.kgc.entity.User;
import cn.kgc.service.UserService;
import com.mysql.jdbc.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public String login(String username, String password) {
if(StringUtils.isNullOrEmpty( username )||StringUtils.isNullOrEmpty( password )){
return "用户名或者密码为空";
}
User user=userDao.queryUserByName(username);
if(user==null){
return "用户不存在";
}
if(!password.equals( user.getPassword() )){
return "密码输入有误";
}
return "恭喜用户"+username+"登录成功";
}
}
entity层:实体类,里面的属性和数据库的列名要一一对应
public class User {
private int id;
private String username;
private String password;
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}
资源文件夹添加一个.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>本地登录页面</title>
</head>
<body>
<form action="/doLogin">
<p><input type="text" name="username" placeholder="请输入用户名"></p>
<p><input type="password" name="password" placeholder="请输入密码"></p>
<p><input type="submit" value="点我登录"></p>
</form>
</body>
</html>
5.实现操作
6这样就简单的实现用户登录了
总结:我做用户登录页面主要遇到的一些问题。首先是在创建方法是,用的类型不对,可能是没理清楚思路,有的时候要用User,我是用String;其次是如果不用页面跳转时,需要添加@ResponseBody,它的作用相当于输出流;因为需要对用户的信息保密,所以在资源文件夹中添加了一个.html,这个需要在.xml中把对应的依赖添加进去
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
每一层的注释都是非常重要的,不能写错