黑马程序员技术交流社区
标题:
SpringBoot+mybatis+thymeleaf实现登录功能
[打印本页]
作者:
专注的一批
时间:
2020-7-15 10:45
标题:
SpringBoot+mybatis+thymeleaf实现登录功能
开始工作
先按照上图建立好相应的controller,mapper等文件。
接着进行一个配置
首先是application.properties
server.port=8080#启动端口
#加载Mybatis配置文件
mybatis.mapper-locations = classpath:mapper/*.xml
#数据源必填项
spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/studentmanage?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
spring.datasource.username = root
spring.datasource.password = 123456
接着是spring启动主函数java文件
/*扫描mapper,防止找不到dao层文件,就写上*/
@MapperScan(basePackages = {"com.example.learn.Dao"})
@SpringBootApplication
public class LearnApplication {
public static void main(String[] args) {
SpringApplication.run(LearnApplication.class, args);
}
}
根据用户表,在entity建立实体类User.java,编译器都有相应的操作可以一键生成getter,setter,toString,只需定义好变量即可。
XM返佣https://www.fx61.com/brokerlist/xm.html
public class User {
private String username;
private String password;
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;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
接着是Dao层
import com.example.learn.Entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
@Mapper
@Component(value = "userDao")//这些都为配置注释
public interface UserDao {
//登录
public User login(@Param("username") String username,@Param("password") String password);
}
dao层写完,在写dao层配套的sql语句(mybatis功能)
mapper包里面建立.xml文件
select * from user_info where username=#{username} and password=#{password}
弄完这些接着到service层,包括impl接口实现
首先是service接口
import com.example.learn.Entity.User;
public interface UserService {
public User login(String username, String password);
}
接着是Impl下的实现类
import com.example.learn.Dao.UserDao;
import com.example.learn.Entity.User;
import com.example.learn.Service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("UserService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User login(String username, String password) {
return userDao.login(username,password);
}
}
最后就是Controller
import com.example.learn.Entity.User;
import com.example.learn.Service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import javax.servlet.http.HttpServletRequest;
@Controller
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")//可以换成@RequestMapping,action那里使用的命名
public String login(HttpServletRequest request, User u){
String username=request.getParameter("username");
String password=request.getParameter("password");
u=userService.login(username,password);
if(u!=null){
return "success";//到success的动态网页
}
return "redirect:/login.html";//这里是定向到login.html静态网页
}
}
测试工作
先在表中插入测试数据用户和密码
再建立两个html来测试功能
static/login.html
templates/success
成功
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2