준비
새로운 Java 프로젝트 또는 Java WWEB 프로젝트를 만들려면 다음 패키지를 가져와야합니다.
기본적인 작업이 완료된 후 주제에 도달하기 시작합니다.
새 엔티티 클래스를 만듭니다
데이터베이스 테이블에 해당하는 새 엔티티 클래스 생성
패키지 com.edu.hpu.domain; /***@Author Administrator*사용자 테이블에 해당하는 엔티티 클래스*/public class user {// 엔티티 클래스의 속성과 테이블의 필드 이름은 개인 int id에 해당합니다. 개인 문자열 이름; 사적인 int 연령; // 속성을 캡슐화 공개 int getId () {return id; } public void setid (int id) {this.id = id; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } public int getage () {반환 연령; } public void 설정 (int Age) {this.age = age; } // tostring 메소드 추가 @override public String toString () {return "user [id =" + id + ", name =" + name + ", age =" + age + "]; }}mybatis 도구 클래스를 추가하십시오
아래 그림과 같이 추가 된 도구 클래스,
패키지 com.edu.hpu.util; import java.io.inputstream; import org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; 공개 클래스 mybatisutil {/** * get sqlsessionfactory * @return sqlsessionfactory */public static sqlsessionfactory getSqlsessionFactory () {문자열 resource = "conf.xml"; // configuration inputStream is = mybatisutil.class.getresourceascestream (); sqlsessionFactory factory = 새로운 sqlsessionfactorybuilder (). build (is); 반품 공장; } / ** * get sqlsession * @return sqlsession * / public static sqlsession getSqlsession () {return getSqlSessionFactory (). openSession (); } /** * sqlsession get * @param isaUtoCommit * true는 생성 된 sqlsession 객체가 SQL이 실행 된 후 트랜잭션을 자동으로 제출한다는 것을 의미합니다. 이 시점에서 트랜잭션을 제출하려면 sqlsession.commit ()를 수동으로 호출해야합니다 * @return sqlsession */ public static sqlsession getSqlsession (boolean isautocommit) {return getSqlsessionFactory (). opensession (isautocommit); }}MyBatis를 사용하여 데이터를 추가, 삭제, 검색 및 수정하는 두 가지 방법, 즉 구성 파일 작동 및 주석 작동을위한 두 가지 방법이 있습니다.
구성 파일을 통한 작동
데이터베이스 구성 파일은 다음과 같습니다. 데이터베이스 정보 구성,
<? 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> <환경 ""> 개발 "> <transactionManager type = "jdbc" /> <!-데이터베이스 연결 정보 구성-> <dataSource type = "pooled"> <property name = "driver"value = "com.mysql.jdbc.driver" /> <property name = "url" value = "value ="value = "value ="value = "value ="value = mysql : // localhost : 3306/test? useUnicode = true & charac usermapper.xml 파일, usermapper.xml은 com.edu.hpu.mapping 패키지에 위치하고 있으므로 리소스는 com/edu/hpu/mapping/usermapper.xml-> <mapper resource = "com/edu/hpu/usermapper.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 "> <Mapper Namespace ="com.edu.edu.edu.edu.edu.edu. 쿼리 SQL 문서 SELECT 태그에서 SELECT TAG의 ID 속성을 GetUser로 설정하십시오. ID 속성 값은 고유해야합니다. 쿼리에 사용 된 매개 변수 유형을 표시하기 위해 ParameterType 속성을 재사용 할 수 없습니다. resulttype 속성은 query resulttype = "com.edu.hpu.domain.user"에 의해 반환 된 결과 세트 유형을 나타냅니다. 쿼리 결과가 사용자 클래스의 객체로 캡슐화되어 사용자 클래스로 캡슐화되어 사용자 테이블에 해당하는 엔티티 클래스-> <select id = "getuser" "ParameterType" resulttype = "com.edu.hpu.domain.user"> 사용자에서 * 선택 * id =#{id} </select> <!-사용자 만들기 (create)-> <insert id = "adduser"parametertype = "com.edu.hpu.domain.user"> user (name, age) {{age}),#{delet}) (remove)-> <delete id = "deleteuser"parametertype = "int"> id =#{id} </delete> <!-사용자에서 삭제합니다. usude (update)-> <update id = "updateUs"parameterType = "com.edu.hpu.domain.user"> 업데이트 사용자 set name =#} </update> <!-모든 사용자 쿼리-> <select id = "getAllUsers"resulttype = "com.edu.hpu.domain.user"> select * from ours </select> </mapper> 구성 파일을 통한 데이터베이스 추가, 삭제 및 개정이 기본적으로 완료되었습니다. 다음으로 테스트 클래스가 제공됩니다.
테스트는 아래 그림과 같이 수행 할 수 있습니다.
패키지 com.edu.hpu.test; Java.util.list 가져 오기; import com.edu.hpu.domain.user; import com.edu.hpu.util.mybatisutil; import org.junit.test; import org.apache.ibatis.session.sqlsession; public class test2 {@test public void testadd () {// sqlsession sqlsession = mybatisutil.getSqlsession (false); sqlsession sqlsession = mybatisutil.getSqlsession (true); / ** * MAP SQL 식별 문자열, * com.edu.hpu.mapping.usermapper는 usermapper.xml 파일의 Mapper 태그의 네임 스페이스 속성 값입니다. "com.edu.hpu.mapping.usermapper.adduser"; // 맵 SQL 식별 문자열 사용자 user = new User (); user.setname ( "새 사용자 xiaohuang"); user.setage (20); // 삽입 작업 int retresult = sqlsession.insert (state, user); // 수동으로 트랜잭션을 제출 // sqlsession.commit (); // sqlsession sqlsession.close ()를 사용하여 SQL을 실행 한 후; System.out.println (Retresult); } @test public void testupdate () {sqlsession sqlsession = mybatisutil.getSqlsession (true); /** * MAP SQL 식별 문자열, * com.edu.hpu.mapping.usermapper는 usermapper.xml 파일에서 Mapper 태그의 네임 스페이스 속성 값입니다. * updateUser는 업데이트 태그의 ID 속성 값입니다. 실행될 SQL은 업데이트 태그의 ID 속성 값을 통해 찾을 수 있습니다. user.setid (3); user.setName ( "Hello World"); user.setage (25); // 수정 작업 실행 int retresult = sqlsession.update (State, User); // sqlsession으로 sql을 실행 한 후 sqlsession sqlsession.close ()를 닫아야합니다. System.out.println (Retresult); } @test public void testDelete () {sqlsession sqlsession = mybatisutil.getSqlsession (true); / ** * MAP SQL 식별 문자열, * com.edu.hpu.mapping.usermapper는 usermapper.xml 파일에서 Mapper 태그의 네임 스페이스 속성 값입니다. * deleteuser는 삭제 태그의 ID 속성 값이며 삭제 태그의 ID 값을 통해 찾을 수 있습니다. "com.edu.hpu.mapping.usermapper.deleteuser"; // SQL의 식별 문자열 매핑 // 삭제 삭제 int retresult = sqlsession.delete (State, 4); // sqlsession sqlsession.close ()를 사용하여 SQL을 실행 한 후; System.out.println (Retresult); } @test public void testgetall () {sqlsession sqlsession = mybatisutil.getSqlsession (); /** * SQL의 식별 문자열 매핑 * com.edu.hpu.mapping.usermpper는 usermpper.xml 파일에서 Mapper 태그의 네임 스페이스 속성 값입니다. * getAllUsers는 선택 태그의 ID 속성 값입니다. 실행될 SQL은 선택 태그 */String statement의 ID 속성 값을 통해 찾을 수 있습니다./string state = "com.edu.hpu.usermapper.getallusers"; // SQL Identity String을 매핑 // 쿼리 작업을 실행하고 쿼리 결과를 <user> lstussers = sqlsections (statectors); // sqlsession으로 sql을 실행 한 후 sqlsession sqlsession.close ()를 닫아야합니다. System.out.println (lstusers); }}주석을 통한 작동
주석을 통한 작동에는 인터페이스를 작성해야하지만 아래와 같이 구현할 필요는 없습니다.
패키지 com.edu.hpu.mapping; Java.util.list 가져 오기; import com.edu.hpu.domain.user; import org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.select; import org.apache.ibatis.annotations.update; /** * @author gacl * SQL 매핑의 인터페이스를 정의하고 주석 */public interface usermapper_11 {// @insert 주석을 사용하여 @insert antation을 사용하여 @insert @insert ( "name, age values ( #{age}))에 의해 실행되도록 SQL을 지정하기 위해 @insert 주석을 사용하여 실행될 SQL을 지정하십시오. // @delete 주석을 사용하여 deletebyid 메소드 @delete에 의해 실행될 SQL을 지정하십시오 ( "id =#{id}"public int deletebyid (int id); // @update 주석을 사용하여 업데이트 메소드 @update ( "Update 사용자 set name =#{name}, age =#{age} 여기서 id =#{id}") public int update (user user); // @Select 주석을 사용하여 sql을 지정하여 getByid 메소드 @select ( "select * id =#{id}") public user getByid (int id); // @Select 주석을 사용하여 sql을 지정하여 getAll 메소드 @Select ( "select * from user") public list <user> getAll (); }동시에 데이터베이스 구성 파일에 서면 인터페이스를 추가하고 conf.xml에 다음 문을 추가해야합니다.
<맵퍼/>
좋아, 기본적으로 완료되었습니다. 테스트 할 수있는 테스트 클래스가 있습니다.
패키지 com.edu.hpu.test; Java.util.list 가져 오기; import com.edu.hpu.domain.user; import com.edu.hpu.mapping.usermapper_11; import com.edu.hpu.util.mybatisutil; import org.apache.ibatis.session.sqlsession; import org.junit.test; / ***@Author 관리자*테스트 주석*/ public class test3 {@test public void testAdd () {sqlsession sqlsession = mybatisutil.getSqlsession (true); // usermapper 인터페이스의 구현 클래스 객체를 가져옵니다. usermapper 인터페이스의 구현 클래스 객체는 sqlsession.getmapper (usermpper.class)에 의해 동적으로 구성됩니다. usermapper_11 mapper = sqlsession.getmapper (usermpper_11.class); 사용자 user = 새 사용자 (); user.setName ( "위대한 지혜는 어리석은"); user.setage (20); int add = mapper.add (사용자); // sqlsession sqlsession.close ()로 sql을 실행 한 후 sqlsession을 닫아야합니다. System.out.println (추가); } @test public void testupdate () {sqlsession sqlsession = mybatisutil.getSqlsession (true); // usermapper 인터페이스의 구현 클래스 객체를 가져옵니다. UserMapper 인터페이스의 구현 클래스 객체는 sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getmapper (usermpper_11.class)에 의해 동적으로 구성됩니다. 사용자 user = 새 사용자 (); user.setid (3); user.setName ( "큰 소리와 사운드"); user.setage (26); // 수정 작업 실행 int retresult = mapper.update (user); // sqlsession을 사용하여 SQL을 실행 한 후에는 sqlsession sqlsession.close ()를 닫아야합니다. System.out.println (Retresult); } @test public void testDelete () {sqlsession sqlsession = mybatisutil.getSqlsession (true); // usermapper 인터페이스의 구현 클래스 객체를 가져오고 usermapper 인터페이스의 구현 클래스 객체는 sqlsession.getmapper (usermpper.class) usermport_11 mapper = sqlsession.getmapper (asermpper_11.class)에 의해 동적으로 구축됩니다. // 삭제 삭제 작업 int retresult = mapper.deletebyid (7); // sqlsession을 사용하여 SQL을 실행 한 후에는 sqlsession sqlsession.close ()를 닫아야합니다. System.out.println (Retresult); } @test public void testgetUser () {sqlsession sqlsession = mybatisutil.getSqlsession (); // usermapper 인터페이스의 구현 클래스 객체를 가져옵니다. usermapperi 인터페이스의 구현 클래스 객체는 sqlsession.getmapper (usermpper.class) usermport_11 mapper = sqlsession.getmapper (usermpper_11.class)에 의해 동적으로 구성됩니다. // 쿼리 작업을 실행하고 쿼리 결과를 사용자 return user user = mapper.getById (1)로 자동 캡슐화합니다. // sqlsession을 사용하여 SQL을 실행 한 후에는 sqlsession sqlsession.close ()를 닫아야합니다. System.out.println (사용자); } @test public void testgetall () {sqlsession sqlsession = mybatisutil.getSqlsession (); // usermapper 인터페이스의 구현 클래스 객체를 가져옵니다. UserMapper 인터페이스의 구현 클래스 객체는 sqlsession.getMapper (usermapper.class) usermapper_11 mapper = sqlsession.getmapper (usermpper_11.class)에 의해 동적으로 구성됩니다. // 쿼리 작업을 실행하고 쿼리 결과를 목록에 자동으로 캡슐화합니다 <user> return list <user> lstusers = mapper.getall (); // SQLSESSION 실행 SQL을 사용한 후 SQLSESSION SQLSESSION.CLOSE ()를 닫아야합니다. System.out.println (lstusers); }}위는 편집자가 소개 한 데이터 첨가, 삭제 및 개정의 MyBatis 구현에 대한 자세한 설명입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!