第一章 初始Mybatis

  • 框架技术的优势

  1. 不用考虑公共问题
  2. 可以专心于业务逻辑,保证业务逻辑的开发质量
  3. 结构统一,便于学习和维护
  4. 帮助新手写出稳定、性能优良而且结构优美的高质量程序
  • 框架的概念

框架(framework)是一个提供了可重用的公共结构的半成品。

  • 主流框架的介绍

Struts2框架

Struts2是以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个整洁基于MVC设计模式实现的Web应用程序框架

新框架特性:从逻辑中分离出横切关注点的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可变更和可重用的基于MVC模式的标签API等

Hibernate框架

Hibernate框架是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或者重数据库中读取数据并封装到对象的工作。

Hibernate通过简单配置和编码即可替代JDBC烦琐的程序代码

Spring框架

Spring也是一个开源框架。它的目标是使现有的JavaEE技术更容易使用和促进良好的编程习惯。它是一个轻量级的框架,渗透了JavaEE技术的方方面面。

它主要作为依赖注入容器和AOP实现存在,还提供了声明式事物,对DAO层的支持等简化开发的功能。

SpringMVC框架

SpringMVC框架是Spring框架提供的构建Web应用程序的全功能MVC模块,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,是结构最清晰的MVC Model2的实现

MyBatis框架

MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。

  • Mybatis介绍及其环境搭建

数据持久化的概念

数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称

 

框架及ORM 

  1. Mybatis框架简介

Mybatis是一个开源的数据持久层框架。它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置及结果集的检索。MyBatis作为持久层框架,其主要思想是将其程序中的大量SQL语句剥离出来,在配置文件中,实现SQL的灵活配置。这样做的好处是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接配置文件中修改SQL。

  1. 什么是ORM

ORM(Object/Relational Mapping)即对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立对应关系,并提供了一种机制,通过JavaBean对象去操作数据库表中的数据

  • Mybatis环境搭建
  1. 下载jar包

                mybatis-3.2.2.zip(Mybatis的jar)

                mybatis-3-mybatis-3.2.2.zip(Mybatis源码包)

    2.部署jar包

    3.编写Mysatis核心配置文件 configuration.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<properties resource="database.properties"></properties>

<settings>

        <setting name="logImpl" value="LOG4J" />

</settings>

<environments default="smbms_environments">

        <environment id="smbms_environments">

               <transactionManager type="JDBC"></transactionManager>

               <dataSource type="POOLED">

                      <property name="driver" value="${driver}" />

                      <property name="url" value="${url}" />

                      <property name="username" value="${username}" />

                      <property name="password" value="${password}" />

               </dataSource>

        </environment>

</environments>

<mappers>

        <mapper resource="com/xw/dao/provider/ProviderMapper.xml"/>

</mappers>

</configuration>

mybatis-config.xml文件的几个常用元素作用

         configuration:配置文件的根元素节点

         properties:通过resource属性从外部指定properties属性文件(database.properties),该属性文件描述数据库连接的相关配置,位置也在/resouorces目录下

          settings:设置MyBatis运行中一些行为,比如此处设置Mybatis的log日志实现为LOG4J,及使用log4j实现日志功能

          environments:表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,该元素节点可以配置多个environment子元素节点,但是必须指定一个默认的运行环境(通过default指定)

           environment:配置Mybatis的一套运行环境,需指定运行环境id,事物管理,数据配置源等相关信息

           mappers告诉MaBatis去哪里找到SQL映射文件

           mapper:mappers的子元素节点,具体指定SQL映射文件路径

4.创建实体类POJO

5.创建DAO接口

6.创建SQL映射文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC  

    "-//mybatis.org//DTD Mapper 3.0//EN" 

    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.xw.dao.provider.ProviderMapper">

       <select id="getProviderCount" resultType="int">

               SELECT COUNT(1) FROM `smbms_provider`;

       </select>

</mapper>

 

7.编写测试类

    1.读取配置文件

           String resource = “mybatis-config.xml”;

           InputStream is = Resources.getResourceAsStream(resource);

    2.创建SqlSessionFactory对象

           SqlSessionFactory  factory = new SqlSessionFactoryBuilder().build(is);

    3.创建SQLSession对象

           Int count = 0;

           SqlSession session = null;

           Session=factory.openSession();

           Count = session.selectOne(“com.xw.dao.provider.ProviderMapper. getProviderCount”);

           Logger.debug(“ProviderMappereTest count”+count)

    4.关闭SQLSession对象

           session.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值