Mybatis和MybatisPlus的使用以及区别

1.什么是Mybatis框架:(会受到sql注入攻击)

(1)基于java的持久层框架,内部封装了jdbc,我们只需要关注于sql本身,不需要去处理加载驱动,创建连接,创建statement等繁琐操作。

(2)采用ORM思想解决了实体和数据库映射的问题(编写映射XML文件)

2.Mybatis框架的使用:(无须再写dao的实现类)

(1)导入依赖:

<!-- mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>

(2)编写实体类:

@Data
public class User implements Serializable{
   
   private Intager id;
   private String username;
   private Date birthday;
   private  String sex;
   private String address;

}

(3)编写持久层接口

public interface UserDao{

   List <User> findAll();
}

(4)编写映射文件:(UserDao.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">


//对应相关的Dao
<mapper namespace="com.yuan.dao.UserDao">
  //findAll方法
  <select id="findAll" resultType="com.yuan.doman.User">
     SELECT * FROM USER
  <select>
<mapper> 

(4)编写数据库配置文件:SqlConfig.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="mysql">
    //mysql环境
    <environment id="mysql">
      //jdbc事务
      <transactionManager type="JDBC"></transactionManager>
      //POOLED连接池
      <dataSource type="POOLED">
      //四大参数
         <property name="driver" value="com.mysql.jdbc.Driver"/>
         <property name="url" value="jdbc:mysql://localhost:3306/test"/>
         <property name="username" value="root"/>
         <property name="password" value="root"/>
      </datasource>
    </environment>
  </environments>

<mappers>
   <mapper resource="com.yuan.dao/UserDao.xml"/>
<mappers>
</configuration>

(5)代码测试:
 

public class UserDaoTest{

   InputStream is = null;
   SqlSessionFactory = null;
   SqlSession session =null;
 
   @Before
   public void init() throws IOException{
 
   //读取配置文件
   is = Resource.getResourceAAsSream("SqlMapConfig.xml")
   //创建会话工厂
   factory = new SqlSessionFactoryBuilder().build(is);
   //产生SQLSession对象
   session = factory.openSession();
  }
  

   @After
   public void close() throws IOException{

     session.commit();
     session.close();
     is.close();
   }


   @Test
   public void findAllTest(){
   
     UserDao userDao = session.getMapper(UserDao.class);
     System.out.println(userDao.findAll());
   }

}

(6)#{}和${}有什么区别:

#{}是占位符

  @Select("select * from user where id = #{uid} ")

${}是字符串拼接:

<property name="driver" value="${jdbc.driver}"></property>

(7)Mybatis常用注解:

@Insert:实现新增 
@Update:实现更新 
@Delete:实现删除 
@Select:实现查询 
@Result:实现结果集封装
@Results:可以与@Result 一起使用,封装多个结果集 
@ResultMap:实现引用@Results 定义的封装 
@One:实现一对一结果集封装 
@Many:实现一对多结果集封装 
@SelectProvider: 实现动态 SQL 映射 
@CacheNamespace:实现注解二级缓存的使用

参考博客:https://www.jianshu.com/p/1d51d0fa9555

3.什么是MybatisPlus框架:

(1)由于Mabtis需要手写sql,就必须写大量的xml文件,很麻烦,由此诞生了Mybatisplus,对Mybatis做了增强

(2)它封装好了一些CRUD方法,使我们不需要在写xml文件了,直接调用这些方法就行,类似于JPA。

4. MybatisPlus框架的使用:(与spring整合)

(1)导入依赖:

 <!-- mp依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>2.3</version>
        </dependency>

(2)待总结

参考博客:https://www.jianshu.com/p/ceb1df475021

猜你喜欢

转载自blog.csdn.net/kkkkkfffd/article/details/121491536