mybatis

Posted jokerzou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis相关的知识,希望对你有一定的参考价值。

1.mybatis是什么和用法

  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

  iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。当前,最新版本是MyBatis 3.5.1 ,其发布时间是2019年4月8日。.

  平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类。 不仅如此,访问不同的表,还会写很多雷同的代码,显得繁琐和枯燥。用了Mybatis之后,只需要自己提供SQL语句,其他的工作,诸如建立连接,Statement, JDBC相关异常处理等等都交给Mybatis去做了,那些重复性的工作Mybatis也给做掉了,我们只需要关注在增删改查等操作层面上,而把技术细节都封装在了我们看不见的地方。

 

2.mabatis相关包的导入

  技术图片

  另外,此项目还选需要导入sql操作相关jar包

  技术图片

 

3.编写Mybatis的.xml配置文件

  这个配置文件的包含:数据库基本信息中的数据库驱动路径Driver,数据库路径url,数据库用户名username,数据库用户密码password和数据库操作配置文件.xml。

 

管理数据源的代码:

1 <property name="driver" value="     " />
2 <property name="url" value="      " />
3 <property name="username" value="      " />
4 <property name="password" value="      " />
注:value=""中填写相应的数据

管理数据库操作映射(另一个.xml文件)的带按摩
1 <mappers>
2       <mapper resource="xxx.xml"/>
3 </mappers>

注:xxx中填写相对应的创建的.xml文件名

 

 

4.编写xxx.xml的配置文件(数据库增删改查操作)

<mapper namespace="Test1">

    <!-- insert:添加操作的标签,id:用来引用该标签 -->
    <insert id="insertPerson">
        insert into person (name,nickname)
        values(‘张三‘,‘王麻子‘)
    </insert>

    <!-- 带参数的标签 -->
    <insert id="insertPersonWithParams" parameterType="person">
        insert into
        person (name,nickname)
        values(#{name},#{nickname})
    </insert>

    <!-- 查询标签 -->
    <!-- resultMap:集合的泛型类 -->
    <select id="findAll" resultMap="personMap">
        select * from person
    </select>

    <select id="findById" resultType="person" parameterType="int">
        select *
        from person
        where pid=#{pid}
    </select>

    <!-- 修改 -->
    <update id="updateById" parameterType="person">
        update person set
        name=#{name},nickname=#{nickname}
        where pid=#{pid}
    </update>
    
    <!-- 删除 -->
    <delete id="deleteById" parameterType="person">
        delete from person 
        where pid=#{pid}
    </delete>
    
    <!-- 注意:除了查询之外,其他的操作,增删改操作的,起始和标签名称没有关系! -->
    <delete id="insertWithDeleteTag" parameterType="person">
        insert into
        person (name,nickname)
        values(#{name},#{nickname})
    </delete>

</mapper>

 

5.在java类中调用


public
class MybTest { public void MybTest() throws IOException{ String resource = "com/mybatis1.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); //操作数据库,第一个参数是映射的Mapper.xml设定的sql语句,第二个是动态生成sql语句的参数 sqlSession.insert("Test1.insertPerson", user);// sqlSession.selectOne("Test1.findById", 1);// sqlSession.commit(); sqlSession.close(); } }

 

以上是关于mybatis的主要内容,如果未能解决你的问题,请参考以下文章

SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

mybatis动态sql片段与分页,排序,传参的使用

MyBatis动态SQL标签用法

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

mybatis动态sql之利用sql标签抽取可重用的sql片段

[mybatis]动态sql_sql_抽取可重用的sql片段