溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mybatis-Spring連接mysql 8.0配置步驟出錯(cuò)的解決方法

發(fā)布時(shí)間:2020-09-16 12:20:02 來(lái)源:腳本之家 閱讀:268 作者:哇咔咔負(fù)負(fù)得正 欄目:編程語(yǔ)言

本文為大家解決了Mybatis-Spring 連接 MySQL8.0 的配置步驟出錯(cuò)問題,供大家參考,具體內(nèi)容如下

環(huán)境以及配置文件

  • JDBC jar版本 : 8.0.11
  • Mybatis jar版本 : 3.4.6
  • Spring jar版本 : 4.3.18
  • Mybatis-Spring jar版本 : 1.3.1
  • 配置信息文件 : db.properties
  • Spring配置文件 : applicationContext.xml

測(cè)試路徑如下圖

Mybatis-Spring連接mysql 8.0配置步驟出錯(cuò)的解決方法

配置db.properties

配置db.properties中填寫以下內(nèi)容

# 驅(qū)動(dòng)名這樣寫
jdbc.driver=com.mysql.cj.jdbc.Driver
# url這樣寫
jdbc.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
# 數(shù)據(jù)庫(kù)用戶名
jdbc.username=root
# 數(shù)據(jù)密碼
jdbc.password=password 

這里有一個(gè)錯(cuò)誤點(diǎn), 就是用戶名的key用的是username, 這樣的話, 在applicationContext.xml中配置數(shù)據(jù)源時(shí)用的是${username}, 這樣會(huì)導(dǎo)致一個(gè)問題, 因?yàn)閄ML的表達(dá)式中${username}, 代表電腦環(huán)境路徑下的username!!! 就是說(shuō)用的是你電腦的用戶名, 不是數(shù)據(jù)庫(kù)的用戶名!!! 總而言之, 別用username當(dāng)key名 我用的是jdbc.username.

配置applicationContext.xml

1.在applicationContext.xml中, 引入db.properties 文件.

<context:property-placeholder location="db.properties"/>

2.配置數(shù)據(jù)源

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName" value="${jdbc.driver}"/>
 <property name="url" value="${jdbc.url}"/>
 <property name="username" value="${jdbc.username}"/>
 <property name="password" value="${jdbc.password}"/>
</bean>

3.配置 Mybatis 掃描mapper.XML文件

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource"/>
 <!-- 寫一些數(shù)據(jù)庫(kù)的配置, 因?yàn)槲覜]用到, 所以用不著 -->
 <!-- <property name="configLocation" value="sqlMapConfig.xml"/> -->
 <property name="mapperLocations" value="com/dao/mapper/*.xml"/>
</bean>

4.掃描全部dao層接口

<!-- 掃描所有dao -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 <property name="basePackage" value="com.dao" />
 <!-- 單數(shù)據(jù)源可以不寫sqlSessionFactoryBeanName屬性 -->
 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

配置dao 層接口與 mapper文件

dao接口

public interface UserDao {
 public List<User> selAll();
}

mapperXML文件

<mapper namespace="com.dao.UserDao">
 <select id="selAll" resultType="com.entity.User">
  select * from user
 </select>
</mapper>

測(cè)試

@Test
public void selAll() {
 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
 UserDao userDao = context.getBean(UserDao.class);
 List<User> list = userDao.selAll();
 System.out.println(list);
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI