mybatis 소개
Mybatis의 전임자는 원래 Apache의 오픈 소스 프로젝트 인 Ibatis였습니다. 2010 년 에이 프로젝트는 Apache Software Foundation에서 Google 코드로 이전되었으며 Mybatis로 이름이 바뀌 었습니다.
MyBatis는 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하는 우수한 지속성 계층 프레임 워크입니다. MyBatis는 거의 모든 JDBC 코드 및 매개 변수의 수동 설정과 결과 세트의 검색을 제거합니다. MyBatis는 구성 및 원래 매핑, 맵핑 인터페이스 및 Java의 Pojos (오래된 Java 개체, 일반 Java 개체)를 데이터베이스의 레코드로 사용하는 간단한 XML 또는 주석을 사용합니다.
Mybatis 환경의 구성을위한 다음 단계가 소개됩니다.
1) 프로젝트에서 mybatis-3.4.1.jar 패키지를 소개 한 다음 데이터베이스 (MySQL, MSSQL ..) 패키지를 소개합니다.
2) SRC에서 새 구성 파일 conf.xml을 만듭니다
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <propection external ex Resource = "jdbc.properties" /> <!-MyBatis 운영 환경 구성-> <환경 기본값 = "개발"> <환경 ID = "Development"> <!-유형 = "JDBC"는 트랜잭션을 관리하기위한 JDBC의 커밋 및 롤백을 나타냅니다.> <TransactionManager Type = "JDBC" /<!-MyBatis는 3 가지 데이터 타이프를 제공합니다. 풀링, 풀 냉각, jndi-> <!-풀링 된 JDBC 데이터 소스 연결 풀-> <!-데이터 소스 연결 풀을 지원하지 않음을 나타냅니다.-> <!-jndi는 외부 데이터 소스 연결 풀에 대한 지원을 나타냅니다.-<datasource type = "popleed"> <property name = "driver"value = "$ {driver}" /> value = "$ {url}"/> <속성 이름 = "username"value = "$ {username}"/> <속성 이름 = "암호"valess "vale ="$ {passwor} "/> </dataSource> </환경> </환경> <mappers> <mapper resource ="asermapper.xml "/> </configuration>여기서 데이터베이스 스토리지 정보는 외부 구성 파일을 통해 저장되므로 JDBC.Properties 데이터베이스 스토리지 정보가 추가됩니다.
드라이버 = com.microsoft.sqlserver.jdbc.sqlserverdriverurl = jdbc : sqlserver : //127.0.0.1; databaseName = testuserName = sapassword = 123456
3) 매핑 파일 usermapper.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 = <! id = "queryusers"resulttype = "hw.com.pojo.user"> select * from ms_user </select> <selectId = "QueryUserById"resultType = "hw.com.pojo.user"parametertype = "int"> select * from id =##{id} </mapper>(이 인스턴스가 인터페이스를 통해 매핑되기 때문에 네임 스페이스 속성이 여기에 표시되어야하므로 네임 스페이스 속성은 인터페이스의 경로로 기록되어야합니다) 첨부 된 그림 :
4) 매핑 인터페이스 클래스를 만듭니다
package hw.com.ser; import java.util.list; import hw.com.pojo.user; public interface iuser {public list <user> queryusers (); 공개 사용자 queryuserByid (int id);}5) sqlsessionFactory를 만듭니다
package hw.com.util; import java.io.ioexception; import java.io.inputStream; import java.io.inputStreamReader; import java.io.Reader; import java.util.properties; import org.apache.apache.io.resources; import 또는 org.apache.ibatis.sqlseention org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; public class sqlsessionfactoryUtil {private static sqlsessionfactory sqlsessionfactory = null; 개인 정적 최종 클래스 클래스 _lock = SQLSESSIONFACTORYUTIL.class; private sqlsessionfactoryUtil () {} public static sqlsessionFactory initSqlSessionFactory () {String resource = "conf.xml"; inputStream inputStream = null; try {inputStream = resources.getResourCeasStream (resource); } catch (ioexception e) {e.printstacktrace (); } synchronized (class_lock) {if (sqlsessionFactory == null) {sqlsessionFactory = new SQLSESSIONFACTORYBUILDER (). 빌드 (inputStream); }} 반환 sqlsessionFactory; } public static sqlsession opensqlsession () {if (sqlsessionFactory == null) {initSqlSessionFactory (); } return sqlsessionFactory.OpenSession (); }}6) pojo를 만듭니다
package hw.com.pojo; import java.util.date; public class user {private string id; 개인 문자열 사용자 이름; 개인 문자열 userpwd; 사적인 Deptmentid; 개인 문자열 userTruEname; 개인 문자열 이메일; 개인 int wearncenterid; 생성 된 개인 날짜; 개인 날짜 lastmodifyDate; 개인 int Userstatus; public user () {super (); // todo 자동 생성 생성자 stub} public String getId () {return id; } public void setId (String id) {id = id; } public String getUserName () {return username; } public void setUserName (String username) {username = username; } public String getUserPwd () {return userPwd; } public void setUserPwd (String UserPwd) {userpwd = userpwd; } public int getDeptmentId () {return deptmentId; } public void setDeptmentId (int depentmentId) {deptmentId = fectionMentId; } public String getUserTrueName () {return userTruEname; } public void setUserTrueName (String userTruEname) {userTruEname = userTruEname; } public String getEmail () {반환 이메일; } public void seteMail (문자열 이메일) {email = 이메일; } public int getLearnCenterId () {return LearnCenterId; } public void setLearnCenterId (int learnCenterId) {LearnCenterId = LearnCenterId; } public Date getCreatedate () {return createate; } public void setCreatedate (날짜 createate) {createate = createate; } 공개 날짜 getLastModifyDate () {return lastModifyDate; } public void setLastModifyDate (날짜 lastModifyDate) {lastModifyDate = lastModifyDate; } public int getUserstatus () {userserstatus를 반환합니다. } public void setuserstatus (int userstatus) {userstatus = userstatus; } @override public String toString () {return "user [id =" + id + ", username =" + username + ", userpwd =" + userpwd + ", deptmentid =" + deptmentid + ", userTruename =" + userTruename + ", email =" + email + ", chratecenterid +", chromecenterid + " LastModifyDate = " + lastModifyDate +", userstatus = " + userstatus +"]; }}7) 주요 방법에 따라 테스트를 수행하십시오
패키지 hw.com.day1.main; import java.util.list; import org.apache.ibatis.session.ssession.sqlsession; import hw.com.pojo.user; import hw.com.ser.iuser; import hw.com.util.sqlsessionactactoryutil; public void mind (string) {sqls). sqlsession = null; try {sqlsession = sqlsessionfactoryutil.opensqlsession (); iuser iuser = sqlsession.getMapper (iuser.class); List <user> 사용자 = iuser.queryusers (); if (user.size ()> 0) {for (사용자 : 사용자) {system.out.println (user.toString ()); }}} catch (예외 e) {e.printstacktrace (); }}}