三、Spring boot整合Mybatis

三、Spring boot整合Mybatis

1.pom.xml文件添加依赖包

<!-- mybatis -->
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.0</version>
</dependency>

<build>
    <!-- 添加资源 -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <!-- src/main/resources下的指定资源放行 -->
        <includes>
          <include>**/*.properties</include>
          <include>**/*.yml</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>

2.application.yml配置文件加入Mybatis配置信息

mybatis:
  mapper-locations: classpath*:/mapper/*.xml # sql语句存放的地方
  type-aliases-package: com.hxb.mayan.entities # 所有Entity别名类所在包
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印SQL语句

3.xxxMapper.xml文件内容

<mapper namespace="com.hxb.mayan.dao.PaymentDao">

    <resultMap id="BaseResultMap" type="com.hxb.mayan.entities.Payment">
        <id column="payment_id" property="paymentId" jdbcType="DOUBLE"/>
        <result column="payment_serial" property="paymentSerial" jdbcType="VARCHAR"/>
    </resultMap>

    <insert id="create" parameterType="Payment" useGeneratedKeys="false" keyProperty="paymentId">
        INSERT INTO payment (PAYMENT_SERIAL) VALUES(#{paymentSerial})
    </insert>

    <select id="getPaymentById" parameterType="Integer" resultMap="BaseResultMap" >
        SELECT * FROM payment WHERE payment_id = #{paymentId}
    </select>
</mapper>

① xxxMapper.xml文件名称必须与使用@Mapper的接口一致
② namespace:需要与使用@Mapper的接口对应
③ 标签中的id必须与@Mapper的接口中的方法名一致,且参数一致
④ useGeneratedKeys:当数据库新增数据主键自增(Mysql)的时候插入数据成功时,默认会返回1,并且useGeneratedKeys = “true”(不写则默认)。keyProperty="paymentId"需要填写数据库主键对应的实体类属性;当数据库新增数据主键不是自增的时候(Oracle),并且一定要写useGeneratedKeys = “false”。插入成功后,才会返回1,否侧会报错。

3.xxxMapper.xml文件内JdbcType与Oracle、MySql数据类型对应列表

<resultMap id="BaseResultMap" type="com.hxb.mayan.entities.Payment">
    <id column="payment_id" property="paymentId" jdbcType="DOUBLE"/>
    <result column="payment_serial" property="paymentSerial" jdbcType="VARCHAR"/>
</resultMap>

JdbcType与Oracle、MySql数据类型对应列表

Mybatis JdbcType Oracle MySql
JdbcType ARRAY
JdbcType BIGINT BIGINT
JdbcType BINARY
JdbcType BIT BIT
JdbcType BLOB BLOB BLOB
JdbcType BOOLEAN
JdbcType CHAR CHAR CHAR
JdbcType CLOB CLOB TEXT
JdbcType CURSOR
JdbcType DECIMAL DECIMAL DECIMAL
JdbcType DOUBLE NUMBER DOUBLE
JdbcType FLOAT FLOAT FLOAT
JdbcType INTEGER INTEGER INTEGER
JdbcType LONGVARBINARY
JdbcType LONGVARCHAR LONGVARCHAR
JdbcType NCHAR NCHAR
JdbcType NCLOB NCLOB
JdbcType NULL
JdbcType NUMERIC NUMERIC/NUMBER NUMERIC
JdbcType NVARCHAR
JdbcType OTHER
JdbcType REAL REAL REAL
JdbcType SMALLINT SMALLINT SMALLINT
JdbcType STRUCT
JdbcType TIME
JdbcType TIMESTAMP TIMESTAMP TIMESTAMP/DATETIME
JdbcType TINYINT TINYINT
JdbcType UNDEFINED
JdbcType VARBINARY
JdbcType VARCHAR VARCHAR VARCHAR

猜你喜欢

转载自blog.csdn.net/weixin_61470350/article/details/122696482