你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

想了解mybatis看我的就行

2021/12/5 16:32:16

一,什么是mybatis

        很多IT小萌新在学习编程的过程中都会学到mybatis,但是刚接触的时候呢,可能回有这些疑问,什么是mybatis呢,有什么特点呢,学完有什么用呢,带着你的疑问,接下来就看小尘的吧!

        

         1,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

         2,MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

         3,MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

         那总体来说呢,mybatis就是封装与数据库交互的半成品,下面的这个呢就是mybatis的架构体系图。

        

二,为什么需要Mybatis

         1,Mybatis就是帮助程序猿将数据存入数据库中 , 和从数据库中取数据 .传统的jdbc操作 , 有很多重复代码块 .比如 : 数据取出时的封装 , 数据库的建立连接等等... , 通过框架可以减少重复代码,提高开发效率 .

         2,MyBatis 是一个半自动化的ORM框架 (Object Relationship Mapping) -->对象关系映射

所有的事情,不用Mybatis依旧可以做到,只是用了它,所有实现会更加简单!技术没有高低之分,只有使用这个技术的人有高低之别。

三,Mybatis的优点

      1. 与JDBC相比,减少了50%以上的代码量。

  2. MyBatis是最简单的持久化框架,小巧并且简单易学。

  3. MyBatis灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。

  4. 提供XML标签,支持编写动态SQL语句(XML中使用if, else)。

  5. 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)。

        总结一下:就是有了MyBatis以后再也不用写原生的JDBC代码了,你说香不香!

四,Mybatis的使用

           上面就是简单的给大家简单的介绍一下Mybatis,相信看到这里的铁铁已经迫不及待的想使用Mybatis写程序了吧,那咱们废话不多说,直接上代码!

          1,先创建一个maven的java工程;

                                    

 

         2,引入mybatis的jar 和 mysql的驱动jar包。

<dependencies>
    <!--mysql驱动依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
    <!--mybatis的依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
     <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
        </dependency>
</dependencies>

         3,创建相应的实体类

              

        4, 配置mybatis的配置文件---mybatis会读取该文件的内容完成连接数据库的功能。

                  

<?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.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
</configuration>

         5,编写相应的映射文件。-----sql语句 实体类与表的映射。

        

<mapper namespace="a">
    <select id="getUserById" resultType="com.ykq.entity.User">
        select * from users where id=#{uid}
    </select>
</mapper>

        6,把映射文件引入到mybatis配置文件中。

      

        7,测试加上CRUD操作


public class TestUser {
    @Test
    public void testSellAll() throws Exception {
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sqlSessionFactory.openSession();
        List<User> list = session.selectList("a.selectAll");
        System.out.println(list);
    }
    @Test
    public void testSelectById() throws Exception {
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sqlSessionFactory.openSession();
        User user = new User();
        user.setId(3);
        List<User> list = session.selectList("a.getUserById", user);
        System.out.println(list);
    }
    @Test
    public void testUpdate() throws Exception {
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sqlSessionFactory.openSession();
        User user = new User();
        user.setName("zx");
        user.setPassword("345");
        user.setRealname("小尘");
        user.setId(2);
        session.update("a.updateUser",user);
        session.commit();
    }
    @Test
    public void testInsert() throws Exception {
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sessionFactory.openSession();
        User user = new User();
        user.setName("cc");
        user.setPassword("321");
        user.setRealname("墨小尘");
        int row = session.insert("a.addUser",user);
        System.out.println();
        session.commit();
    }
    @Test
    public void testdelete() throws Exception {
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sessionFactory.openSession();
        User user = new User();
        user.setId(3);
        int delete = session.delete("a.deleteUser", user);
        System.out.println(delete);
        session.commit();
    }
}