SpringBoot整合MyBatis连接MySql运行不起来

今天想写个SpringBoot整合MyBatis连接MySql的测试方法而已,找了很多资料尚未解决,请hxd帮忙看看问题出在哪里,感谢!

img

img

img

img

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7607600
  • 这篇博客你也可以参考下:springboot+mybatis+mysql 存储单字段为数组格式的解决方案
  • 除此之外, 这篇博客: SpringBoot+MyBatis实现登录和拦截器中的 2、 通过MyBatis连接MySQL数据库进行登录和校验拦截 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • -- 创建数据库
    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配置有问题,检查配置