mybatis对jdbc进行升级,主要可以完成 o r m 的映射。
所谓o r m映射,其实很简单,就是比如
在数据库中有一个如下的表
那么我们在java程序中就有对应的实体类,也叫做pojo 或者 entiry 只要有这个类,我们就可以将java中的一个对象和数据库中的一条记录对应起来。
接下来,我们来编写与一个简单的mybatis程序
首先我们先新建一个简单的工程
找到mybatis官网
添加pom依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
请注意,除了添加mybatis的依赖,还需要添加mysql驱动,这样才能链接数据库
然后接下来就很重要了,我们要编写mybatsi的配置文件
首先是一个XML文件,用来填写mybatis的配置,一般情况下,我们把它叫做: mybatis-config.xml,路径放在resources中,当然我们可以更改路径,不过为了方便起见,我就不在记录多余的方法
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例
xml基本配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
完善配置 填写自己的数据库 和 用户名 密码
请注意
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
这里需要更改的
然后我们需要填写mapper对象-----mapper对象,是我们需要实际编写的sql语句
一张表对应一个mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="qqqq">
<insert id="insertRole">
insert into try(id,name,age) values(1,'绘梨衣',180)
</insert>
</mapper>
请注意 这里的 id是很重要的,我们需要在获取的时候使用
然后我们需要将 XXXMapper绑定在mybatis-config.xml中,这样当程序读取了配置文件,就可以找到XXXMapper
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
这里只要填XXXMapper的名就可以,只要都是放在resources中就可以读取到
完成配置后,我们就可以在主程序中调用mybatis中提供的代理
我们要使用Sqlsession来实现程序与数据库的通信,但是Sqlsession是从SqlSessionFactory中获取的,想要使用SqlsessionFactpory就需要使用SqlSessionFactoryBuilder来创建
请看主程序的代码
// 创建builder对象
SqlSessionFactoryBuilder sqlsesionfb = new SqlSessionFactoryBuilder();
// 但是创建 factory需要一个输入流,将xml的配置文件输入,于是我们可以通过Resources.getResourceAsStream 将xml的文件写入
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = sqlsesionfb.build(in);
// 打开一次session对话
SqlSession sqlSession = sqlSessionFactory.openSession();
// 调用插入方法,输入mapper中的id
// 然后会返回一个int的整数,然后这个整数是被影响的数据库中的条数
int count = sqlSession.insert("insertRole");
// 将事务提交
sqlSession.commit();
System.out.println(count);
然后我们就完成了一个较为简单的mybatis的可以调用 sql语句的方法