學(xué)習(xí)路徑
[阿里云上部署tomcat](http://www.itdecent.cn/p/9043f8dc979c
從0搭建SpringMVC工程
[使用Mybatis鏈接遠(yuǎn)程數(shù)據(jù)庫] (http://www.itdecent.cn/p/bba31c8fc26d
購買的阿里云服務(wù)器,還有半年到期了,工作之余抓緊時間學(xué)習(xí)
這次的目標(biāo)入題:使用Mybatis,遠(yuǎn)程查詢服務(wù)器中的數(shù)據(jù)庫數(shù)據(jù)
https://mybatis.org/mybatis-3/zh/index.html
mybatis官網(wǎng)
分解步驟為:
1.在服務(wù)器中安裝MySQL,配置好數(shù)據(jù)庫與表,以及一些簡單的數(shù)據(jù)
2.使用Intellij idea建立Maven的普通工程(非web工程)
3.寫一個Main函數(shù),簡單鏈接數(shù)據(jù)庫并作查詢操作。
1.Linux服務(wù)器中安裝MySQL
1.1 使用yum install mysql,具體怎么設(shè)置root密碼實在是忘了...大家還是翻翻別人的文章吧
1.2 使用Navicat鏈接上數(shù)據(jù)庫,手動建庫建表。我們這次的學(xué)習(xí)目的,僅僅是學(xué)習(xí)Mybatis的配置,與數(shù)據(jù)庫的交互。業(yè)務(wù)上能自動的東西,先手動處理。


簡簡單單建了1張USER_TABLE, 查兩條數(shù)據(jù)進(jìn)去。遠(yuǎn)程數(shù)據(jù)庫環(huán)境就準(zhǔn)備好了。
2.在IntelliJ Idea建一個Maven工程,在pom文件添加mybatis和jdbc的依賴, mvn clean , build, install 操作一下,看看External Library里有沒有下載到依賴
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>

在官網(wǎng)里,推薦了這個配置

當(dāng)然我參考一下,根據(jù)自己情況,也搭建起來
1.在resources補充了mybatis-configs.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 數(shù)據(jù)庫環(huán)境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://服務(wù)器host:3306/數(shù)據(jù)庫名"/>
<property name="username" value="root"/>
<property name="password" value="數(shù)據(jù)庫密碼"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/myapp/data/UserMapper.xml"/>
</mappers>
</configuration>
2.在data目錄下,補充了UserMapper.java以及UserMapper.xml
public class UserMapper {
private int _userid;
private String _username;
//setter getter省略
}
<?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="org.myapp.data">
<select id="listUser" resultType="org.myapp.data.UserMapper">
select * from USER_TABLE
</select>
</mapper>
最后編寫Main函數(shù):
public static void main(String[] args) throws IOException {
// 根據(jù) mybatis-config.xml 配置的信息得到 sqlSessionFactory
String resource = "mybatis-configs.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 然后根據(jù) sqlSessionFactory 得到 session
SqlSession session = sqlSessionFactory.openSession();
List<UserMapper> userList = session.selectList("listUser");
for (UserMapper user : userList) {
System.out.println("ID:" + user.get_userid() + ",NAME:" + user.get_username());
}
}
我的工程目錄結(jié)構(gòu):

遇到的問題:
1.mybatis-configs報錯,找不到這個文件
java.io.IOException: Could not find resource org/myapp/data/mybatis-configs.xml
有兩個原因:
沒有配置好sources Folders,那么老規(guī)矩,去Project Structure那設(shè)置一下目錄結(jié)構(gòu)

于是我把mybatis-configs.xml,搬去resources目錄了,還真找到,但又遇上了第二個問題, Cause: java.io.IOException: Could not find resource org/myapp/data/UserMapper.xml
后面查閱文章才發(fā)現(xiàn),原來是在maven環(huán)境下,sources配置java目錄下,無法識別xml。所以得在pom.xml下加入build信息
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
于是真的可以
運行main函數(shù),輸出結(jié)果

最后附上git工程:
https://github.com/Amberllo/MyBatisTest/tree/master