环境:

  1. JDK 13.0.2
  2. tomcat 9.0.3
  3. mybatis 3.5.4
  4. mysql 8

入门

早期为:ibatis:apache

2010年被Google收购改称:Mybatis

主要作用:简化JDBC操作,实现数据的持久化。

ORM:Object Relational Mapping,可以使开发人员像操作对象一样操作数据库

mybatis是ORM的一种实现

下载

之前看过的一个教程是使用Idea的,也就是直接使用依赖库导入,这次看的是导入jar使用。

去官网

img

选择Getting Started

img

会有Maven方式,当然使用Idea就可以直接复制代码框内代码到idea中,但这次选择jar的超链接。

img

就来到了熟悉的github,在最新版本下,有三个选项,这里选择第一个zip包下载。

img

下好之后是个zip,

img

打开以后目录文件如图,

lib文件夹存放mybatis的一些依赖包,

license就是字面意思 许可证,

mybatis-3.5.4.jar即要用到的jar,

.pdf即使用说明书,

NOTICE也是字面意思 注意事项。

使用

简单使用一下:

导包

打开eclipse,新建一个JAVA项目,因为mybatis是操控数据库的,所以暂时可以先间隔Javaproject试一下。

这里起名“TestMyBatis”,将mybatis-3.5.4.jar拖到src里面,顺便add to buildpath,添加环境。

建表

打开cmd或者使用navicat,因为我的navicat建数据库总是会有数据编码混乱的问题,我一般建表都是用cmd。

img

创建实体类及映射关系

创建实体类 Person

img

构建这个类

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

1
2
private String id;private String name;private int age;
public Person() { }public Person(String id, String name, int age) { super(); this.id = id; this.name = name; this.age = age;}public String getId() { return id;}public void setId(String 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;}

创建配置文件映射表和类的映射 .xml文件

img

点这里转换视图

在刚刚的.pdf文件中有大概的配置方法,打开后找到“Exploring Mapped SQL Statements

下面有

-

-

-

-

1
<?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.mybatis.example.BlogMapper">      <select id="selectBlog" resultType="Blog">            select * from Blog where id = #{id}    </select> </mapper>

直接复制,到刚刚的xml中,更改namespace 后面的内容为自己的xmltop.eshyee.entity.personMapper

改完之后

-

-

-

-

1
<?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="top.eshyee.entity.personMapper">  <select id="queryPersonById" resultType="Person" parameterType="String">    select * from person where id= #{id}  </select></mapper>

在创建一个配置文件,在src下创建一个叫config.xml的文件。

在pdf中查找“Building SqlSessionFactory from XML

这里需要提前准备好一个用来链接的jar MySQL connector

网址:https://dev.mysql.com/downloads/connector/j/

img

选zip,下好之后,里面乱七八糟的东西就不细致分析了,会点工地英语看看就好。主要使用mysql-connector-java-8.0.19.jar。拖到eclipse ,add一下环境。

配置xml如下:

-

-

-

-

-

-

-

-

-

1
<?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://localhost:3306/test?useSSL=false&amp;serverTimezone=UTC" />        <property name="username" value="我的用户名" />        <property name="password" value="我的密码" />      </dataSource>    </environment>  </environments>  <mappers>    <mapper resource="top/eshyee/entity/personMapper.xml" />  </mappers></configuration>

ok写个测试用例

-

-

-

-

-

-

1
public static void main(String[] args) throws IOException {    // TODO Auto-generated method stub    //加载config    Reader reader =Resources.getResourceAsReader("config.xml");    SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);    SqlSession session= sessionFactory.openSession();    String statement ="top.eshyee.entity.personMapper.queryPersonById";    Person person=session.selectOne(statement,"1234567890");    //这里的1234567890是我接下来要插入的字符串    System.out.println(person.toString());    session.close();  }

同时在person下写一个toString()方法,这个可以自己来定,只要能看到person里的值就🉑。

测试

测试一下~~在数据库中插入一行数据

img

run一下test

img

🆗

常见问题

  1. 写完之后run的时候除了问题,报了一坨错其中有个timezone…想起来url写的jdbc:mysql://localhost:3306/test,然后后面加了?useSSL=false&serverTimezone=UTC,结果还不对,就百度了一下&在xml中是一种很神奇的存在得写成&.
  2. Resource导包的时候选择org.apache.ibatis.io.*;

总结

从不总结👌

喜欢此内容的人还喜欢

恭喜中国作协,你们的会员汪芳和港独一起被BBC授奖了!恭喜中国作协,你们的会员汪芳和港独一起被BBC授奖了!…明德时评不喜欢不看的原因确定内容质量低 不看此公众号BC爆增1933例,17人丧生,27校沦陷,麦当劳大统华中招,持续恶化学校或将关闭BC爆增1933例,17人丧生,27校沦陷,麦当劳大统华中招,持续恶化学校或将关闭…每天温哥华不喜欢不看的原因确定内容质量低 不看此公众号

img

微信扫一扫
关注该公众号