mybatis

来源:互联网 发布:网络文学评论平台 编辑:程序博客网 时间:2024/05/22 15:02
说明: 视频学习总结
          原视频网址: http://edu.51cto.com/course/10897.html
一、mybatis介绍
1、与ibatis关系: Mybatis是apache开源项目ibatis,后google收购以后改为mybatis
2、orm介绍: object relation model 对象关系模型。
                   mybatis是一种半自动化的orm框架: 在mybatis中需要书写sql语句
                      hibernate: 是一种全自动化的orm框架: 不需要书写sql
3、与jdbc比较
    支持sql查询
,存储和高级映射的持久层框架
    消除了几乎所有的jdbc代码和参数的手工设置以及结果集的检索
    使用简单的xml或注解用户配置和原始映射,将接口和java的pojos映射成数据库的记录

    操作更简单,特别是mybatis的逆向工程
二、 配置环境
     xml配置需要提示标签,在eclipse中需要配置
1、配置mybatis-3-mapper.dtd
   

2、配置mybatis-3-config.dtd


3、导入jar包

4、配置mybatis.xml


5、书写局部配置文件
 
6、管理mybatis.xml与局部配置文件关联起来


测试代码: https://github.com/xiangqian19831224/mybatis01.git

三、操作
1、查询
    返回类型: 必须指定
    条件类型: 条件查询,在select标签中用parameterType指定条件类型
    public voidselectAll() throws Exception {
       // 2、调用SqlSession这个类中的selectList方法
       List lists = session.selectList("cn.;
       System.out.println(lists);
    }
  
2、添加
    返回类型: 不指定,默认都是int
    条件类型: 需要指定
    事务: 需要提交

@Test
    public voidaddComputer() {
       // 1、将多个参数封装到map集合中去
       Map parameter = new HashMap();
       parameter.put("brand", "戴尔");
       parameter.put("computer_name", "dell");
       parameter.put("price", 8000F);
       // 2、调用SqlSession中相关方法
       int flag =session.insert("cn.java.dao.impl.ComputerDaoImpl.addComputer",parameter);
       // 3、提交事务
       session.commit();
       if (flag >= 1) {
           System.out.println("数据添加成功");
       } else {
           System.out.println("数据添加失败,请重新添加");
       }

    }
3、修改数据
    返回类型:不指定
    参数类型:parameterType指定
    事务:需要提交
    public voidupdateComputer() {
       // 1、封装需要修改的参数信息
       Map parameter = new HashMap();
       parameter.put("computer_name", "戴尔笔记本");
       parameter.put("price", "9000");
       parameter.put("id", 7L);
       // 2、调用SqlSession类中的相关方法
       int flag =session.update("cn.java.dao.impl.ComputerDaoImpl.updateComputer",parameter);
       session.commit();
       // 3、查看结果
       System.out.println(flag);
    }
4、删除数据

   返回类型: 不指定
    参数:一般都是通过id来删除的
    事务:需要提交
    public voiddeleteComputer(){
       int flag =session.delete("cn.java.dao.impl.ComputerDaoImpl.deleteComputer",7);
      
      session.commit();
      System.out.println(flag);
    }
5、带条件的查询
   parameterType属性: 参数类型
        增删改查四个标签都有该属性
   resultType属性:返回类型
         查询操作需要指定返回类型
         增删改不需要

参考代码:
查询与添加:https://github.com/xiangqian19831224/mybatis02.git
更新与删除:https://github.com/xiangqian19831224/mybatis03.git
条件查询:   
https://github.com/xiangqian19831224/mybatis04.git

四、其他标签
1、别名标签
     用处: 实体类的别名标签,写sql配置文件是,具体实体路径用别名代替
     标签: typeAliases
                卸载主配置文件mybatis.xml的第一行,否则会报错
     

 2、sql标签
      用处: 存放公共字段,用于sql语句的书写
3、include标签
      用户:代表引用的含义,与sql标签组合使用
   

参考代码:
https://github.com/xiangqian19831224/mybatis05.git

五、特殊符号

1、比较符号的替换
    >:   >
    <:   <<br>    =:    =
 2、$与#的区别
    #: 将传入的数据作为一个字符串  例如(假设user_id=111):  order by#user_id#  ---> order by "111"
    $: 将传入的数据直接显示在sql中 例如
(假设user_id=111): order by $user_id$ ---> order by 111
    说明:sql中只建议使用#
 
参考代码: 
https://github.com/xiangqian19831224/mybatis06.git

六、动态sql语句查询
用处: 查询条件个数不确定是可用


参考代码:
https://github.com/xiangqian19831224/mybatis07.git




   
原创粉丝点击