zoukankan      html  css  js  c++  java
  • Mybaits

    Mybatis是一个框架:

    框架:框架就是一个封装完的模式,根据开发的习惯,对重复的冗余的代码进行封装,形成固定的解决问题的方式,具备这一领域开发的功能的插件(组件)。

    Mybatis简介:

      Mybatis是一个框架,连接数据库的框架,对数据进行增删改查操作,底层依然是JDBC,基于JDBC做了简单的映射封装,ORM封装。

       ORM(对象关系映射)数据库里的User表,相当于JAVA代码里的User类,User表里的UserName,UserAge 等 相当于User类里的一个属性,User表里的一条记录相当于User类里的一个对象,这样就把数据库和Java代码对应起来了

      JDBC:

      1.加载数据库驱动

      2.创建数据库连接

      3.创建JDBC Statement对象

      4.设置SQL

      5.设置参数

      6.获取结果

      7.处理结果

      8.释放资源

    问题:

      1.创建连接,释放资源频繁,浪费资源-------数据库连接池

      2.SQL语句写在JAVA代码中,硬编码,不利于维护

      3.preparedStatement设置参数,硬编码

      4.解析编码,硬编码,sql变化导致结果变化,解析代码变化。

    入门案例:

    1.导入主体结构(jar包)

      核心包:mabatis-x.x.x.jar

      数据库连接:mysql.x.x.x.jar

      依赖包---日志包

    2.添加核心配置文件:

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 <configuration>
     6 <!-- 环境配置:数据库信息 -->
     7   <environments default="development">
     8     <environment id="development">
     9       <transactionManager type="JDBC"/>
    10       <dataSource type="POOLED">
    11         <property name="driver" value="com.mysql.jdbc.Driver"/>
    12         <property name="url" value="jdbc:mysql://localhost:3306/0506java"/>
    13         <property name="username" value="root"/>
    14         <property name="password" value="root"/>
    15       </dataSource>
    16     </environment>
    17   </environments>
    18 <!-- 注意位置 -->
    19   <mappers>
    20       <mapper resource="com/ujiuye/mapper/UserMapper.xml"/>
    21   </mappers>
    22 </configuration>

    3.创建实体类:

      序列化

      属性如果是基本数据类型,使用包装类

      提供set,get方法

    4.添加Mapper

      结果类型,查询的时候需要添加:

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper
     3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5   <!-- 命名空间   隔离SQL -->
     6 <mapper namespace="test">
     7 <!-- 根据ID查询 -->
     8 <!-- 
     9     parameterType:参数类型   数据库类型
    10     resultType:查询是需要添加,用来表示结果类型
    11 Id:方法名(执行sql的名字)
    12 #{id}:占位符
    13  -->
    14      <select id="queryByID" parameterType="int" 
    15       resultType="com.ujiuye.pojo.User">
    16          select * from user where id=#{id} 
    17      </select>
    18 </mapper>

    5.测试

      创建工厂:读取配置文件

      创建Session对象:通过工厂创建

      数据库操作

    MyBatis动态代理:

      代理的部分:Dao层开发取消实现类,用Mapper.xml代替

      过程:定义接口(CRUD),创建Mapper.xml

      注意:Mapper.xml文件名与接口一致

    Properties标签:

     

    Typealiases标签

     

    Mapper标签

     

    resultMap标签

     

    动态SQL

    Ifwhere标签

    Foreach标签

     

    SQL片段

     

    关联查询

    一对一(方法一)

    使用Resulttype

    创建实体类:包含查询需要的类中所有属性

     

     编写Mapper

    一对一查询(方法二)

     

    一对多查询

  • 相关阅读:
    0113-06-侯舒舒(作业-复盘分析)
    0113-06-侯舒舒(日报)
    总结
    0108-06-侯舒舒(日报)
    cobalt strike插件
    关于python安装后更新的一些问题
    常用dos命令
    curl命令用法
    2020/1/16
    2020/1/15
  • 原文地址:https://www.cnblogs.com/ywzbky/p/MyBatis.html
Copyright © 2011-2022 走看看