美文网首页
摆脱localhost - 使用Mybatis链接远程数据库

摆脱localhost - 使用Mybatis链接远程数据库

作者: Amberllo | 来源:发表于2020-08-06 16:33 被阅读0次

    学习路径
    [阿里云上部署tomcat](https://www.jianshu.com/p/9043f8dc979c
    从0搭建SpringMVC工程
    [使用Mybatis链接远程数据库] (https://www.jianshu.com/p/bba31c8fc26d

    购买的阿里云服务器,还有半年到期了,工作之余抓紧时间学习
    这次的目标入题:使用Mybatis,远程查询服务器中的数据库数据

    https://mybatis.org/mybatis-3/zh/index.html
    mybatis官网

    分解步骤为:
    1.在服务器中安装MySQL,配置好数据库与表,以及一些简单的数据
    2.使用Intellij idea建立Maven的普通工程(非web工程)
    3.写一个Main函数,简单链接数据库并作查询操作。

    1.Linux服务器中安装MySQL
    1.1 使用yum install mysql,具体怎么设置root密码实在是忘了...大家还是翻翻别人的文章吧
    1.2 使用Navicat链接上数据库,手动建库建表。我们这次的学习目的,仅仅是学习Mybatis的配置,与数据库的交互。业务上能自动的东西,先手动处理。


    image.png
    image.png

    简简单单建了1张USER_TABLE, 查两条数据进去。远程数据库环境就准备好了。

    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

    在官网里,推荐了这个配置


    image.png

    当然我参考一下,根据自己情况,也搭建起来
    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>
    
        <!--  数据库环境  -->
        <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://服务器host:3306/数据库名"/>
                    <property name="username" value="root"/>
                    <property name="password" value="数据库密码"/>
                </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函数:

    public static void main(String[] args) throws IOException {
            // 根据 mybatis-config.xml 配置的信息得到 sqlSessionFactory
            String resource = "mybatis-configs.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            // 然后根据 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());
            }
    
        }
    

    我的工程目录结构:


    image.png

    遇到的问题:
    1.mybatis-configs报错,找不到这个文件
    java.io.IOException: Could not find resource org/myapp/data/mybatis-configs.xml

    有两个原因:
    没有配置好sources Folders,那么老规矩,去Project Structure那设置一下目录结构


    image.png

    于是我把mybatis-configs.xml,搬去resources目录了,还真找到,但又遇上了第二个问题, Cause: java.io.IOException: Could not find resource org/myapp/data/UserMapper.xml
    后面查阅文章才发现,原来是在maven环境下,sources配置java目录下,无法识别xml。所以得在pom.xml下加入build信息

        <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            </resources>
    
        </build>
    

    于是真的可以
    运行main函数,输出结果


    image.png

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

    相关文章

      网友评论

          本文标题:摆脱localhost - 使用Mybatis链接远程数据库

          本文链接:https://www.haomeiwen.com/subject/wzwzrktx.html