记第一次学习Mybatis

第一次学习Mybatis是在网上找了一个老师的视频教程看的。

首先,在Mybatis下载相关包,在入门里面既可以选择使用Maven依赖,也可以直接下载jar包。下好mybatis-3.4.6-zip包后,解压缩会看到里面有如下文件。

 

图中选中的即是在学习mybatis初期需要使用到的jar包,将此jar包引入到建立的java工程中。

上图中的pdf文件是一份官方的说明文档,里面有所需要的配置信息的部分。

在此,我们还需要mysql的驱动程序,同样的去官网下载mysql-connector-java-8.0.13,同样的将下载压缩后的jar包引入工程中

然后开始建立Demo,在工程中创建一个Person的类如下

package com.liusong.entity;

public class Person {
    private int id;
    private String name;
    private int age;

    public Person() {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Person(int id, String name, int age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return "编号:" + id + "," + "姓名:" + name + "," + "年龄:" + age;
    }

}

 同样在数据库中创建一个对应Person的表

接下来在工程中配置Mapper文件,代码如下

<?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.liusong.entity.PersonMappers">

    <select id="queryPersonById" resultType="com.liusong.entity.Person" parameterType= "int"> 
    select * from person where id= #{id} 
     </select>
        
</mapper>

配置文件config.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://127.0.0.1:3306/shop?serverTimezone=UTC" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
    <!-- 加载映射文件 -->
        <mapper resource="com/liusong/entity/PersonMappers.xml" />
    </mappers>
</configuration>

主程序TestMybatis

package com.liusong.entity;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestMybatis {
    public static void main(String[] args) throws IOException {
        Reader reader = Resources.getResourceAsReader("config.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sessionFactory.openSession();
        String statement = "com.liusong.entity.PersonMappers.queryPersonById";
        Person person = session.selectOne(statement, 1);
        System.out.println(person);
        session.close();
    }
}

以上准备工作都完成后,开始运行 结果如下

在此期间曾遇到可很多错误,

(1)是显示找不到config.xml文件,上网搜索了答案后,将config.xml文件移至src下面,问题解决

(2)数据库时间与驱动程序时间冲突,上网搜查后得以解决,参考https://blog.csdn.net/Hello_World_QWP/article/details/80421533

(3)文件加载路径问题,类的加载中间用点隔开,xml文件的加载中间用/隔开。

 

posted @ 2018-12-25 16:59  Lovis  阅读(136)  评论(0编辑  收藏  举报