1.数据库连接失败
错误提示关键词:"Server returns invalid timezone","setTimeZone"
我的解决过程:
(1)登录mysql:mysql -uroot -p;然后输入密码
(2)查看mysql中设置的时区值:show variables like ‘%time_zone%‘; (要加分号),默认System
(3)设置时区值:set global time_zone=‘+8:00‘; (加分号)
(4)编辑环境变量:变量值 MYSQL_HOME,变量值 C:\Program Files\MySQL\MySQL Server 5.7
(5)在path中新建变量%MYSQL_HOME%\bin
2.mapper自动注入失败
2.1错误提示关键词
(1)Failed to load ApplicationContext
(2)No qualifying bean of type ‘com.example.mapper.ArticleMapper‘ available
2.2解决过程:在application类中加入注解@MapperScan("com.example.mapper");
(1)检查Mapper接口的@Repository(实践之后发现它不是原因)@Mapper注解
(2)检查Mapper.xml文件中的类名,列明,对象属性名是否有错写或漏写(namespace,resultMap,type,paramType之类的hhh)
<?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"> <!--namespace为Mapper接口的类路径--> <mapper namespace="com.example.mapper.ArticleMapper" > <!-- 1、对应“public Article findArticleById(Integer id)” --> <select id="findArticleById" resultMap="articleWithComments"> SELECT a.*,c.id c_id,c.content c_content,c.author,c.a_id c_aid FROM t_article a LEFT JOIN t_comment c ON a.id=c.a_id WHERE a.id=#{id} </select> <!--结果映射集--> <resultMap id="articleWithComments" type="Article"> <id property="id" column="id" /> <result property="title" column="title" /> <result property="content" column="content" /> <collection property="commentList" ofType="Comment"> <id property="id" column="c_id" /> <result property="content" column="c_content" /> <result property="author" column="author" /> <result property="aId" column="c_aid" /> </collection> </resultMap> <!-- 3、对应“public int insertArticle(Article article)” --> <insert id="insertArticle" parameterType="Article"> insert into t_article(title,content) values(#{title},#{content}) </insert> <!-- 4、对应“public int updateArticle(Article article)” --> <update id="updateArticle" parameterType="Article" > UPDATE t_article <set> <if test="title !=null and title !=‘‘"> title=#{title}, </if> <if test="content !=null and content !=‘‘"> content=#{content} </if> </set> WHERE id=#{id} </update> </mapper>
(3)检查全局配置文件是否加载Mapper文件
#配置MyBatis的映射文件路径 mybatis.mapper-locations=classpath:mapper/*.xml #配置映射文件中指定的实体类别名路径 mybatis.type-aliases-package=com.example.domain
2.3测试类
@RunWith(SpringRunner.class) @SpringBootTest(classes = Chapter05Application.class) class Chapter05ApplicationTest { @Resource private ArticleMapper articleMapper; @Test void insertArticle() { System.out.print(articleMapper); Article article=articleMapper.findArticleById(1); System.out.print(article); } }
3.servies自动注入失败
3.1错误提示关键词:
(1)Could not autowire. No beans of ‘ArticleService‘ type found.
(2)Error creating bean with name ‘com.example.chapter05.Chapter05ApplicationTest‘
(3) No qualifying bean of type ‘com.example.services
3.2我的解决过程:在application类中加入注解@MapperScan("com.example.mapper")(保证Mapper成功注入才能继续解决Service问题)@ComponentScan("com.example.services");
3.3排错试错的暴躁之旅QAQ
(1)检查Mapper接口的@Repository(实践之后发现它不是原因)@Mapper注解
(2)检查service实现类中的@Service注解
(3)检查Mapper.xml文件中的类名,列明,对象属性名是否有错写或漏写
(4)检查全局配置文件是否加载Mapper文件
(5)mapper是否注入成功
(6)Test类中@RunWith(SpringRunner.class),@SpringBootTest(classes = Chapter05Application.class)
3.4测试类
@Resource private ArticleService articleService; @Test void addArticle(){ System.out.print(articleService); articleService.addArticle(); }
哦哦!还有pom.xml文件该有都有,不该有的都没有
Idea---SpringBoot整合Mybatis问题整理
原文:https://www.cnblogs.com/Rong-Xiu/p/14681949.html