zoukankan      html  css  js  c++  java
  • Mybatis学习(壹)

    一、Mybatis的引言

    1Mybatis框架概念:是数据库持久层的框架,对数据库的访问和操作。MybatisJDBC的封装,Mybatis替换JDBC开发,解决DAO中的通用问题。

    2JDBC开发DAO的缺点:

    3Mybatis的优点

    1)自动的进行ORM,减少冗余代码

    2)有缓存机制,提高软件的效率

    3)Mybatis提供动态sql,减少DAO方法的开发(select)

    4Mybatis的开发原理

     

    二、第一Mybatis程序

    1、搭建Mybatis环境

    a、导入jar

    Mybatis的核心jar包:mybatis-3.2.2.jar

    数据的驱动jarojdbc5.jar

    做日志记录:log4j.jar

    commons-logging-1.1.3.jar

    b、引入配置文件

    mybatis-config.xml:配置Mybatis运行环境

    放置位置:随意,放在src目录

    mapper文件:DAO实现的方法,通过mapper创建DAO

    放置位置:随意,放在dao包下

    log4j.properties:【可选】打印日志

    放置位置:src目录

    c、初始化参数配置

    mybatis-config.xml中配置mybatis的运行环境

    2Mybatis的核心API介绍

    1)Resources:获得mybatis-config.xml配置文件

    2)SqlSession:

    作用一:获得DAO的实现类

    作用二:内部封装一个Connection,一个SqlSession和一个Connection对象一一对应

    作用三:可以事务控制

    commit();rollback();

    3)SqlSessionFactory:创建SqlSession,重量级

    3Mybatis替换JDBC开发DAO的步骤

    1)建表

    2)实体

    3)DAO 的接口

    4)Mybatis实现DAO的接口

    5)注册mapper文件

    6)测试

    三、单表的基本操作(一个参数)

    1、查询所有

    模糊查询

    2、删除

    注意:Mybatis做数据库的DML操作必须进行事务控制(Mybatis的事务默认是回滚)

      sqlSession.commit();/sqlSession.rollback()

     

    3、修改

    4、添加

    使用序列:

    insert into t_user values(seq_user.nextval,'yyy','999999')

    mysql数据库没有序列:

    <insert id="insert" parameterType="com.ibs.api.perf.bean.PerfAmmeter" useGeneratedKeys="true" keyProperty="id">

    四、MybatisUtil的封装(参考MybatisUtil.java

    1、作用:提高代码的服用,提高程序的维护

    2serviceSqlSession---DAO+事务控制

    dao:调用DAO的方法完成业务

    事务控制:SqlSession

    获得sqlSession的方法

    public static SqlSession getSqlSession(){}

    3MybatisUtil工具类封装的原则

    1)读取配置文件的操作放在静态代码块中

    2)sqlSessionConnection一一对应,SqlSession进行线程绑定

    3)SqlSessionFactory是一个重量级的,只需要创建一次,SqlSessionFactory定义为静态成员变量

    4、封装关闭SQLSession的方法:把关闭的SQLSession从线程局部变量中移除掉

    public static void closeSession(){}

  • 相关阅读:
    bzoj 1689: [Usaco2005 Open] Muddy roads 泥泞的路【贪心】
    bzoj 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛【二分+贪心】
    bzoj 3401: [Usaco2009 Mar]Look Up 仰望【单调栈】
    bzoj 1652: [Usaco2006 Feb]Treats for the Cows【区间dp】
    bzoj 1718: [Usaco2006 Jan] Redundant Paths 分离的路径【tarjan】
    bzoj 1655: [Usaco2006 Jan] Dollar Dayz 奶牛商店【高精度+完全背包】
    洛谷 P3121 [USACO15FEB]审查(黄金)Censoring (Gold) 【AC自动机+栈】
    bzoj 3942: [Usaco2015 Feb]Censoring【kmp+栈】
    bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
    性能优化一大推
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/5976081.html
Copyright © 2011-2022 走看看