Mybatis快速入门(真的很快)——非简单贴图放代码

Mybatis快速入门

​ Mybatis是一个开源的持久层框架,非常普及,据说阿里就用它。

​ 有同学问什么是持久层,你只需要浅薄的知道持久层就是数据库就ok了。

Mybatis框架入门使用步骤

  • 创建核心xml配置文件
  • 创建持久化类(POJO)
  • 创建SQL映射xml文件
  • 编写测试代码

我先来解释一下什么叫持久化类,持久化类是指其实例状态要被保存到数据库中的类,也就是一个javaBean。比如以下这个User类

public class User{
    int id;
    String name;
    String password;
    //此处省略了get,set方法,没有也行,最好加上
}

创建核心xml配置文件

​ 这个配置文件之所以是核心配置文件,我觉得主要是因为这个文件是对Mybaits的整体进行配置,而且你在实现API来操作数据库时,只需要加载这个文件。

​ 那么这个文件有啥用?或者说它配置了哪些东西,我来例举一下。

在这里插入图片描述

​ 我们快速入门,并不需要马上就用到除了被我框起来的部分,感兴趣的同学之后可以了解。

注意:配置信息的顺序必须按照这个顺序从上到下,你可以没有,但是顺序得对,比如说,你把mapper属性写在了最上面,那就会报错!

​ 现在你可以创建一个xml文件了,这个文件我们通常命名为 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="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value=""/>
        <property name="username" value=""/>
        <property name="password" value=""/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource=""/>
  </mappers>
</configuration

​ 非常明显,你只需要填写dataSource里的几个value,driver属性我已经帮你填写了,如果你不是mysql数据库,请更改(很多视频用的driver是没有中间那个cj的,那是老版本,现在要加cj)

  • url属性就是你数据库的url地址,如果你在本地上测试,那么大概率为这个,详细不再赘述:

jdbc:mysql://localhost:3306/你的数据库名 如果不是可以在博客或者百度上搜搜,比如,如何看数据库的url地址等。如果数据库乱码了,在最后加上?characterEncoding=utf8(注意有问号隔开,跟在你的数据库名后)

  • username和password就是你的数据库用户名和密码名。

  • mappers属性暂时放在后面填,它就是SQL映射文件的目录地址

填属性的办法还有很多,比如通过导入配置文件或者直接用Java传参(不推荐用java代码,但是通过properties配置文件导入的方式推荐,但是我们只是快速入门,所以直接填写)

创建持久化类(POJO)

​ 之前介绍了什么是持久化类,那我们现在来看看这个类有什么要求。

  1. 属性名必须和你数据表里的字段名一样,不然mybatis找不到。
  2. 不需要类名与数据表名一样

要求不多,那么我们先创一个数据库,里面建一张user表

在这里插入图片描述

之后根据这个表,我们创建一个POJO类

public class User{
int id;
String name;
String password;
//此处省略了get,set方法,没有也行,最好加上
}

这个类主要是作为一个整体与数据库进行信息交换,就好像表里的一行数据一样。

创建SQL映射xml文件

​ 说白了就是保存SQL语句的文件,通过这个文件,我们将SQL语句和java代码分开了,还有一种通过注解的方式,有些人喜欢用,但是用注解来写SQL语句首先复杂的SQL不好搞,更重要的是它又将SQL语句和java代码搞在一起了,所以官方也推荐使用xml文件来写sql语句。这里我们只讲这种方式。我们将文件命名UserMapper.xml,一般都以XXXMapper来命名

<?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="userMapper">
    //我这是查询语句,所以标签是select,如果是插入则写insert,以此类推
    <select id="count" resultType="int">
    select count(*) from user
  </select>
    <select id="findAll" resultType="com.mybatis.bean.User">//你放哪个包下你就填哪里
        select * from user
    </select>
</mapper>

​ 这个文件主要就是在mapper属性里添加你的SQL语句,namespace顾名思义为命名空间,这里你可以随便取一个,但是实际开发中我们需要遵循一定的命名习惯,咱们先不管。我在里面添加了两条select语句分别代表了两种情况。id你可以随便写给名字,目的是调用时能根据命名空间和id精准找到该调用哪条SQL语句。

resultType属性就是你查询结果后返回值的类型,比如我第一条查询表里几条数据,返回的是一个int属性,第二条SQL语句查询的是输出表里的所有数据,就是以我们之前定义的User类作为返回类型,他会根据你的属性名与字段名进行匹配后赋值

​ 不同功能的语句标签也不同,select语句标签就是select,以此类推,有MySQL基础的可以很熟练写下。

​ 最后我们将创建好的mapper文件的引用添加到我们之前创建好的mybatis-config.xml文件里

<mappers>
	<mapper resource="userMapper.xml"/><!-它的位置,而不只是它的名字-->
</mappers>

编写测试代码

public class Test01 {
    public static void main(String[] args) throws Exception{
        String resource = "mybatis-config.xml";
        //获取xml文件输出流
        InputStream is = Resources.getResourceAsStream(resource);

        //创建sqlSessionFactory对象,可以完成对配置文件的读取
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        //创建sqlsession对象,调用mapper文件进行数据库操作
        int count=0;
        SqlSession sqlSession = factory.openSession();

        //mybatis通过mapper文件的namespace和子元素id找到相应的sql语句
        count = sqlSession.selectOne("userMapper.count");
        System.out.println(count);
		//返回不止一个,就需要调用selectList方法
        List<User> userList = sqlSession.selectList("userMapper.findAll");
        for(User user:userList){
            System.out.println(user);
        }
        sqlSession.close();

    }
}

要说的都在注释里了,复制下来跑一跑,你的mybatis就算入门了。之后我会发更多的内容让你进一步掌握这门框架

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值