1. 程式人生 > >springcloud 簡單整合mybatis 及所遇到問題解決方法

springcloud 簡單整合mybatis 及所遇到問題解決方法

一、pom檔案匯入主要jar包:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
</dependency>

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

二、application.xml配置檔案配置:

  datasource:
    url: jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
mybatis:
  mapper-locations: classpath:com.test.dao.*.xml //實體類所要對映sql的xml檔案
  type-aliases-package: com.test.entity //實體類全路徑所在的最後一級目錄

三、java程式碼及xml對映xml檔案:

xml檔案:

<?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.test.dao.IUserMapper">

    <resultMap id="User" type="com.test.entity.User"></resultMap>

    <select id="getUser" resultType="User" parameterType="java.lang.Long">
        SELECT * FROM USER WHERE id = #{id}
    </select>

    <insert id="addUser" parameterType="User">
        INSERT INTO USER (name,username,age,balance)VALUES (#{name},#{userName},#{age},#{balance})
    </insert>

    <update id="modifyUser" parameterType="User">
        UPDATE USER SET username = #{userName} WHERE id = #{id}
    </update>

    <delete id="removeUser" parameterType="java.lang.Long">
        DELETE FROM USER WHERE id = #{id}
    </delete>
</mapper>

java實體類:

package com.test.entity;


public class User {
    private Long id;
    private String name;
    private String userName;
    private Integer age;
    private Double balance;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Double getBalance() {
        return balance;
    }

    public void setBalance(Double balance) {
        this.balance = balance;
    }
}

java實體對應xml的對映類:

package com.test.dao;

import com.test.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Repository
@Mapper
public interface IUserMapper {
    User getUser(Long id);
    void addUser(User user);
    void modifyUser(User user);
    void removeUser(Long id);
}

程式碼簡單,這裡就省略service層,自己寫一個測試controller層進行測試。。。

注意:未完成測試之前都是浮雲。。。

異常開始:

1、java.sql.SQLException: Access denied for user '***'@'localhost' (using password)

xml配置檔案中資料庫配置:username不要寫成了name,修改成username,繼續。。。

2、There is no getter for property named

檢查一下配置檔案中sql入參是否是物件的(而不是資料庫欄位)屬性欄位,繼續。。。

3、Maven專案mybatis Invalid bound statement (not found)解決方法

出現這個異常,用如下方式檢查,

轉載:https://www.cnblogs.com/ewwwe/p/6181872.html

嗯嗯,一般情況下就簡單整合完成了,途中遇到了這些問題,如有其他問題,請留言,一起探討,謝謝!