zoukankan      html  css  js  c++  java
  • MyBatis基础学习笔记--摘录

    1、MyBatis是什么?

    MyBatis源自于IBatis,是一个持久层框架,封装了jdbc操作数据库的过程,使得开发者只用关心sql语句,无需关心驱动加载、连接,创建statement,手动设置参数,结果集检索等jdbc底层操作。

    Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

    MyBatis的数据源,事务属性,以及映射文件的索引xml配置:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
     3 <configuration>
     4     <environments default="development">
     5         <environment id="development">
     6             <transactionManager type="JDBC" />
     7             <!-- 配置数据库连接信息 -->
     8             <dataSource type="POOLED">
     9                 <property name="driver" value="com.mysql.jdbc.Driver" />
    10                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
    11                 <property name="username" value="root" />
    12                 <property name="password" value="root" />
    13             </dataSource>
    14         </environment>
    15     </environments>
    16 
    17     <mappers>
    18         <!-- 注册userMapper.xml文件, 
    19         userMapper.xml位于com.test.mapping这个包下,所以resource写成com/test/mapping/userMapper.xml-->
    20         <mapper resource="com/test/mapping/userMapper.xml"/>
    21     </mappers>
    22 
    23 </configuration>

    映射文件xml配置:

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     3 <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
     4 例如namespace="com.test.mapping.userMapper"就是com.test.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
     5  -->
     6 <mapper namespace="com.test.mapping.userMapper">
     7     <!-- 
     8         根据id查询得到一个user对象
     9      -->
    10     <select id="getUser" parameterType="int" 
    11         resultType="com.test.domain.User">
    12         select * from users where id=#{id}
    13     </select>
    14 </mapper>

    2.MyBatis架构图

    MyBatis配置:包括全局配置和映射文件配置。全局配置文件中包含了数据库连接信息、事务管理、映射文件索引。

    MyBatis根据配置文件创建SqlSeesionFactory:SqlSeesionFactory

    1 // mybatis的配置文件
    2 String resource = "conf.xml";
    3 // 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
    4 InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);
    5 // 构建sqlSession的工厂
    6 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

    和使用SqlSeesionFactory创建SqlSeesion:

     1 package org.apache.ibatis.session;
     2 
     3 import java.sql.Connection;
     4 
     5 public interface SqlSessionFactory {
     6 
     7   SqlSession openSession();
     8 
     9   SqlSession openSession(boolean autoCommit);
    10   SqlSession openSession(Connection connection);
    11   SqlSession openSession(TransactionIsolationLevel level);
    12 
    13   SqlSession openSession(ExecutorType execType);
    14   SqlSession openSession(ExecutorType execType, boolean autoCommit);
    15   SqlSession openSession(ExecutorType execType, TransactionIsolationLevel level);
    16   SqlSession openSession(ExecutorType execType, Connection connection);
    17 
    18   Configuration getConfiguration();
    19 
    20 }
  • 相关阅读:
    Visual Studio 2008中文正式版
    属性控制类
    PowerDesigner11技巧
    OPENXML用法
    .net下载文件
    Merge Into 语句代替Insert/Update在Oracle中的应用实战
    PowerDesigner中使用vbscript访问对象进行批量操作
    转:SubSonic介绍和相关文章
    C# 多线程控制控件实例(例程简单,注释详细)
    学习SubSonic的笔记 Version 2.1
  • 原文地址:https://www.cnblogs.com/xiangleili/p/8668562.html
Copyright © 2011-2022 走看看