第一次学习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文件的加载中间用/隔开。