MyBatis 프로필 작성 및 간단 한 사용

11598 단어 mybatis프로필쓰다
마 이 바 티 스 1
처음에 Apache 는 batis 의 오픈 소스 프로젝트 를 구 글 code 에 두 었 다가 일부 이유 로 github 으로 옮 겼 습 니 다.바로 오늘 의 my Batis 입 니 다.
마 이 바 티 스 가 뭐야?
MyBatis 는 맞 춤 형 SQL,저장 프로 세 스,고급 맵 을 지원 하 는 우수한 지구 층 프레임 워 크 입 니 다.MyBatis 는 거의 모든 JDBC 코드 와 수 동 설정 파라미터,추출 결과 집합 을 피 했다.MyBatis 는 간단 한 XML 또는 주 해 를 사용 하여 기본 체 를 설정 하고 매 핑 하 며 인터페이스 와 자바 의 POJOs(Plain Old Java Objects,일반 자바 대상)를 데이터베이스 에 기록 합 니 다.
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(가장 간단 한 프로필)

<?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="users"> 
 <select id="all" resultType="cn.hncu.domain.User"> 
 select * from users 
 </select> 
</mapper> 
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 를 처음 만 났 을 뿐 어떻게 간단하게 사용 하 는 지 알 게 되 었 습 니 다.구체 적 으로 복잡 한 용법 은 다음 에 붙 입 니 다.
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 MyBatis 프로필 의 작성 방법 과 간단 한 사용 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기