첫 번째의 MyBatis 프로그램 (초기 블로그 작가)

 

첫 번째 프로그램의 MyBatis

 

첫째, 환경 :

 

  1 JDK1.8

  2, MYSQL5.7

  3, IDEA

  4 MAVEN 3.63

 

 

두, MyBatis로 알고 :

  1, 공식 문서를 체크 아웃

https://mybatis.org/mybatis-3/zh/index.html

  2, 참조 바이두 백과 사전

https://baike.so.com/doc/5582692-5795562.html

   MyBatis로는 우수한 지속성 프레임 워크가 지원하는 사용자 정의 SQL, 저장 프로 시저 및 고급 매핑입니다. MyBatis로 거의 모든 JDBC 코드와 수동 설정 매개 변수 및 결과 세트를 얻기를 피할 수 있습니다. MyBatis로는 간단한 XML 구성 및 매핑 주석 또는 기본 유형의 인터페이스와 자바 POJO (일반 올드 자바 객체, 일반 오래된 자바 객체)를 사용하여 데이터베이스에 기록됩니다.

  3. 지속성 프레임 워크는 무엇입니까 :

  소위 "영구는"향후 사용을 위해 데이터 저장 장치를 저장 전원을 꺼야하는 것입니다, 간단히 말해, 관계형 데이터베이스, 파일 시스템에 메모리에 데이터를 저장하는 것입니다, 메시지 큐는 지속적인 지원 장치를 제공한다.
  지속성은 시스템 데이터 지속성 독립적 레벨에 집중한다.
  특정 영속 계층 설계에있어서,
  - 별도의 데이터 저장소 논리 데이터 액세스 인터페이스의 추상화를 제공한다.
  - 구현으로 데이터 액세스를 분리 기본 구현은 코드 변경없이 전환 할 수있다.
  - 자원 관리 및 분리의 스케줄링은 상기 데이터 접근 층 (캐싱 메커니즘으로) 통합 자원 스케줄링을 달성했다.
    - 데이터 추상화, 객체 지향 데이터는 더 작업을 제공합니다.
 
둘째, 환경을 설정 :
  1의 pom.xml에 새로운 받는다는 의존성을 도입 (MySQL의 드라이브의 MyBatis 때 JUnit)
  
1 <의존성>
 2     <! - MySQL의驱动->
 3      <의존성>
 4        <의 groupId> MySQL의 </의 groupId>
 5        <artifactId를> MySQL을 커넥터 자바 </ artifactId를>
 6        <버전> 5.1.47 </ 버전 >
 7      </ 의존성>
 8      <! - MyBatis로 ->
 9      <의존성>
 10        <의 groupId> org.mybatis </의 groupId>
 11        <artifactId를>의 MyBatis </ artifactId를>
 12        <버전> 3.5.2 </ 버전>
 13      </ 의존성>
 14      <! -의 JUnit ->
15      <의존성>
 16       <의 groupId>의 JUnit </의 groupId>
 17        <artifactId를>의 JUnit </ artifactId를>
 18        <버전> 4.11 </ 버전>
 19        <범위> 시험 </ 범위>
 20      </ 의존성>
 21    </ 의존성>

 

   2 데이터베이스 (데이터베이스 ->의 MySQL)에 연결 설치해야 구성의 MySQL
    
 
3, MyBatis로 핵심 구성 파일 -> 자원 -> MyBatis로-config.xml에
1 <? XML 버전 = "1.0" "UTF-8"인코딩 =?>
 2 <! DOCTYPE 구성
 3          PUBLIC "- // mybatis.org//DTD 구성 3.0 // EN"
 4          "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <구성>
 6  
7      <환경 기본 = "발달">
 8          <환경 ID = "발달">
 9              <된 TransactionManager TYPE = "JDBC"/>
 10              <들은 DataSource TYPE = "풀링">
 11                  <속성 명 = "드라이버"값 = "com.mysql.jdbc.
                 <속성 이름 = "URL"값 = "JDBC한다 : mysql : // localhost를 : 3306 useSSL = TRUE & A; useUnicode = TRUE & A; useEncoding = UTF-8"/>
 (13)                  <속성 이름 = "사용자 이름"값 = "루트"/ >
 14                  <속성 명 = "비밀번호"값 = "123456"/>
 15              </은 dataSource>
 16          </ 환경>
 17      </ 환경>
 18      <맵퍼>
 19          <매퍼 자원 = "COM / 구오 / DAO / UserMapper.xml "/>
 20      </ 매퍼>
 21 </ 구성>

4, 도구 com.guo.untiul를 생성 -> MybatishUtils

1  pcublic  clnass의 MybaatisUtiils J {
 2 N     공용  정적 SqlSessionFactory는 SqlSessionFactory는;
3      정적 {
 4          시도는 {
 5              문자열 리소스 = "-config.xml 파일을 MyBatis로" ;
6              의 InputStream inputStream을 = Resources.getResourceAsStream (리소스);
7               SqlSessionFactory는 = 새로운 SqlSessionFactoryBuilder를 () 빌드 (inputStream을).;
8          } 캐치 (IOException이 전자) {
 9              e.printStackTrace ();
10          }
11      }
 12는  
13이다      // SQLSESSION의 인스턴스 생성 
(14)      공개  정적 SQLSESSION getSqlSession () {
 15          반환 sqlSessionFactory.openSession ();
 16      }
 . 17 }

 

셋째, 쓰기 코드 :
  1, 엔티티 클래스가 com.guo.pojo- 생성> 사용자
  
1 개  공용  클래스 사용자 {
 2      개인  INT의 ID;
3      개인 문자열 이름;
4      개인 문자열 비밀 번호;
5  
6      공용 사용자 () {
 7      }
 8  
9      공용 사용자 ( INT의 ID 문자열 이름 문자열 암호) {
 10           .ID = ID;
11           .username = 아이디;
12           .password = 암호;
13      }
 14  
15      @Override
 16     공공 문자열 toString () {
 17          반환 "사용자 {"+
 18                  "ID ="+ 아이디 +
 19                  ", 이름 = '"+ 이름 +'\ ''+
 20                  ", 암호 = '"+ 비밀번호 +'\ '' +
 21                  "}" ;
22      }
 23  
24      공개  의 INT getId () {
 25          반환 ID;
26      }
 27  
28      공중  공극 setId ( INT의 ID) {
 29           .ID = ID;
  
     공공 문자열 getUserName 메서드 () {
 33          반환 이름;
34      }
 35  
36      공중  공극 setUsername (문자열 이름) {
 37           .username = 아이디;
38      }
 39  
40      공중 문자열하려면 getPassword () {
 41          반환 암호;
42      }
 43  
44      공중  공극 SETPASSWORD (문자열 암호) {
 45           .password = 암호;
46      }
 47 }

 

  인터페이스 com.guo.dao-> UserMapper 만들기 (2)
1 개  공용  인터페이스 UserMapper {
 2      목록 <사용자> getUserList로 ();
3 }

 

 
  맵 파일의 SQL 문 com.guo.dao-> UserMapper.xml를 작성합니다
1 <? XML 버전 = "1.0" "UTF-8"인코딩 =?>
 2 <! DOCTYPE 매퍼
 3          PUBLIC "- // mybatis.org//DTD 매퍼 3.0 // EN"
 4          "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5  
6 <매퍼 네임 스페이스 = "COM. guo.dao.UserMapper ">
 7      <SELECT ID ="getUserList로 "resultType ="com.guo.pojo.User ">
 8      선택 * student.user에서
 9    </ 선택>
 10 </ 매퍼>

 

4, 쓰기 테스트 클래스 : 테스트 클래스 com.guo.dao- 파일> UserMapperTest에 테스트 폴더를 만듭니다

1  공용  클래스 UserMapperTest {
 2      @Test
 3      공개  공극 시험 () {
 4          // 获取SQLSESSION对象
5          SQLSESSION SQLSESSION = MybatisUtils.getSqlSession ();
6          UserMapper userMapper = sqlSession.getMapper (UserMapper. 클래스 );
7          목록 <사용자> 여기서 userList = userMapper.getUserList ();
8          에 대한 (사용자 사용자 : 여기서 userList) {
 9              에서 System.out.println (사용자);
10          }
 11  
12          // 关闭SQLSESSION对象
13         sqlSession.close ();
14      }
 15 }

 

이 여전히 데이터베이스 데이터를 얻을 수 없다처럼 우리가 이유를 분석해야하므로, 어떤 특이한있을 것입니다 :

 

넷째, 예외 처리 :
1은 BindingException :() 이상 바인딩
  해결 방법 : 자원 -> MyBatis로-config.xml의 구성 받는다는
1     <맵퍼>
 2          <매퍼 자원 = "COM / 구오 / DAO / UserMapper.xml"/>
 3      </ 매퍼>

) 이상 2있는 ExceptionInInitializerError :( 초기

해결 방법 : pom.xml 파일의 리소스 필터를 증가

1      <빌드>
 2          <리소스>
 3              <리소스>
 4                  <디렉토리> SRC / 주 / 자바 </ 디렉토리>
 5                  <포함>
 6                      <포함> ** / * .properties의 </ 포함>
 7                      <포함> * * / * .XML </ 포함>
 8                  </ 포함>
 9                  <필터> 거짓 </ 필터링>
 10              </ 리소스>
 11              <리소스>
 12                  <
디렉토리> SRC / 메인 / 자원 </ 디렉토리> (13)                 <포함>
 14                      ** <포함> / * <포함 /> .properties 파일을
 15                      <포함> * * / * .XML </ 포함>
 16                  </ 포함>
 17                  <필터링> 거짓 </ 필터링>
 18              </ 리소스>
 19          </ 자원>
 20      </ 빌드>

V. 결과 :

 

  

 

 

추천

출처www.cnblogs.com/golo/p/12030650.html