第一步引入依赖
首先创建一个maven项目 pox.xml引入依赖,这一步要去仓库(Maven Repository: Search/Browse/Explore)看版本号,选择自己要用到版本号,这里我选择3.5.16版本。
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.16</version>
</dependency>
新建maven项目
第二部定义核心配置文件(了解)
在创建的src/main目录下新建一个resources文件存放配置文件mybatis-config.xml,然后在文档(https://mybatis.net.cn/getting-started.html)中复制以下代码复制到新建好的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="${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>
下面是对上面进行解释
<?xml version="1.0" encoding="UTF-8" ?>
<!--?xml 此为xml声明任何文件都有 version="1.0"版本号 encoding="UTF-8"编码方式-->
<!--DOCTYPE文档类型 configuration根元素 所有元素都在这里面配置-->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 环境配置, 里面包含多个,允许配置多个数据源(很少用) default="development"是下面某个环境变量的id 指的是某个默认的环境变量 -->
<environments default="development">
<environment id="development">
<!-- jdbc 事务管理器-->
<transactionManager type="JDBC"/>
<!-- 数据源 POOLED 连接池-->
<dataSource type="POOLED">
<!-- 数据库驱动 driver-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 连接字符串-->
<property name="url" value="jdbc:mysql://localhost:3306/student"/>
<!-- 数据库的用户名密码-->
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 映射器 告诉mybatis 映射文件的位置-->
<mappers>
<mapper resource="com/by/mapper/UserMapper.xml"/>
</mappers>
</configuration>
引入数据库驱动
再来仓库(https://mvnrepository.com/search?q=mysql)找数据库驱动,
<!--数据库依赖 -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>9.1.0</version>
</dependency>
完善核心配置文件
将核心配置文件完善一部分,账号密码是你数据库自己设置的用户密码,并创建数据库shop,设计一个s_user表,操作表需要借助映射器说白了就是接口,mybatis在操作的时候根据这个接口生成一个动态代理类(在操作的时候每一张表对应一个接口) 。现在在java.com.jy中创建mapper文件并建立UserMapper接口。
映射器文件
默认放在resources中与对应的mapper放在同一目录中,也就是说需要在resources中建立com/jy/mapper/UserMapper.xml,文件内容在文档中(https://mybatis.net.cn/getting-started.html)
<?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.jy.mapper.UserMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
做一个简单的查询
mybatis通常将结果封装成JavaBean,定义简单的 JavaBean,在UserMapper接口中进行定义,对应表中的字段,在src/main中新建一个包src/main/java/com/jy/bean,在包中新建类User,对应字段我就没写全省事,引入lombox插件来定义set()、get()方法,在UserMapper接口中定义查询抽象方法,在UserMapper.xml中查询,id的值对应映射器接口中的方法名,resultType返回结果集就是我们定义的Javabean的类型的结果集填写路径即可,并写出查询语句。回到核心配置文件中告诉mybatis 映射文件的位置。mybatis在运行时会先读取核心配置文件,核心配置文件当中有数据源和映射文件路径,映射文件有接口方法就可以进行操作数据库了。现在工作昨晚开始简单查询。
<!-- lombox插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
</dependency>
<?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:/shop"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/jy/mapper/UserMapper.xml"/>
</mappers>
</configuration>
查询
先给数据库中添加一条数据,然后在去testapp中用MyBatis 提供的一个SqlSessionFactoryBuilder构建器类,用于创建 SqlSessionFactory 实例。它的作用是从 MyBatis 的配置文件(通常是 mybatis-config.xml)中读取配置信息,并将这些配置信息封装到 SqlSessionFactory 对象中,最终返回一个可以创建 SqlSession 的工厂。这种方法比较笨这里直接先用来尝试了,所以了解即可。可以在我debug的地方打然后debug运行就可以看到数据了
public class AppTest
extends TestCase
{
public void testHello(){
// 1.创建SqlSessionFactoryBulider
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
// 指定mybatis核心配置文件 读取到流中
InputStream is=getClass().getClassLoader().getResourceAsStream("mybatis-config.xml");
// 2.创建SqlSessionFactory
SqlSessionFactory factory= builder.build(is);
// 3.创建SqlSession
SqlSession session= factory.openSession();
// 执行查询
// 通过绑定的 语句 查询(老的 不推荐) 参数一:命名空间加方法名 参数二:id
User user=session.selectOne("com.jy.mapper.UserMapper.queryUser",1);
System.out.println("-------------");
// 关闭会话
session.close();
}
}