快速入门Mybatis(简单易学)
前段时间学完JDBC和Maven后,寻思着把Mybatis也顺手学完,做个笔记自己以后也可以好复习,再把我的学习心得分享在平台上大家可以相互学习
结合我所看的视频和资料,学习mybatis可以从以下几个步骤循序渐进:
- 创建数据库和表,在表里面添加好数据
- 创建模块,导入坐标(也就是导入依赖)
- 编写mybatis核心配置文件(里面有一些我们的连接的参数)
- 编写sql映射文件(主要解决JDBC中的硬编码问题)
- 编码
- 定义pojo类
- 加载核心配置文件,获取SqlSessionFactory对象
- 获取SqlSession对象,执行sql语句
- 释放资源
1.创建数据库和表,在表里面添加好数
首先建立数据库(mybatis),再建立一个表(user),这个表比较简单就三个属性列,自己操作的时候也可以简单点
2.创建模块,导入坐标
接下来建立一个项目,在在项目之中创建一个模块,如果这个不会操作,可以参考我之前发的----->在IDEA中使用Maven,项目模块的名字都可以随意点,也可以和我的一样啊:
下面主要是对pom.xml文件进行配置,因为我们需要用到mybatis,mysql,那肯定需要mybatis,mysql的驱动。还有就是junit的坐标了,其他的花里胡哨的配置咱们就不弄了,等把基础掌握之后再去考虑:
3.编写mybatis核心配置文件
在配置之前,首先咱们去到mybatis官网----->Mybatis官网,在官网里面点击入门,这些入门的内容就是我们接下来要做的操作了,回到IDEA。在main的java目录下的resources文件夹下创建一个配置文件mybatis-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="${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>
粘贴之后,按照下图进行修改:
修改之后如下:
4.编写sql映射文件
编写sql映射文件,那我们首先创建一个sql映射文件:还是在resources下创建UserMappe.xml文件:
去官网找到sql映射文件里面应该写的东西,直接复制粘贴过来:
<?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>
需要对以下的各项进项解释:
- namespace:类似于主函数差不多,起个名字,当有个模块时可以通过namespace的不同去区分相同的操作,随便叫个test
- id:功能函数一样,名字需要具有可读性,让别人知道你在干啥,比如我要查询所有的,我就可以叫selectAll
- resultType:查询结果返回的类型,一般来说都是把对象放到集合中进行返回的,所以我们需要建立一个操作的类,在main的java下创建com.bin.pojo.User(后面也会说的),暂时知道这个地方填啥就行:com.bin.pojo.User即可
- sql:根据你要做的不同操作去写,比如我要查询所有,我就可以写:select * from user(这是我的表名)
修改之后如下:
上面创建了User类,因为要作为返回值,肯定返回的是数据库中表的内容,所以根据数据库中表的内容的属性来创建类的变量:
创建完之后,我们重新打开mybatis-config.xml文件,修改一下里面UserMapper的路径,刚刚我们没有修改,还是默认值,现在将其修改下:
修改之后如下:
5.编码
既然前面操作完成好了。我们就可以最后的测试了。我写了这么多,整个人都麻了
首先是在bin下创建一个测试类(名字随意哈):
写上主函数后就得考虑加载核心配置文件,这个加载的步骤在官网里面也有,不需要记忆,以后用的时候知道在哪里找就行:
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
将这个复制到主函数后发现报错了,是因为包没有导入:
选择第一个,一个一个导入即可:
接下来:
紧接着,我们开始创建SqlSessionFactory对象:
最后: