今天想写个SpringBoot整合MyBatis连接MySql的测试方法而已,找了很多资料尚未解决,请hxd帮忙看看问题出在哪里,感谢!
-- 创建数据库
CREATE DATABASE IF NOT EXISTS zhao DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
-- 创建一个测试用的数据表
create table test_user(
userId int auto_increment primary key,
userName varchar(200),
userPass varchar(200)
)
1、实体类(entity)
public class TestUser{
private Integer userId;
private String userName;
private String userPass;
//省略Getter和Setter方法
}
2、接口(mapper)
@Mapper
public interface TestUserMapper{
TestUser findUserLogin(@Param("userName") String userName, @Param("userPass") String userPass);
}
3、myBatis配置文件(xml)需要注意的是xml的位置,在resources下,但要与java文件夹下的接口的包名一致
<?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="com.atgugui.springbootweb.mapper.TestUserMapper">
<select id="findUserLogin" resultType="com.atgugui.springbootweb.entity.TestUser">
select userName,userPass from test_user where userName=#{userName} and userPass=#{userPass}
</select>
</mapper>
4、 业务层(service)
public interface TestUserService {
TestUser findUserLogin(@Param("userName") String userName, @Param("userPass") String userPass);
}
5、 业务实现层(impl)
@Service
public class TestUserServiceImpl implements TestUserService {
@Resource
TestUserMapper testUserMapper;
@Override
public TestUser findUserLogin(String userName, String userPass) {
return testUserMapper.findUserLogin(userName, userPass);
}
}
6、 逻辑控制层(controller)
@Controller
public class LoginController {
@Resource
TestUserService testUserService;
@RequestMapping("/Users/login")
public String userLogin(@RequestParam("userName") String userName,
@RequestParam("userPass") String userPass,
Map map, HttpSession session){
// if (!StringUtils.isEmpty(userName) && "123456".equals(userPass)){
// session.setAttribute("loginUser",userName);
// //登录成功,为了防止表单重复提交,可以重定向到指定页面
// return "redirect:/home.html";
// }else{
// map.put("error","用户名或密码错误");
// return "login";
// }
TestUser user = testUserService.findUserLogin(userName, userPass);
if (user != null){
session.setAttribute("loginUser",userName);
//登录成功,为了防止表单重复提交,可以重定向到指定页面
return "redirect:/home.html";
}else {
map.put("error","用户名或密码错误");
return "login";
}
}
}
7、 html页面和拦截器与之前的没有连接数据库的一样,不需要做任何改动
8、项目结构如下
以上就是用户登录的一个简单实例,项目源码https://pan.baidu.com/s/1UxnLp4iDRi02FeALSfhBzg提取码:q795
如果不是Mybatis配置有问题的话,就去试试这个http://t.csdn.cn/m1osg
MyBatis配置有问题,检查配置