첫 번째 프로그램의 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 <의존성> 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 </ 의존성>
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 개 공용 클래스 사용자 { 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 }
1 개 공용 인터페이스 UserMapper { 2 목록 <사용자> getUserList로 (); 3 }
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 <맵퍼> 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. 결과 :