Mybatis框架总结

编程思想的培养?

1.什么时候需要传参?
add(对象 引用) update(对象 引用) delete(int id) delete(对象 引用) findById(int id)
2.什么时候需要返回值?
List<对象> findAll() , 对象 findById()
3.返回值改为int类型 传参+返回值一起写 谁执行效率高?
int delete(int id) 代码会多 相对来说 返回值为int 需要判断
void delete(对象) 这样效率好 代码少

总结: 增加 更新 删除 都是无返回值 编译速度块 执行效率高

mybatis框架的优缺点:

优点:
(1)与jdbc相比,减少了50%以上的代码量.
(2)最简单的持久化框架,小巧并简单易学
(3)SQL代码从程序代码中彻底分离,可重用
(4)提供xml标签 支持编写动态sql
(5)提供映射标签,支持对象与数据库的ORM字段映射
缺点:
(1)SQL语句编写工作量大,对开发人员有一定要求
(2)数据库移植性差

mybatis专注于SQL本身,是一个足够灵活的Dao层解决方案,适用于性能要求较高或者需求多变的互联项目

MyBatis的开发步骤:

1.下载mybatis.jar包并导入工程
2.编写MyBatis核心配置文件(configuration.xml)
3.创建实体类 --entity
4.dao层-SQL映射文件(mapper.xml)***
5.创建测试类
读取核心配置文件mybatis-config.xml
创建SqlSessionFactory对象,读取配置文件
创建SqlSession对象
调用mapper文件进行数据操作
提交事物(可选)

三者的作用域:

SqSessionFactoryBuilder

  • 用过即丢,推荐作用范围:方法体内
    SqlSessionFactory
  • 最佳作用范围:应用的全局作用域
  • 生命周期与应用的生命周期相同
    SqlSession
  • 线程级
  • 一个request请求期间

面试题: jdbc hibernate mybatis 区别

jdbc: 优点: sql语句非常灵活 可移植性最强(相对来说).
缺点: 代码量多 冗余 java代码和sql耦合在一起 不利用代码维护.
hibernate: 优点:完全面向对象写法 利用HQL语句 完全脱离java代码和sql.
缺点: 全封装的框架 底层代码出问题 不好调试 可移植性差.
mybatis: 优点: 半封装的框架 脱离java代码和sql 可移植性非常强 应用非常灵活.
缺点:大量写sql语句(不包含java代码 ) 代码量多.

Mybatis框架中最重要的是就是子配置文件中的SQL语句
List 返回值就是T 默认对象存到数组([])
List> 返回值就是第一个泛型的类型 集合类默认存集合({})
展示sql使用log4g

主配置文件

 


    
    
     
        
         
    
    
      -----默认的运行id
        ---运行id
            ---事务管理器配置
            ---数据源配置
                
                
                
                
            
        
    
    
    
        
        
        
    

子配置文件





     -----添加
        insert into dept(dname,loc) values(#{dname},#{loc})
    
    
    
    
    ----更新
      update dept set dname=#{dname},loc=#{loc} where deptno=#{deptno}
    
    
    -----删除
      delete from dept where deptno=#{deptno}
    
    
    
    
    
    
    
    
    

数据库中字段和实体类中的属性不一致 写SQL要起别名 都是在子配置文件
第一种方法
select u.id u_id,u.name u_name,u.age u_age from user u
id name age数据库中字段名
u_id u_name u_age 是实体类中的属性
第二种方法


  
  
  
  
  



表关系

首先,建立三张表 user info book
建立实体类

public class Book {
    private Integer b_id;
    private String b_nanme;
    private Info info;

public class Info {
    private int i_id;
    private String i_work;

public class User {
   private int id;
   private String name;
   private int age;
 
   //对一
   private Info info;
   //   对多
   private Set book;
  

省略上面的set get方法以及toString方法

对一关系

在UserMapper.xml中




  
  
  







测试

@Test
    public void testsel1() throws IOException{
        //加载主配置文件
                Reader reader=Resources.getResourceAsReader("mybatis-config.xml");
                //创建SqlSessionFactoryBuilder
                SqlSessionFactoryBuilder sessionFactoryBuilder=new SqlSessionFactoryBuilder();
                //创建session工厂
                SqlSessionFactory sessionFactory=sessionFactoryBuilder.build(reader);
                //利用工厂开始session
                SqlSession session=sessionFactory.openSession();
                List list=session.selectList("user.findall");
                System.out.println(list);
        
    }

模糊查询语句




mybatis框架就是连接数据库,做增删改查,我觉得最重要的就是sql语句,只要sql语句正确,其他的问题也就都不是问题了,在ssm项目中都不用单独建立mybatis的配置文件,之间在Spring的配置文件中写就可以,Spring中可以很好的整合mybatis框架. 重点是mapper文件 重点是mapper文件重点是mapper文件

你可能感兴趣的:(Mybatis框架总结)