mybatis框架(一)

本文为博主原创文章,转载请注明出处!https://blog.csdn.net/Huangyuhua068/article/details/83048518

  1. 什么是框架

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构建及构建实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方法而后者是从目的方面给出的定义。
简而言之,框架就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

  1. 使用框架的好处

一句话讲清楚:简化开发
使用框架的原因在于它实现了部分功能,我们软件系统在框架的基础上进行开发,减少开发成本。
为什么?原因有二:第一,框架已经实现了一些功能,我们使用框架后这些功能就不再实现,可以提高开发效率;第二:使用框架后,我们软件的架构更加稳定、开发流程必须按照框架的约定进行,而优秀的框架是所有开发人员都熟悉的,任何人进入项目团队后可以更快的适应开发,同时框架良好的扩展性更易于后期维护,减少项目开发成本。

  1. 项目分层
    (1).JavaEE开发分层:表现层、业务层、持久层
    (2).下面看看每一层常用的框架解决方案:
    mybatis框架(一)_第1张图片
    mybatis框架(一)_第2张图片
    mybatis框架(一)_第3张图片
  2. 传统JDBC开发
    //JDBC操作
        //a,注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //b.获取连接
        Connection conn = DriverManager.getConnection(url, username, password);
        //c,获取预处理对象
        PreparedStatement pstm = conn.prepareStatement("SELECT * FROM  表");
        //d.执行方法(可以是增删改,也可以是查询)假设为查询
        ResultSet rs = pstm.executeQuery();
        //e.封装结果集
        while (rs.next()){

        }
        //f.释放资源
        rs.close();
        pstm.close();
        conn.close();

(1)频繁创建数据库连接对象和释放,容易造成系统资源的浪费,从而影响系统的性能。在企业项目中,可以通过使用连接池技术解决这个问题。但是使用jdbc需要我们自己来实现连接池。mybatis内部提供连接池。
(2)SQL语句的定义、参数设置、结果集处理存在硬编码。在企业项目中SQL语句变化的可能性较大,一旦发生变化,需要修改java代码 ,系统需要重新编译,重新发布,不好维护。
(3)结果集处理存在重复代码,每次都要遍历ResultSet,获取一行数据,封装为对象处理麻烦。如果可以自动把行数据封装 为java对象这样就方便多了。

  1. MyBatis框架

5.1简介:mybatis是Apache软件基金会下的一个开源项目,前身是ibatis框架。2010年这个项目由Apache软件基金会迁移到Google code下,改名为mybatis。2013年11月又迁移到github。
mybatis是一个持久层的框架,是对JDBC操作数据库的封装,使开发者只需要关注业务本身,不需要花费太多的精力去处理加载驱动、创建数据库连接对象、创建statement语句对象、参数设置、结果集处理等一系列繁杂的过程代码。
mybatis通过xml或注解进行配置,将java对象与SQL语句中的参数自动映射生成最终执行SQL语句,并将SQL语句执行结果自动映射成java对象,返回给业务层(service)应用。

总结:
(1)mybatis早期版本叫ibatis,目前代码托管在github,大家可以在此下载。
(2)mybatis是对jdbc的封装,是一个持久层的框架。
(3)mybatis是通过xml或者注解进行配置,实现java对象与SQL语句的对应关系(映射)。

  1. 官网
    (1)百度
    mybatis框架(一)_第4张图片
    (2)点击
    mybatis框架(一)_第5张图片
    (3)找到下载
    mybatis框架(一)_第6张图片
    (4)下载
    点击链接到GitHub
    mybatis框架(一)_第7张图片

你可能感兴趣的:(mybatis框架)