>  기사  >  웹 프론트엔드  >  Java Mybatis Framework 시작을 위한 기본 튜토리얼_기본 지식

Java Mybatis Framework 시작을 위한 기본 튜토리얼_기본 지식

WBOY
WBOY원래의
2016-05-16 15:38:331463검색

1. 마이바티스 소개

MyBatis는 사용자 정의 SQL, 저장 프로시저 및 고급 매핑을 지원하는 최고 수준의 지속성 프레임워크입니다. MyBatis는 거의 모든 JDBC 코드를 제거하며 기본적으로 매개변수를 수동으로 설정하고 검색 결과를 얻을 필요가 없습니다. MyBatis는 간단한 XML 형식이나 주석을 사용하여 구성할 수 있으며 기본 데이터 요소, Map 인터페이스 및 POJO(일반 Java 개체)를 데이터베이스의 레코드에 매핑할 수 있습니다.

2. 마이바티스 워크플로우

(1) 구성 로드 및 초기화

트리거 조건: 구성 파일 로드

구성은 두 위치에서 이루어집니다. 하나는 구성 파일이고 다른 하나는 Java 코드의 주석입니다. SQL 구성 정보는 MappedStatement 객체(수신 매개변수 매핑 구성, 실행된 SQL 문 및 결과 포함)에 로드됩니다. . 매핑 구성), 메모리에 저장됩니다.

(2) 전화요청 받기

발동조건: 마이바티스에서 제공하는 API 호출

수신 매개변수: SQL ID 및 수신 매개변수 객체

처리 프로세스: 처리를 위해 요청을 하위 요청 처리 계층으로 전달합니다.

(3) 작업 요청을 처리합니다. 트리거 조건: API 인터페이스 계층이 요청을 통과합니다.

수신 매개변수: SQL ID 및 수신 매개변수 객체

처리과정:

(A) SQL ID를 기반으로 해당 MappedStatement 개체를 찾습니다.
(B) 들어오는 매개변수 개체에 따라 MappedStatement 개체를 구문 분석하여 실행할 최종 SQL과 실행 들어오는 매개변수를 얻습니다.
(다) 데이터베이스 연결을 획득하고, 최종 SQL 문과 실행 매개변수를 데이터베이스에 전달하여 실행하고, 실행 결과를 얻는다.
(D) 결과 매핑 구성에 따라 얻은 실행 결과를 MappedStatement 객체로 변환하여 최종 처리 결과를 얻는다.
(E) 연결 자원을 해제합니다.

(4) 처리 결과를 반환하고 최종 처리 결과를 반환

ORM 도구의 기본 아이디어

hibernate를 사용했든 mybatis를 사용했든 한 가지 공통점을 비교할 수 있습니다.

  • sessionfactory.
  • 를 구성 파일(일반적으로 XML 구성 파일)에서 가져옵니다.
  • sessionfactory에서 생성된 세션
  • 세션 내 데이터 추가, 삭제, 수정, 트랜잭션 제출을 완료합니다.
  • 사용 후 세션을 종료하세요.
  • Java 객체와 데이터베이스 사이에는 일반적으로 xml 파일인 매핑 구성 파일이 있습니다.

기능적 아키텍처

Mybatis의 기능적 아키텍처는 세 가지 계층으로 나뉩니다.

1. API 인터페이스 계층: 외부 사용을 위해 제공되는 인터페이스 API입니다. 개발자는 이러한 로컬 API를 사용하여 데이터베이스를 조작합니다. 인터페이스 계층이 호출 요청을 받으면 데이터 처리 계층을 호출하여 특정 데이터 처리를 완료합니다.

2. 데이터 처리 계층: 특정 SQL 검색, SQL 파싱, SQL 실행 및 실행 결과 매핑 처리 등을 담당합니다. 주요 목적은 호출 요청에 따라 데이터베이스 작업을 완료하는 것입니다.

3. 기본 지원 레이어: 연결 관리, 트랜잭션 관리, 구성 로딩, 캐시 처리 등 가장 기본적인 기능 지원을 담당하며, 가장 기본적인 구성 요소로 추출됩니다. 상위 데이터 처리 계층에 대한 가장 기본적인 지원을 제공합니다.

더 많은 드라이버 패키지를 추가해야 합니다.

빠른 시작 방법은 다음과 같습니다.

디렉토리는 다음과 같습니다.

엔티티 클래스 사용자

package com.oumyye.model;

public class User {
  private String id;
  private String name;
  private int age;
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  @Override
  public String toString() {
    return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
  }

}

매핑 파일 UserMapping.xml

<&#63;xml version="1.0" encoding="UTF-8" &#63;>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.oumyye.mapping.UserMapping">
  <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
  使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
  resultType="com.oumyye.model.User"就表示将查询结果封装成一个User类的对象返回
  User类就是users表所对应的实体类
  -->
  <!-- 
    根据id查询得到一个user对象
   -->
  <select id="getUser" parameterType="String" 
    resultType="com.oumyye.model.User">
    select * from user where id=#{id}
  </select>
</mapper>

리소스 파일 mybatis.xml

<&#63;xml version="1.0" encoding="UTF-8"&#63;>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC" />
      <!-- 配置数据库连接信息 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
        <property name="username" value="root" />
        <property name="password" value="root" />
      </dataSource>
    </environment>
  </environments>
  <mappers>

<mapper resource="com/oumyye/mapping/userMapping.xml"/>
   </mappers>
</configuration>

테스트 클래스:

package test;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.oumyye.model.User;

public class Tests {
@Test
public void test(){
 String resource = "mybatis.xml";
    //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
    InputStream is = Tests.class.getClassLoader().getResourceAsStream(resource);
    //构建sqlSession的工厂
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

SqlSession session = sessionFactory.openSession();
    /**
     * 映射sql的标识字符串,
     * com.oumyye.mapping.UserMapping是userMapper.xml文件中mapper标签的namespace属性的值,
     * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
     */
    String statement = "com.oumyye.mapping.UserMapping.getUser";//映射sql的标识字符串
    //执行查询返回一个唯一user对象的sql
    User user = session.selectOne(statement, "1123");
    System.out.println(user.toString());
}
}

결과:

위 내용은 Java Mybatis 프레임워크를 시작하는 데 필요한 기본 튜토리얼입니다. 모든 사람의 학습에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.