MyBatis 삽입 데이터의 간단한 인스턴스를 작성하십시오
1. 데이터베이스 테이블 빌딩의 의미 dob = 생년월일
테이블 학생 (Stud_id 번호 1 차 키, 이름 varchar2 (20), 이메일 varchar2 (20), dob 날짜)를 만듭니다.
Oracle 데이터베이스에서 생성 된 테이블은 생성이 성공했음을 의미합니다. 이름이 사용 된 경우 테이블을 만들기 전에 이름을 삭제할 수 있습니다. 또는 캐스케이드 삭제 드롭 테이블 학생 캐스케이드 제약; 그런 다음 다시 재현하십시오.
2 새 프로젝트를 만듭니다
2.1 해당 패키지 및 수업을 만듭니다. 여기서 학생은 우리가 삽입하려는 대상입니다. 데이터 유형은 데이터베이스의 값에 해당하므로 전체 객체를 삽입 할 수 있습니다. 따라서 Pojo 클래스를 사용하여 객체를 캡슐화합니다.
패키지 com.mybatis.pojo; import java.util.date; 공개 클래스 학생 {개인 정수 스터드; 개인 문자열 이름; 개인 문자열 이메일; 개인 날짜 DOB; Public Student () {} // 매개 변수가없는 생성자에 주목하십시오 this.name = 이름; this.email = 이메일; this.dob = dob; } public Integer getStudid () {return studId; } public void setstudid (정수 studId) {this.studid = studId; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public String getEmail () {반환 이메일; } public void seteMail (문자열 이메일) {this.email = 이메일; } 공개 날짜 getDob () {return dob; } public void setDob (날짜 dob) {this.dob = dob; } @override public String toString () {return "return"studid = " + studId +", name = " + name +", email = " + email +", dob = " + dob +"]; }}3. 프로젝트에 MyBatis Core 패키지 및 선택적 종속성 패키지를 소개합니다.
파일 다운로드 : MyBatis 패키지 다운로드
최신 버전 다운로드 : https://github.com/mybatis/mybatis-3/releases
필수 패키지 mybatis-3.3.0.jar ojdbc14.jar
옵션 패키지 junit-4.7.jar log4j-1.2.17.jar
그중에서도 Mybatis-3.3.0.jar는 mybatis가 제공하는 기능을 구현하는 데 사용됩니다. OJDBC14.jar는 데이터베이스에 연결하는 데 사용되며 Junit-4.7.jar는 기능 테스트를 구현하는 데 사용되며 Log4J-1.2.17. Jar는 로그를 수행하는 데 사용됩니다.
아래 그림과 같이 : 프로젝트 디렉토리에서 새 폴더 jar를 만들고 JAR 디렉토리로 가져와야하는 패키지를 복사하여 붙여 넣습니다.
참고 :이 항아리 패키지를 로컬로 보관할 때 중국어를 사용하지 마십시오.
그런 다음 마우스 오른쪽 버튼을 클릭하여 JAR 디렉토리에서 4 개의 파일을 선택하고 클릭하여 "BuildPath-> Add Add"를 클릭하면 다음 인터페이스가 표시됩니다. 경로가 성공적으로 추가되었음을 의미합니다.
4. 프로젝트에 myBatis 구성 파일 DTD 제약 파일을 소개합니다.
마찬가지로 아래 그림과 같이 프로젝트에서 새 DTD 디렉토리를 작성하고 구속 파일을 디렉토리에 복사하십시오. DTD 파일 구조, DTD 파일 다운로드 :
http://download.csdn.net/download/suwu150/9660699
DTD 파일의 기능은 구성 파일 XML을 제한하여 프로그래머가 사양에 따라 XML 파일을 작성할 수 있도록하고 MyBatis는 올바르게 읽고 구문 분석 할 수 있습니다. 위의 DTD는 로컬로 구성되며 물론 공식 웹 사이트의 연결을 사용하여 제한 할 수도 있습니다.
5 MyBatis의 구성 파일 및 매핑 파일이 각각 프로젝트에 소개됩니다.
1) src 아래의 mybatis-config.xml :
먼저 로컬 DTD 제약 조건을 연관시키고 다음 그림 선호도를 입력하고 검색 상자에 XML을 입력하고 XML 카탈로그 구성 이름을 선택한 다음 오른쪽의 추가 버튼을 클릭합니다.
아래 그림에 표시된 인터페이스는 위치 위치와 키 위치가 비어있는 곳이 나타납니다. 아래 그림은 구성되어 있습니다. 주요 내용은 -// mybatis.org//dtd config 3.0 // en입니다. 위치 콘텐츠는 자신의 것입니다. 작업 공간, 즉 이전에 프로젝트에 복사 한 DTD 파일 (4 단계)을 통해 선택할 수 있습니다.
확인을 클릭하십시오. 이제 XML 구성 파일을 작성할 수 있습니다. 제약 조건을 추가하는 목적은 MyBatis를 정상적으로 구문 분석 할 수 있도록 프로그래머의 글을 표준화하는 것입니다.
아래 그림과 같이 : SRC를 선택하고 마우스 오른쪽 버튼을 클릭하여 새 파일 MyBatis-config.xml을 만듭니다.
참고 : XML 파일의 시작은 탑을 얹어야하며 그 앞에는 공간이 없어야합니다.
<? xml 버전 = "1.0"alcoding = "utf-8"?> <!-DTD 제약 조건을 수행합니다. configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <tondealiases> <!-pojo 클래스의 Aliases-> alias type = ""alias = "" "" "" "" ""com.mybatis. </findealiases> <!- 개발이 기본 데이터베이스 이름 인 데이터베이스 환경을 구성하십시오. TransactionManager 유형은 JDBC 유형입니다. 데이터 소스 데이터 소스는 연결 풀-> <환경 기본값 = "개발"> <환경 ID = "개발"> <transactionManager type = "jdbc"> </transactionManager> <dataSource type = "pooled"> <!-데이터베이스 정보를 구성합니다. 여기에서 Oracle Database를 여기에서 사용합니다-> <속성 이름 = "driver"value = "oracle.jdbc.driver.oracledriver" /> <property name = "url"value = "jdbc : oracle : thin :@127.0.0.1 : 1521 : orcl" /> <property name = "username"value = "briup"> </dataSource> </환경> </환경> <!-SQL 작업을 수행 할 수있는 XML 파일 매핑 경로 구성-> <mapper resource = "com/mybatis/mappers/studentmapper.xml"/> </mappers> </configuration>
2) com.mybatis.mappers 패키지 아래의 Studentmapper.xml :
먼저 인터페이스 com.mybatis.mappers를 구현합니다. 패키지 XML 파일의 SQL 문 (매핑)에 해당하기 위해 패키지 아래에 새 인터페이스 Studentmapper.java를 만들기위한 패키지
패키지 com.mybatis.mappers; Java.util.list 가져 오기; com.mybatis.pojo.student import; 공개 인터페이스 StudentMapper {list <tudent> findAllStudents (); 학생 FindStudentByid (정수 ID); 무효 인 삽입 (학생 학생); }동일한 방법을 사용하여 Mapper 파일을 제한하십시오
그런 다음 XML 코드를 작성하십시오.
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype mapper public "-// mybatis.org//dtd Mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">-com.mybatis.mapper.mapper is the the the the the the the the the the the the watherfine 정의하다. 이렇게하면 인터페이스를 사용하여 매핑 SQL 문을 호출 할 수 있습니다. This name must correspond to the interface--> <mapper namespace="com.mybatis.mappers.StudentMapper"> <resultMap type="Student" id="StudentResult"> <id property="studId" column="stud_id" /> <result property="name" column="name" /> <result property="email" column="email" /> <result property="dob" column="dob" /> </resultmap> <select id = "findAllStudents"resultMap = "studentResult"> select *에서 * select * </select> <!-열 이름과 속성 이름이 일관되지 않으면 쿼리 열에 별명을 줄 수 있습니다.> <select id = "select _ exhenttype ="stude as studit as as as as as as as a vore as wore, when stud_id =#{id} </select> <insert id = "insertStudent"parametertype = "student"> 학생들 (Stud_id, name, email, dob) 값 (#{studId},#{name},#{email},#{dob}) </insert> ********************************************************************************************************* 누군가
참고 : XML 파일로 작성된 SQL 문의 끝에 세미콜론을 쓰지 마십시오. 그렇지 않으면 오류 가보고됩니다. ORA-00911 : 잘못된 문자
********************************************************************************************************* 누군가
6 log4j.properties 파일에서 로그 출력 구성 :
위치 SRC에서 파일 이름 log4j.properties
콘텐츠:
log4j.rootlogger = debug, stdout log4j.appender.stdout = org.apache.log4j.consoleappender log4j.appender.stdout.layout = org.apache.log4j.patternlayout log4j.appender.layout.conversionpattern =%-5p%] sql log4j.logger.java.sql.resultset = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = debug log4j.logger.java.sql.statement = debug log4j.logger.java.sql.preedstat gug
7 테스트 클래스 StudentMapperTest.java를 만듭니다
패키지 com.mybatis.test; import java.io.ioexception; import java.io.inputstream; import java.util.date; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; import org.junit.test; import com.mybatis.mappers.studentMapper; com.mybatis.pojo.student import; 공개 클래스 StudentMapperTest {@test public void test_insertstudent () {sqlsession session = null; {// 구성 파일을 얻습니다. inputStream inputStream = resources.getResourceasStream ( "myBatis-config.xml"); // 팩토리 객체 생성 SQLSESSIONFACTORY SQLSESSIONFACTORY = 새 SQLSESSIONFACTORYBUILDER (). 빌드 (inputStream); // SQLSESSION 세션을 생성하기 위해 Factory Object를 사용합니다. // sqlsession을 사용하여 매핑 인터페이스의 구현 클래스 객체를 얻습니다. 인터페이스의 참조는 구현 클래스의 객체를 가리 킵니다. StudentMapper StudentMapper = session.getMapper (StudentMapper.class); 학생 학생 = 신입생 (1, "suwu150", "[email protected]", New Date ()); StudentMapper.insertstudent (학생); } catch (ioexception e) {session.rollback (); e.printstacktrace (); }}}8 성공적인 작업 후에는 다음과 같이 콘솔에서 Log4J 로그를 통해이 프로그램 실행에 대한 관련 정보가 표시됩니다.
데이터베이스를 쿼리 할 때 다음 정보를 볼 수 있습니다.
9 mybatis의 일부 기본 패키지
구성 파일을 읽을 때마다 공장 객체 sqlsessionFactory가 생성되고 SQLSession 객체가 생성됩니다. 이 프로세스는 복잡하지는 않지만 반복적 인 코드 프로세스이기도하므로 간단히 캡슐화 할 수 있습니다.
패키지 com.mybatis.utils; import java.io.ioexception; import java.io.inputstream; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; 공개 클래스 mybatissqlsessionFactory {private static sqlsessionFactory sqlsessionFactory; public static sqlsessionFactory getSqlSessionFactory () {if (sqlsessionFactory == null) {inputStream inputStream = null; try {inputStream = resources.getResourCeasStream ( "myBatis-config.xml"); sqlsessionFactory = new SqlSessionFactoryBuilder (). 빌드 (inputStream); } catch (ioexception e) {e.printstacktrace (); 새로운 runtimeexception 던지기 (e.getCause ()); }} 반환 sqlsessionFactory; } public static sqlsession opensession () {return opensession (false); // 기본적으로 수동 제출이므로} public static sqlsession opensession (boolean autocommit) {return getsqlsessionfactory (). opensession (autocommit); }}그 후, 당신이 그것을 사용할 때마다, 당신은이 클래스에서 정적 메소드 오픈 세션 만 호출하면됩니다.
위의 코드는 : // 거래가 자동으로 커밋되었는지 또는 수동으로 커밋되는지에 따라 약칭 할 수 있습니다.
mybatissqlsessionfactory.opensession (). getMapper (StudentMapper.class) .InsertStudent (s);
10 위 테스트에서는 추가 된 기능 만 완료했습니다. 삭제, 수정 및 쿼리의 기능을 구현하겠습니다.
매핑 파일에서 다음 구성을 만듭니다.
<? xml version = "1.0"alcoding = "utf-8"?> <! doctype mapper public "-// mybatis.org//dtd Mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">-com.mybatis.mapper.mapper is the the the the the the the the the the the the watherfine 정의하다. 이렇게하면 인터페이스를 사용하여 매핑 SQL 문을 호출 할 수 있습니다. This name must correspond to the interface--> <mapper namespace="com.mybatis.mappers.StudentMapper"> <resultMap type="Student" id="StudentResult"> <id property="studId" column="stud_id" /> <result property="name" column="name" /> <result property="email" column="email" /> <result property="dob" column="dob" /> </resultmap> <select id = "findAllStudents"resultMap = "studentResult"> select *에서 * select * </select> <!-열 이름과 속성 이름이 일관되지 않으면 쿼리 열에 별명을 줄 수 있습니다.> <select id = "select _ exhenttype ="stude as studit as as as as as as as a vore as wore, when stud_id =#{id} </select> <insert id = "insertStudent"parametertype = "student"> 학생들 (Stud_id, name, email, dob) 값 (#{studId},#{name},#{email},#{dob}) <ledete id = "ledetestbyid" stud_id =#{id} </delete> <업데이트 ID = "updatesTudEndById"parameterType = "Student"> 업데이트 학생 set name =#{name}, email =#{email} where_id =#{studid} </update> </mapper>인터페이스 클래스에서 다음 구성을 만듭니다.
패키지 com.mybatis.mappers; Java.util.list 가져 오기; com.mybatis.pojo.student import; 공개 인터페이스 StudentMapper {list <tudent> findAllStudents (); 학생 FindStudentByid (정수 ID); 무효 인 삽입 (학생 학생); void deletestudentByid (정수 ID); void updatestudentByid (학생 학생); }테스트 파일에 다음 코드를 작성하십시오.
패키지 com.mybatis.test; import java.io.ioexception; import java.io.inputstream; import java.util.date; Java.util.list 가져 오기; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; import org.junit.test; import com.mybatis.mappers.studentMapper; com.mybatis.pojo.student import; import com.mybatis.utils.mybatissqlsessionFactory; 공개 클래스 StudentMapperTest {@test public void test_insertstudent () {sqlsession session = null; {// 구성 파일을 얻습니다. inputStream inputStream = resources.getResourceasStream ( "myBatis-config.xml"); // 팩토리 객체 생성 SQLSESSIONFACTORY SQLSESSIONFACTORY = 새 SQLSESSIONFACTORYBUILDER (). 빌드 (inputStream); // SQLSESSION 세션을 생성하기 위해 Factory Object를 사용합니다. // sqlsession을 사용하여 매핑 인터페이스의 구현 클래스 객체를 얻습니다. 인터페이스의 참조는 구현 클래스의 객체를 가리 킵니다. StudentMapper StudentMapper = session.getMapper (StudentMapper.class); 학생 학생 = 신입생 (2, "suwu150", "[email protected]", New Date ()); StudentMapper.insertstudent (학생); 세션 .commit (); System.out.println ( "실행 완료"); } catch (ioexception e) {session.rollback (); e.printstacktrace (); }} @test public void test_deletestudentByid () {sqlsession session = null; session = mybatissqlsessionfactory.opensession (); // 캡슐화 된 클래스 사용 // sqlsession을 사용하여 매핑 인터페이스의 구현 클래스 객체를 얻습니다. 인터페이스의 참조는 구현 클래스 객체 객체 학생 mapper 학생 mapper = session.getMapper (StudentMapper.class)를 가리 킵니다. StudentMapper.deletestudentByid (2); 세션 .commit (); System.out.println ( "실행 완료"); } @test public void test_updatestudentByid () {sqlsession session = null; session = mybatissqlsessionfactory.opensession (); // 캡슐화 된 클래스 사용 // sqlsession을 사용하여 매핑 인터페이스의 구현 클래스 객체를 얻습니다. 인터페이스의 참조는 구현 클래스 객체 객체 학생 mapper 학생 mapper = session.getMapper (StudentMapper.class)를 가리 킵니다. 학생 학생 = 신입생 (); Student.setStudid (1); student.setName ( "sususu"); Student.setEmail ( "[email protected]"); StudentMapper.upDatestudentByid (학생); 세션 .commit (); System.out.println ( "실행 완료"); } @test public void test_findstudentByid () {sqlsession session = null; session = mybatissqlsessionfactory.opensession (); // 캡슐화 된 클래스 사용 // sqlsession을 사용하여 매핑 인터페이스의 구현 클래스 객체를 얻습니다. 인터페이스의 참조는 구현 클래스의 객체를 가리 킵니다. StudentMapper StudentMapper = session.getMapper (StudentMapper.class); 학생 학생 = StudentMapper.FindStudentById (1); System.out.println (학생); System.out.println (학생); System.out.println ( "실행 완료"); } @test public void test_findallstudents () {sqlsession session = null; session = mybatissqlsessionfactory.opensession (); // 캡슐화 된 클래스 사용 // sqlsession을 사용하여 매핑 인터페이스의 구현 클래스 객체를 얻습니다. 인터페이스의 참조는 구현 클래스의 객체를 가리 킵니다. StudentMapper StudentMapper = session.getMapper (StudentMapper.class); List <tudent> list = StudentMapper.FindAllStudents (); System.out.println (목록); System.out.println ( "실행 완료"); }}이런 식으로, 우리는 학생 개체의 추가, 삭제, 수정 및 검색을 완료합니다.
위는 MyBatis 추가, 삭제, 수정 및 편집기가 검색 한 예제 코드입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!