Mybatis简单介绍和环境搭建

Mybatis的入门学习

既然是入门的学习,首先我们就需要了解Mybatis到底是一个什么样的东西,它是干什么的?
简单来说它是一个轻量级的支持持久层的开源框架,就是主要来处理我们web项目中的dao层。

那么问题来了什么是持久层?

首先我们需要理解的是什么是持久化对吧。持久化就是把我们内存中的数据持久化到数据库啊,磁盘啊这些持久化的设备,也就是说持久化其实是一个动作。内存数据->可持久化设备。那么持久层是什么?想想我们什么时候需要把内存存储到数据库?不就是当我们处理web项目的一些用户啊,商品啊这些的时候嘛。那我们调用的流程是什么?视图->servlet->service->dao对吧,那我们实际上在哪把数据持久化?不就是dao层嘛。不过来到Mybatis这个地方,我们就需要把dao改称为Mapper了。

先下个结论吧:
其实Mybatis就是极大的简化了我们的数据库的代码操作,我们根本不需要写jdbc这些代码,想想看我们jdbc里面写下来的那些代码,比如事务,比如各种get啊set啊特别多对吧。但是换到Mybatis,我们直接就能够getMapper,通过Mapper得到的mapper实现类(dao实现类)就一句代码就完成了所有的操作。

 SqlSession sqlSession = MybatisUtils.getSqlSession();
        //获取实现类(其实是一个代理类)
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //实际上是dao层的方法
        User user = mapper.getUserById(1);
        System.out.println(user);
        sqlSession.close();

你看就是这么简单,只需要搭建好环境,然后配置好xml文件就好了。

Mybatis还有各种可以动态加入sql的技术,想想我们之前写的一些简单的web项目,拼接sql语句是不是需要各种if,然后有时候加多了一个逗号啊,加多了一个乱七八糟的符号就会导致我们出现错误,而Mybatis可以简化这里的操作。

Mybatis还可以通过注解来完成jdbc的操作,也可以通过Mybatis实现一些缓存上面的操作。一级缓存还有二级缓存等。

废话不多说。我们要学习一个框架不仅仅是要学习知识,我觉得更重要的学习一种解决问题的思路,也要学习如何看着官方文档学习,找到学习的主线。

那么第一点我们要学会的是搭建环境->运行就好了

①创建一个maven项目,然后导入Mybatis的jar,mysql的jar,junit的jar
②导完jar包就需要创建一个mybatis-xml文件,这个文件可以直接上官方文档找,以下就是这个文件,别忘记了datasource这里的操作是跟jdbc里面连接数据库的数据是一样的。只需要把${}这个直接改成实际的值就好了,比如username=“xxxx”

<?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>
    <properties resource="jdbc.properties">
        <property name="username" value="root"/>
        <property name="password" value="123456"/>

    </properties>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="cacheEnabled" value="true"/>
    </settings>



    <typeAliases>
       <typeAlias type="com.kuang.dao.UserMapper" alias="userMapper"/>
        <package name="com.kuang.pojo"/>
    </typeAliases>


    <environments default="development">
        <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${driverClassName}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
        </dataSource>
        </environment>

    </environments>


    <mappers>
        <mapper resource="com/kuang/dao/userMapper.xml"/>
    </mappers>


</configuration>

③创建实体类和实体类接口还有xml文件,这里解释一下这个xml文件,我们一开始需要绑定对应的接口,其实就是相当于是实现接口,然后通过绑定下面sql语句的id来确定要实现的方法。其实就是用xml文件代替了实体类,看上去很麻烦,但实际上简化了操作,这里用到了反射。下篇文章细讲
在这里插入图片描述
userMapper.xml文件

<?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">
<!--bind the interface-->
<!--绑定我们要使用的接口-->
<mapper namespace="UserMapper">
    <select id="getUsersList" resultType="User">
      select * from user
    </select>

    <select id="getUserById" resultType="User" parameterType="int">
        select  * from user where id = #{id}
    </select>

    <insert id="insertUser" parameterType="User">
        insert into user(id,name,pwd) values(#{id},#{name},#{pwd})
    </insert>

    <update id="updateUser" parameterType="User">
        update user set name =#{name},pwd= #{pwd} where id = #{id}
    </update>

    <delete id="deleteUser" parameterType="int">
        delete from user where id = #{id}
    </delete>

    <select id="getUserById2" resultType="User" parameterType="map">
        select * from user where id = #{userId}
    </select>

    <select id="getUserByLike" resultType="User" parameterType="map">
        select * from user where name like "%"#{value}"%"
    </select>

</mapper>

④创建测试类和工具类
共具类其实体现的就是Mybatis框架的一个生命周期。我们需要创建一个SqlSessionFactoryBuilder,然后通过它读取xml文件通过反射来创建一个SqlSessionFactory,最后就是创建SqlSession了,SqlSession相当于PrepareStatement执行sql语句,但是它强大的多。
然后测试就好了。(这里就可以把官方文档的代码抄上去就好了)

注意搭建环境的几个问题
①配置文件没有注册(mabatis-config里面没有注册我们的实现类mapper.xml)
②绑定接口错误(mapper.xml里面需要绑定接口,相当于实现接口)
③方法名不正确(实现类的方法id)
④返回类型不正确(通常使用的是resultType或者是map)
⑤Maven导出资源问题(它不会把java和resource文件里面的资源导出,所以我们需要手动导出资源(在pom.xml里面去设置过滤器,properties和xml文件))

好了搭建环境和简单的介绍就到这里了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值