擺脫localhost - 使用Mybatis鏈接遠(yuǎn)程數(shù)據(jù)庫

學(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ù)上能自動的東西,先手動處理。


image.png

image.png

簡簡單單建了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>
image.png

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


image.png

當(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):


image.png

遇到的問題:
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)


image.png

于是我把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é)果


image.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容