SpringBoot学习之整合MyBatis框架

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32329913/article/details/83177567

1、首先在Maven工程中的 pom.xml 文件中添加数据库驱动和MyBatis框架依赖的jar包

		<!--mysql驱动驱动-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<!--导入MyBatis依赖-->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>

2、在 application.properties 配置文件中配置数据库连接池参数
注意:如果采用 ** mapper.xml文件配置方式 进行数据库和DAO接口映射,需要配置mybatis.mapper-locations**,值为 .xml文件的全路径名

spring.datasource.url=jdbc:mysql://localhost:3306/mydb2?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
mybatis.config-location=classpath:mybatis-config.xml
## 如果采用全注解方式,不必配置 mybatis.mapper-locations
mybatis.mapper-locations=classpath:包路径/QuestionDAO.xml

3、配置 mybatis.config.xml
这里的配置是直接从网上抄过来的
如果MyBatis框架单独使用,需要在这里配置数据库连接池等参数,但是在和Spring整合之后这部分工作由Spring来完成,因此不必配置。

    <settings>
        <!-- Globally enables or disables any caches configured in any mapper under this configuration -->
        <setting name="cacheEnabled" value="true"/>
        <!-- Sets the number of seconds the driver will wait for a response from the database -->
        <setting name="defaultStatementTimeout" value="3000"/>
        <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn   驼峰转换 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- Allows JDBC support for generated keys. A compatible driver is required.
        This setting forces generated keys to be used if set to true,
         as some drivers deny compatibility but still work -->
        <setting name="useGeneratedKeys" value="true"/>
    </settings>

注意:mapUnderscoreToCamelCase 值为true表示设置了驼峰转换,可自动映射下列形式的列名和属性名。

列名:user_id
属性:userID

4、配置 mapper.xml
如果采用全注解的方式,不必配置该文件;
如果采用mapper.xml文件进行映射配置,则需注意以下几点:
(否则会出现:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): )
   1. mapper.xml 文件所在的package名称 和 interface对应的package名称一致;
  2. 检查 mapper.xml 文件的namespace是否和xml文件的DAO接口全路径名称一致;
  3. 检查函数名称和返回类型是否对应;
  4. sql 语句要正确,注意空格,逗号等细节;
  5. 检查 application.properties 中是否配置了mybatis.mapper-locations;

5、创建 bean类 和 DAO interface
如果采用全注解方式 可以跳过第4步,本文建议使用全注解方式

接口:使用**@Mapper** 注解dao接口,并搭配 @Insert、@Select、@Update、@Delete等方法注解

@Mapper
public interface QuestionDAO {
    String TABLE_NAME = " question ";
    @Insert({"insert into",TABLE_NAME,"(title,content,created_date,user_id,comment_count)" +
            "values (#{title},#{content},#{createdDate},#{userID},#{commentCount})"})
    int addQuestion(Question question);

    //xml配置
    List<Question> selectLatestQuestions(@Param("userID") int userID,
                                         @Param("offset") int offset,
                                         @Param("limit") int limit);
}

bean类:

public class Question {
    private int id;
    private String title;
    private String content;
    private Date createdDate;
    private int userID;
    private int commentCount;
   /* set 和 get 方法*/
    }

6、测试
编写测试用例,测试能否成功操作数据库。

展开阅读全文

没有更多推荐了,返回首页