• MyBatis单表操作


    介绍:

      数据持久层框架(DAO将数据持久化到数据库),实现DAO层的代码。对JDBC代码的封装

    特点:

    • 1.封装通用功能,简化代码,提高开发效率(获得conn,绑定参数,发送sql,处理异常,处理结果集)
    • 2.sql放在配置文件中,提高sql可维护性
    • 3.自带连接池功能
    • 4.自带缓存(提高查询效率)

    核心思想

    • 1.书写DAO接口
    • 2.开发Mapper文件。SQL+绑定参数、实现接口中的方法

    环境搭建

    1.导入mybatis.jar、mybatis的lib依赖包、oracle的驱动jar
    
    2.引入配置文件
      mybatis-config.xml(链接数据库相关参数)
      Mapper.xml(相当于dao的实现类)

    MyBatis实现DAO编码

    需求:使用MyBatis实现DAO的方式,添加一条person信息
    
      1.书写DAO接口
        public interface PersonDAO{
          void insert(Person person);
        }
    
      2.写Mapper文件(DAO实现类)
        <insert id="实现接口的方法名" parameterType="参数中实体类型全类名">
          inser into t_person values(seq_person.nextval,#{属性名},#{sex},#{age})
        </insert>
    
      3.注册管理mapper文件
        <mappers>
          <mapper resource="com/lhl/demo1/PersonDAOImpl.xml"></mapper>
        </mappers>

    MyBatis使用的API

    使用DAO目的:
      1.获得DAO的对象
      2.调用DAO的方法
    常用的类:   SqlSession    
    1.获得dao结果的实现类的对象       XxxDAO dao = sqlSession.getMapper(接口.class);     2.相当于connection。(提交事务,关闭close,回滚事务)

      SqlSessionFactory     
    1.获得sqlSession       SqlSession session = sqlSessonFactory.openSession();     2.保存封装mybatis-config.xml配置文件   SqlSessionFactoryBuilder:读取配置文件   Resources:获得读取配置文件的输入流

      步骤:

        1.获得mabatis-config的输入流

        2.读取mybatis-config的文件,构造成SqlSessionFactory

        3.通过SqlSessionFactory获得SqlSession

        4.通过SqlSession获得DAO接口的对象

        5.调用方法测试

        6.提交事务

        7.释放资源

    添加、修改、删除操作,(以员工表t_person为例)

    1.定义dao接口方法
      void insert(Person person);//添加功能接口方法
      void update(Person person);//修改功能接口方法
      void delete(@param("id")Integer id);//删除功能接口方法
    
    2.书写mapper文件标签   
    <!-- 添加一个person信息 -->   <insert id="insert" parameterType="com.lhl.demo1.Person">     insert into t_person values(seq_person.nextval,#{name},#{sex},#{age},#{mobile},#{address})   </insert>   <!-- 修改操作 -->   <update id="update" parameterType="com.lhl.demo1.Person">     update t_person set name=#{name},sex=#{sex},age=#{age},mobile=#{mobile},address=#{address} where id=#{id}   </update>   <!-- 删除功能 -->   <delete id="delete" parameterType="java.lang.Integer">     delete from t_person where id = #{id}   </delete> 3.注册mapper文件:在mybatis-config.xml中绑定   <mappers>   <!-- 注册管理所有的mapper文件 -->     <mapper resource="com/lhl/demo1/PersonDAOImpl.xml"></mapper>   </mappers>

    单个查询

    1.书写dao接口方法
      Person selectById(Integer id);
    2.书写mapper文件(sql、参数、对查询结果映射实体对象)   
    <!-- 查询功能 -->   <select id="selectById" parameterType="java.lang.Integer" resultType="查询结果的一行数据映射的实体对象类型(com.lhl.demo1.Person)">     select id,name,sex,age,mobile,address from t_person where id = #{id}   </select> 3.注册mapper文件

     多个查询

    1.书写dao接口方法
      List<Person> selectAll();
    
    2.书写mapper
      <select id="selectAll" resultType="rs的一行数据映射实体类型">
        select id,name,sex,age,mobile,address from t_person
      <select>
    
    3.注册mapper文件

     多个参数绑定

    1.书写dao
        User selectByUsernameAndPassword(String username,String passwor);
    
    2.书写mapper文件
        <select id="selectByUsernameAndPassword" resuletType="*******">
        select id,username,password from t_person where username=#{arg0} and password=#{arg1};
        </select>

    或者通过@Param取别名的方式    User selectByUsernameAndPassword(@Param("username")String username,@Param("password")String passwor);   select id,username,password from t_person where username=#{username} and password=#{password}; 3.注册mapper文件

     xml转义

    以下是XML中需要的转义字符:[/size] 
      &(逻辑与)  &amp;        
      <(小于)    &lt;        
      >(大于)    &gt;        
      "(双引号)  &quot;      
      '(单引号)  &apos; 
  • 相关阅读:
    tomcat报错:java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
    mysql 的 case when 用法
    分享几个能用的 editplus 注册码
    windows 时间同步至最新时间方法 | windows 时间同步服务器
    tomcat 如何登录 Server Status、Manager App、Host Manager
    Eclipse将java项目导出可执行的jar文件
    Java 中将字符串与 unicode 相互转换的工具类
    解决Lost connection to MySQL server during query错误方法
    gt,gte,lt,lte缩写的含义
    python 打印调用栈
  • 原文地址:https://www.cnblogs.com/lhl0131/p/13393959.html
Copyright © 2020-2023  润新知