zoukankan      html  css  js  c++  java
  • Mybatis 学习一

    一、mybatis是什么

      mybatis是一个持久层的框架,它可以完全替代JDBC,同时提供接口编程。它访问DAO层是不需要实现类的,只需要一个接口和XML文件(或注解)。mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)。

      mybatis将数据库的表和POJO映射起来,这样程序员就可以操作POJP来完成相关的逻辑。

    二、mybatis框架原理

    三、mybatis开发所需jar包

    lib下:依赖包

    mybatis.jar:核心包

    mysql的驱动包

    四、配置文件

    1、log4j.properties

    2、sqlMapConfig.xml   :   配置mybatis的运行环境,数据源、事务等

    3、xxxMapper.xml  :   主要是配置sql语句

     五、流程分析

    1、MyBatis首先通过配置去生成工厂:SqlSessionFactory。MyBatis提供了构造器SqlSessionFactoryBuilder,它提供了了一个类Configuration来完成构建。

       但是我们只要调用SqlSessionFactoryBuilder.build( )就可以得到一个SqlSessionFactory对象,具体完成交给Configuration

       工厂可以看作是一个数据库连接池,采用单例模式;

       除了通过XML配置文件文件,还可通过java代码来生产工厂,效果一样但比较麻烦,所以推荐用XML方式。

     sqlMapConfig.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="db.properties"/> <!-- 和spring整合后 environments配置将废除--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!--将来也交个Spring管理--> <mappers> <mapper resource="customerMapper.xml"/>//扫描某一个映射器 <package name="com.dongtian.mapper"/>//扫描该包下的所以映射器 </mappers> </configuration>

    2、创建工厂的作用是为了创建SqlSession对象,通过工厂的方法:SqlSessionFactory.openSession( ) 可以得到一个SqlSession对象。

       SqlSession的作用类类似于JDBC一个Connection对象,代表一个连接资源的启用。

       具体作用:获取Mapper接口,

            发送SQL给数据库:其实是Executor在干活。SqlSession.getMapper(xxxMapper.class):获取mapper结果,然后通过接口调用接口方法。

            控制数据库事务

    3、映射器:由一个接口和一个XML文件组成(一一对应)。作用是把SQL查询结果映射成为一个POJO。

           接口中定义对数据库操作的方法:public User getUser(String id);通过id查User对象

           UserMapper.java 

    public interface CustomerMapper {
        public Customer findUserById(String cname) throws Exception; 
    }
    <!--UserMapper.xml:定义了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.dongtian.mapper.CustomerMapper"> <select id="findUserById" parameterType="java.lang.String" resultType="com.dongtian.dao.Customer"> SELECT * FROM t_customer WHERE cname = #{value} </select> </mapper>

    除了用XML方式外,还可通过注解的方法

    public interface CustomerMapper {
     @Select("SELECT * FROM t_customer WHERE cname = #{value}")
    public Customer findUserById(String cname) throws Exception; }
  • 相关阅读:
    django-form表单
    django-登录页面添加验证码
    opensatck误删除service项目
    运维脚本
    大数据平台架构组件选择与运用场景
    HDP2.4安装(五):集群及组件安装
    Spark(三): 安装与配置
    Spark(二): 内存管理
    Spark(一): 基本架构及原理
    ElasticSearch基本使用
  • 原文地址:https://www.cnblogs.com/dongtian-blogs/p/10652521.html
Copyright © 2011-2022 走看看