springcloud 簡單整合mybatis 及所遇到問題解決方法
阿新 • • 發佈:2019-01-05
一、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
嗯嗯,一般情況下就簡單整合完成了,途中遇到了這些問題,如有其他問題,請留言,一起探討,謝謝!