MyBatis 는 프로필 을 어떻게 쓰 고 간단하게 사용 합 니까?

11382 단어 MyBatis배치 하 다.
MyBatis 는 프로필 을 어떻게 쓰 고 간단하게 사용 합 니까?
MyBatis3.x
여기에 MyBatis 의 소 개 를 간단하게 붙 여 주세요.구체 적 인 사용 방법 은 코드 에 붙 여 집 니 다.
MyBatis 의 전생
마 이 바 티 스 의 전신 은 아이 바 티 스 다.아이 바 티 스 는 클 린 턴 베 긴 이 개발 한 것 이 었 으 나 아파 치 재단 에 기부 해 아이 바 티 스 오픈 소스 프로젝트 를 만 들 었 다.2010 년 5 월 이 프로젝트 는 Apahce 재단 에서 구 글 코드 로 이전 해 MyBatis 로 이름 을 바 꿨 다.
그럼 에 도 불구 하고 가방 구 조 는 ibatis 입 니 다.
www.mybatis.org/
https://github.com/mybatis
MyBatis 소개
MyBatis 는 데이터 지구 층(ORM)프레임 워 크 입 니 다.실체 류 와 SQL 문 구 를 매 핑 관 계 를 구축 하 는 것 은 반자동 화 된 ORM 실현 이다.
MyBatis 의 장점:
1.SQL 문법 을 바탕 으로 간단 하고 배우 기 쉽다.
2.바 텀 조립 과정 을 알 수 있다.  
3.SQL 문 구 는 설정 파일 에 봉 하여 통일 적 인 관리 와 유지 에 편리 하고 프로그램의 결합 도 를 낮 춘 다.
4.프로그램 디 버 깅 이 편리 하 다.
모든 sql 문 구 는 xml(제안)에 정의 되 어 있 습 니 다.주해 방식 으로 인터페이스 에서 도 이 루어 질 수 있다.이 맵 파일 들 을 mapper 라 고 합 니 다.
전통 JDBC 와 의 비교
코드 량 이 61%줄 었 습 니 다.
가장 간단 한 지구 화 프레임 워 크
구조 적 성능 강화
SQL 코드 는 프로그램 코드 에서 철저히 분리 되 어 다시 사용 할 수 있 습 니 다.
프로젝트 중의 분업 을 강화 하 였 다.
이식 성 을 증강 시 켰 다
canMyBatisDemo
패키지,클래스 분포 도:

my batis 는 가방 하나 와 데이터베이스 지원 패키지 하나만 있 습 니 다.
my batis-config.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> 
  <typeAliases> 
    <!--         --> 
    <typeAlias alias="User" type="cn.hncu.domain.User" /> 
  </typeAliases> 
  <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://127.0.0.1:3306/mybatis?characterEncoding=UTF-8" /> 
        <property name="username" value="hncu" /> 
        <property name="password" value="1234" /> 
        <property name="poolMaximumActiveConnections" value="5"/> 
      </dataSource> 
    </environment> 
  </environments> 
  <mappers> 
    <mapper resource="cn/hncu/domain/User.xml"></mapper> 
    <mapper resource="cn/hncu/domain/User2.xml"></mapper> 
  </mappers> 
</configuration> 
SqlSessionUtils.java

package cn.hncu.utils; 
 
import java.io.IOException; 
import java.io.InputStream; 
import java.sql.Connection; 
 
import org.apache.ibatis.io.Resources; 
import org.apache.ibatis.session.SqlSession; 
import org.apache.ibatis.session.SqlSessionFactory; 
import org.apache.ibatis.session.SqlSessionFactoryBuilder; 
 
import com.mysql.jdbc.interceptors.SessionAssociationInterceptor; 
 
 
public class SqlSessionUtils { 
  private static SqlSessionFactory sessionFactory=null;//DataSource--pool 
  static{ 
    try { 
      InputStream in=Resources.getResourceAsStream("mybatis-config.xml");//       
      sessionFactory=new SqlSessionFactoryBuilder().build(in); 
      /* 
       *            Resources        (  ClassLoader         ) 
        sessionFactory=new SqlSessionFactoryBuilder().build(SqlSessionUtils.class.getClassLoader().getResourceAsStream("mybatis-config.xml")); 
       */ 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
  } 
   
  public static SqlSessionFactory getSessionFactory(){ 
    return sessionFactory; 
  } 
  public static SqlSession getSqlSession(){ 
    return sessionFactory.openSession(); 
  } 
  public static void main(String[] args) { 
    //mybatis             
    for(int i=0;i<10;i++){ 
      SqlSession s=getSqlSession(); 
      System.out.println(s); 
      Connection con=s.getConnection(); 
      System.out.println("con: "+con); 
    } 
  } 
} 
User.java

package cn.hncu.domain; 
 
public class User { 
  private String id; 
  private String name; 
  private String pwd; 
  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 String getPwd() { 
    return pwd; 
  } 
  public void setPwd(String pwd) { 
    this.pwd = pwd; 
  } 
  @Override 
  public String toString() { 
    return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]"; 
  } 
   
} 
User 의 맵 파일 User.xml(가장 간단 한 프로필)

package cn.hncu.domain; 
 
import java.util.List; 
 
public interface UserMapper { 
  public List<User> all(); 
  public List<User> user2(String string); 
  public List<User> user3(User user); 
} 
UserMapper.java(인터페이스,공식 적 으로 인터페이스 방식 사용 권장-더 안전)

package cn.hncu.domain; 
 
import java.util.List; 
 
public interface UserMapper { 
  public List<User> all(); 
  public List<User> user2(String string); 
  public List<User> user3(User user); 
} 
Demo1.java

package cn.hncu.demo; 
 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
 
import org.apache.ibatis.session.SqlSession; 
import org.junit.Test; 
 
import cn.hncu.domain.User; 
import cn.hncu.domain.UserMapper; 
import cn.hncu.utils.SqlSessionUtils; 
 
public class Demo1 { 
  @Test 
  public void test1(){ 
    //   SqlSession 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
    List<User> list=s.selectList("users.all");//     list  ,   id              ,<select> <insert> sql   
//   List<User> list=s.selectList("all");//      ----    (id)  ,               
    //System.out.println(list); 
    for(User u:list){ 
      System.out.println(u); 
    } 
  } 
  <span style="color:#ff0000;">//           (        ,   ) 
  /*   
   * 1.     :UserMapper,            <select>   id   ,              
   * 2. User2.xml                
   * 3.      ( dao  java), "s.getMapper()"         ,           ,        
   */</span> 
   
  @Test//       ,       : User2.xml 
  public void test2(){ 
    //   SqlSession 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
    UserMapper m=s.getMapper(UserMapper.class);//         
    List<User>list=m.all(); 
    System.out.println(list); 
  } 
  ///////////////test3()             ,  User2.xml/////////////////// 
   
  @Test//     
  public void test3_1(){ 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
//   List<User> users=s.selectList("cn.hncu.domain.UserMapper.all"); 
    List<User> users=s.selectList("user2","2");//     List  ,                 
    System.out.println(users); 
  } 
  @Test//       
  public void test3_2(){ 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
    UserMapper u=s.getMapper(UserMapper.class); 
    List<User> users=u.user2("3"); 
    System.out.println(users); 
  } 
   
  ///////////////////     (             )////////////// 
  @Test 
  public void test4(){ 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
     
    UserMapper u=s.getMapper(UserMapper.class); 
    User user=new User(); 
    user.setId("4"); 
    user.setName("  "); 
    List<User> users=u.user3(user); 
    System.out.println(users); 
  } 
  @Test 
  public void test5(){//     map 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
    System.out.println(s); 
    List<Map<String,Object>> users=s.selectList("user4"); 
    for(Map<String,Object> user:users){ 
      System.out.println(user); 
    } 
  } 
  @Test//       map 
  public void test6(){ 
    SqlSession s=SqlSessionUtils.getSqlSession(); 
    Map<String, Object> map=new HashMap<String,Object>(); 
    map.put("id", "5"); 
    map.put("name", "  "); 
    List<Map<String,Object>> users=s.selectList("user5",map); 
    for(Map<String,Object> user:users){ 
      System.out.println(user); 
    } 
  } 
} 
User2.xml

<?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="cn.hncu.domain.UserMapper"> 
  <select id="all" resultType="cn.hncu.domain.User"> 
    select * from users 
  </select> 
</mapper> 
--> 
<mapper namespace="cn.hncu.domain.UserMapper"> 
<!--         --> 
  <select id="all" resultType="User"> 
    select * from users 
  </select> 
   
  <!--          ,   sql           --> 
  <select id="user2" resultType="User" parameterType="string"> 
    select * from users where id=#{xx} 
  </select> 
  <!--          ,   sql                  (  if           ) --> 
  <select id="user3" resultType="User" parameterType="string"> 
    select * from users where id=#{id} 
    <if test="name!=null"> 
      and name=#{name} 
    </if> 
  </select> 
  <!--         List<Map<>> --> 
  <select id="user4" resultType="map"> 
    select * from users 
  </select> 
  <!--         map   --> 
  <select id="user5" resultType="hashmap" parameterType="hashmap"> 
    select * from users where id=#{id} 
    <if test="name!=null"> 
      and name=#{name} 
    </if> 
  </select> 
</mapper> 
여 기 는 my batis 를 처음 만 났 을 뿐 어떻게 간단하게 사용 하 는 지 알 게 되 었 습 니 다.구체 적 으로 복잡 한 용법 은 다음 에 붙 입 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기