기본 사용 검토 :
SQL 문은 XML 파일 또는 Java 주석에 저장됩니다. Mabatis 매핑의 예 (Java 인터페이스 및 Mybatis 주석을 사용하는) :
package org.mybatis.example; public interface blogmapper {@select ( "select * from blog where id = #{id}") Blog SelectBlog (int id);}실행의 예 :
Blogmapper Mapper = session.getMapper (blogmapper.class); 블로그 블로그 = mapper.selectBlog (101);
SQL 문 및 매핑은 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"> id = "selectblog"parametertype = "int"resulttype = "blog"> blog where id = #{id} </select> </mapper>에서 select * select *MyBatis API를 사용하여 진술을 실행할 수도 있습니다.
블로그 블로그 = session.selectone ( "org.mybatis.example.blogmapper.selectblog", 101);
자세한 내용은 MyBatis 웹 사이트에서 제공 한 사용자 설명서를 참조하십시오.
봄과 통합
Mybatis는 Spring 프레임 워크와 통합됩니다. Spring Framework를 사용하면 Mybatis가 스프링 트랜잭션에 참여하고 Mybatis Mappers 및 세션을 생성하여 다른 콩에 주입 할 수 있습니다.
다음은 기본 XML 구성 예입니다. Mapper가 "Blogservice"Bean에 생성되어 주입됩니다.
<bean id = "sqlsessionFactory"> <property name = "dataSource"ref = "dataSource" /> < /bean> <bean id = "blogmapper"> <property name = "sqlsessionFactory"ref = "sqlsessionfactory" /<property name = "mapperInterface"value = "org.mybatis.exailt.blogmapper" /> />. id = "blogservice"> <property name = "blogmapper"ref = "blogmapper" /> < /bean>
이제 Mybatis에게 전화하면 하나의 콩을 불러야합니다.
공개 클래스 BlogserviceImpl은 Blogservice {private blogmapper blogmapper; public void setBlogMapper (blogmapper blogmapper) {this.blogmapper = blogmapper; } public void dosomethingwithablog (int blogid) {blog blog = blogmapper.selectblog (blogid); ...}} sqlsessionFactory
각 mybatis 응용 프로그램은 SQLSESSIONFACTORY 객체의 인스턴스를 코어로 사용합니다. sqlsessionFactory 자체는 sqlsessionFactoryBuilder에 의해 생성됩니다. 일반적으로 응용 프로그램에서 데이터베이스는 SQLSESSIONFACTORY에만 해당하므로 일반적으로 SQLSESSIONFACTORY를 싱글 톤 패턴으로 정의하거나 스프링 등을 통해 주입합니다.
sqlsessionfactoryBuilder를 생성하기 위해 sqlsessionfactoryBuilder를 생성하는 방법은 다음과 같습니다.
이러한 방법에 의해 설계된 주요 매개 변수는 입력 스트림, 환경 및 속성이며, 여기서 입력 스트림은 구성 파일에서 얻은 입력 스트림입니다. 환경은 데이터 소스 및 트랜잭션을 포함하여 구성 파일에 구성된 많은 환경 중에서 현재 사용하고있는 환경을 나타냅니다. 기본 환경은 기본적으로 사용됩니다. 속성을 사용하여 MyBatis는 구성 파일에 사용할 수있는 해당 속성 또는 파일을로드합니다.
XML에서 sqlsessionFactory 구축
개인 정적 sqlsessionFactory sqlsessionFactory = null; static {try {inputStream은 = resources.getResourceasStream ( "config/mybatis_config.xml"); sqlsessionFactory = 새로운 SQLSESSIONFACTORYBUILDER (). 빌드 (is); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} public static sqlsessionFactory getSqlSessionFactory () {return sqlsessionFactory; }
다음은 구성 파일의 기본 구조입니다.
mybatis의 구성 파일에는 일반적으로 다음 부분이 포함됩니다.
<환경 기본값 = "개발"> <환경 ID = "개발"> <transactionManager type = "jdbc" /> <dataSource type = "pooled"> <속성 이름 = "driver"value = "$ {jdbc.driver}" /> <속성 이름 = "url"value = "$ {jdbc.url}" /> <Property Name = "username" value = "$ {jdbc.username}"/> <속성 이름 = "password"value = "$ {jdbc.password}"/> </dataSource> </환경> </환경> MyBatis는 여러 환경을 구성 할 수 있으므로 sqlsessionFactory를 만들 때 SQLSESSIONFACTORY를 생성 할 때 특정 환경을 지정할 수 있습니다. 지정하지 않으면 기본 환경이 사용됩니다.
TransactionManager
mybatis에는 두 가지 유형의 트랜잭션 관리자가 있습니다 (즉, type =”[jdbc | managed]”) :
JDBC이 구성은 직접적으로 직접적으로 JDBC의 커밋 및 롤백 설정을 사용합니다. 트랜잭션 범위를 관리하기 위해 데이터 소스에서 얻은 연결에 의존합니다.
관리 구성은 거의 없습니다. 연결을 커밋하거나 롤백하지 않습니다. 또한 컨테이너가 트랜잭션의 전체 수명주기 (예 : Spring 또는 JEE Application Server의 컨텍스트)를 기본적으로 연결을 닫을 수 있습니다. 그러나 일부 컨테이너는 이것을 원하지 않으므로 연결에서 중지 해야하는 경우 CloseConnection 속성을 False로 설정하십시오.
데이터 소스
DataSource 요소는 기본 JDBC 데이터 소스 인터페이스를 사용하여 JDBC 연결 객체에 대한 리소스를 구성합니다.
많은 mybatis 응용 프로그램은 예와 같이 데이터 소스를 구성합니다. 그러나 필요하지 않습니다. 게으른 로딩의 사용을 용이하게하려면 데이터 소스가 필요하다는 것을 알아야합니다.
세 가지 내장 데이터 소스 유형이 있습니다 (즉, type = "???") :
풀리지 않은이 데이터 소스의 구현은 요청할 때마다 연결을 열고 닫는 것입니다. 약간 느리기 때문에 적시에 사용 가능한 연결이 필요하지 않기 때문에 간단한 응용 프로그램에 적합한 선택입니다. 다른 데이터베이스도 이에 대해 다르게 수행하므로 일부 데이터베이스의 경우 데이터 소스를 구성하는 것이 중요하지 않으며이 구성도 유휴 상태입니다. 설비되지 않은 유형 데이터 소스는 다음 5 가지 속성을 구성하는 데만 사용됩니다.
옵션으로 데이터베이스 드라이버 속성을 전달할 수 있습니다. 이를 위해 속성의 접두사는 "드라이버"로 시작합니다. 예를 들어:
드라이버 encoding = utf8
이렇게하면 "UTF8"값이 전달되어 속성 "인코딩"을 전달하며 DriverManager.getConnection (URL, DriverProperties) 메소드를 통해 데이터베이스 드라이버로 전달됩니다.
풀링 된 JDBC 연결 개체 용 데이터 소스 연결 풀의 구현으로, 새 연결 인스턴스를 생성 할 때 필요한 초기 연결 및 인증 시간을 피하는 데 사용됩니다. 이것은 웹 애플리케이션에서 현재 요청에 신속하게 응답하기 위해 사용되는 인기있는 방법입니다.
위의 (풀지 않은) 속성 외에도 풀링 된 데이터 소스를 구성하는 데 사용할 수있는 많은 속성이 있습니다.
그중 JNDI 데이터 소스 구성은 두 가지 속성 만 필요합니다.
(1) Initial_Context 속성은 초기 컨텍스트 (즉, InitialContext.Lookup (Initial-Context)에서 환경을 찾는 데 사용됩니다. 이것은 선택적 특성입니다. 무시하면 Data_Source 속성은 EarlicContext를 배경으로 직접 검색합니다.
(2) data_source 데이터 소스 인스턴스 위치의 컨텍스트를 참조하는 경로입니다. Initial_Context 쿼리에 의해 반환 된 환경을 배경으로 찾을 것입니다. 초기 _context가 결과를 반환하지 않으면 초기 컨텍스트를 환경으로 직접 찾습니다.
그런 다음 매퍼가 있습니다. Mapper는 SQL 문을 매핑하는 데 사용됩니다. 먼저, Mybatis 에게이 SQL 문, 즉 리소스 위치를 지정하기 위해 어디에서 찾을 수 있는지 알려야합니다.
<Mappers> <Mapper Resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers>
다음은 테스트 과정에서 수행 한 간단한 구성 파일입니다.
<? xml version = "1.0"encoding = "utf-8"?> <! doctype configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <conferties> <conferties resource = "config/jdbc.properties"> </properties> <failiases> <faiLias alias = "blog"= "com.tiantian.mybatis.model.blog"/> </infultealiases> <Environments = "Development"> <환경 ID = "개발"> <TransActionManager type = "jdbc"/>>>>>>>>>>>>/>>/>/>/>>/>. 이름 = "driver"value = "$ {jdbc.driver}" /> <property name = "url"value = "$ {jdbc.url}" /> <property name = "username"value = "$ {jdbc.username}" /> <property name = "password"value = "$ {jdbc.password}" />. <Mappers> <Mapper Resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers> </configuration>
외부 속성 파일은 위 구성 파일로 가져옵니다. myBatis 구성 파일의 속성 소개는 속성 요소에 직접 포함 될 수 있거나 특성 요소를 사용하여 외부에서 소개 될 수 있거나 SQLSESSSIONACTORY를 생성 할 때 매개 변수 속성으로 전달 될 수 있습니다. MyBatis 구성 파일의 속성은 많은 장소에서 소개 될 수 있으므로 우선 순위 문제가 필요하며 MyBatis는 다음과 같은 순서로이를 찾습니다.
먼저, 구성 파일에서 속성 요소 본문의 속성을 읽은 다음 외부에서 소개 된 속성 파일의 속성을 읽고 이전에 읽은 동일한 속성을 덮어 씁니다. 마지막으로, sqlsessionfactory를 작성할 때 통과 된 속성의 속성을 읽고 이전에 동일한 속성을 덮어 쓸 것입니다.
sqlsessionFactory가 있으면 특정 SQLSESSION이됩니다. mybatis를 사용하는 과정에서 모든 작업은 SQLSession과 분리 할 수 없으므로 SQLSESSION을 얻는 것이 매우 중요합니다. 또한 SQLSESSION을 공유하고 스레드 보험에 해당 할 수 없으므로 SQLSESSION이 필요할 때마다 열린 다음 사용 후 닫아야합니다.
sqlsession session = sqlsessionfactory.opensession ();
sqlsessionfactory Zhonghu District sqlsession의 방법은 다음과 같습니다.
그들의 주요 차이점은 다음과 같습니다.
기본 오권 메소드에는 매개 변수가 없으므로 다음 특성으로 SQLSESSION이 생성됩니다.
ExecutOple에는 세 가지 값이 있습니다.
MyBatis의 기본 작업은 추가, 삭제, 수정 및 확인, 즉 삽입, 삭제, 업데이트 및 선택입니다. 이러한 기본 작업을 수행 할 때 SQLSESSION을 직접 사용하여 Mapper 구성 파일의 매핑에 액세스하거나 Mapper 구성 파일에 해당하는 Mapper 인터페이스를 사용하여 Mapper 인터페이스에 정의 된 메소드의 매개 변수 및 반환 값이 Mapper 구성 파일에 정의 된 매개 변수 및 반환 값과 동일해야한다고 가정 할 수 있습니다. 또한 Mapper 인터페이스를 사용할 때 해당 SQL 문을 Mapper 구성 파일로 작성하거나 해당 주석을 사용하여 Mapper 인터페이스의 해당 메소드에 직접 표시 될 수 있습니다. 이것은 다음 예제 코드에서 볼 수 있습니다.
다음은 일련의 예제 코드입니다.
먼저 sqlsessionfactory를 얻기위한 도구 클래스를 게시합니다.
import java.io.ioexception; import java.io.inputstream; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; 공개 클래스 util {private static sqlsessionfactory sqlsessionfactory = null; static {try {inputStream은 = resources.getResourceasStream ( "config/mybatis_config.xml"); sqlsessionFactory = 새로운 SQLSESSIONFACTORYBUILDER (). 빌드 (is); } catch (ioexception e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); }} public static sqlsessionFactory getSqlSessionFactory () {return sqlsessionFactory; }}
mybatis 구성 파일 :
<? xml version = "1.0"encoding = "utf-8"?> <! doctype configuration public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <conferties> <conferties resource = "config/jdbc.properties"> </properties> <failiases> <faiLias alias = "blog"= "com.tiantian.mybatis.model.blog"/> </infultealiases> <Environments = "Development"> <환경 ID = "개발"> <TransActionManager type = "jdbc"/>>>>>>>>>>>>/>>/>/>/>>/>. 이름 = "driver"value = "$ {jdbc.driver}" /> <property name = "url"value = "$ {jdbc.url}" /> <property name = "username"value = "$ {jdbc.username}" /> <property name = "password"value = "$ {jdbc.password}" />. <Mappers> <Mapper Resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers> </configuration>
blogmapper.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 nampermapper"> <!-레코드 추가-> <insert id = "insertBlog"ParameterType = "blog"> t_blog (title, content, owner) 값 (#{title},#{content},#{소유자})에 삽입합니다 (#{title},#{content},#{소유자}) <! #{id} </select> <!-레코드 수정-> <Update id = "updateBlog"parameterType = "blog"> update t_blog set title = #{title}, and untiver = #{content}, 소유자 = #{소유자} 여기서 id = #{id} </update> <!-Query 모든 레코드 및 query query the query query the query query multucke는 컬렉션입니다. resulttype는 컬렉션 유형이 아니지만 컬렉션에 포함 된 유형-> <select id = "selectall"resulttype = "blog"> select * from t_blog </select> <!-fuzzy query-> <fuzzyquery "resultType ="blog "parametertype ="java.lang.string "}} {to gike"#" </select> <!-레코드 삭제-> <delete id = "deleteBlog"parametertype = "int"> id = #{id} </delete> </mapper>에서 t_blog에서 삭제SQL 매핑 문에 언급되어야하는 일부 문제 :
blog.java
package com.tiantian.mybatis.model; 공개 수업 블로그 {private int id; 개인 문자열 제목; 개인 문자열 내용; 개인 문자열 소유자; public int getid () {return id; } public void setid (int id) {this.id = id; } public string getTitle () {return title; } public void settitle (문자열 제목) {this.title = title; } public String getContent () {return 컨텐츠; } public void setContent (문자열 내용) {this.content = content; } public string getowner () {return anward; } public void setowner (문자열 소유자) {this.owner = 소유자; } @override public String toString () {return "id :" + id + ", 제목 :" + title + ", 내용 :" + content + ", 소유자 :" + 소유자; }}
Blogmapper.java
package com.tiantian.mybatis.model; Java.util.list 가져 오기; import org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; import org.apache.ibatis.annotations.select; import org.apache.ibatis.annotations.update; / *** 다음 작업 1은 구성 파일에 SQL을 작성하지만 작업 2는 맵퍼의 전체 이름이 BlogMapper.xml 파일의 네임 스페이스와 동일하기 때문에 주석으로 실행되는 SQL 문을 직접 표시합니다. SelectBlog (int id); @select ( "select * from t_blog where id = #{id}") 공개 블로그 selectBlog2 (int id); Public Void InsertBlog (블로그 블로그); @Insert ( "t_blog (title, content, onder) 값 (#{title},#{content},#{소유자})에 삽입합니다. public void insertBlog2 (블로그 블로그); Public Void UpdateBlog (블로그 블로그); @update ( "T_BLOG SET TITLE =#{title}, content =#{content}, onder =#{소유자} 여기서 id =#{id}") public void updateBlog2 (블로그 블로그); 공개 void deleteblog (int id); @delete ( "id = #{id}") public void deleteblog2 (int id); 공개 목록 <blog> selectall (); @select ( "select * from t_blog") public list <blog> selectall2 (); 공개 목록 <blog> fuzzyquery (문자열 제목); @select ( "select * from t_blog where where/"%/"#{title}/"%/"") 공개 목록 <blog> fuzzyquery2 (문자열 제목); }
테스트 1. 자바
패키지 com.tiantian.mybatis.test; Java.util.list 가져 오기; import org.apache.ibatis.session.sqlsession; import org.junit.test; import com.tiantian.mybatis.model.blog; import com.tiantian.mybatis.util.util; / ***이 일련의 작업은 구성 파일에 SQL을 작성한 다음 Operation* @Author Andy*/ public class test1 {/ *** lecord*/ @test public void testinsertBlog () {sqlsession session = util.getsqlsessionfactory (). 블로그 블로그 = 새로운 블로그 (); blog.settitle ( "중국어"); Blog.SetContent ( "5 천 년 동안 바람과 비에 얼마나 많은 꿈이 숨겨져 있었는지"); Blog.Setowner ( "Daily"); session.insert ( "com.tiantian.mybatis.model.blogmapper.insertblog", 블로그); 세션 .commit (); session.close (); } / *** 단일 레코드 쿼리* / @test public void testselectone () {sqlsession session = util.getsqlsessionfactory (). opensession (); 블로그 블로그 = (블로그) 세션 .selectone ( "com.tiantian.mybatis.model.blogmapper.selectBlog", 8); System.out.println (블로그); session.close (); } / *** 레코드 수정* / @test public void testupdateBlog () {sqlsession session = util.getSqlSessionFactory (). OpenSession (); 블로그 블로그 = 새로운 블로그 (); blog.setid (7); // 블로그를 수정 해야하는 블로그의 ID ( "Chinese 2"); // 제목 블로그를 수정합니다. 블로그); 세션 .commit (); session.close (); } / *** 모든 레코드 쿼리* / @test public void testselectall () {sqlsession session = util.getSqlsessionFactory (). openSession (); 목록 <blog> blogs = session.selectList ( "com.tiantian.mybatis.model.blogmapper.selectall"); for (블로그 블로그 : 블로그) system.out.println (블로그); session.close (); } / *** 퍼지 쿼리* / @test public void testfuzzyquery () {sqlsession session = util.getSqlSessionFactory (). openSession (); 문자열 제목 = "중국"; 목록 <blog> blogs = session.selectList ( "com.tiantian.mybatis.model.blogmapper.fuzzyQuery", Title); for (블로그 블로그 : 블로그) system.out.println (블로그); session.close (); } / *** 레코드 삭제* / @test public void testdeleteblog () {sqlsession session = util.getSqlSessionFactory (). openSession (); session.delete ( "com.tiantian.mybatis.model.blogmapper.deleteblog", 8); 세션 .commit (); session.close (); }}
test2.java
패키지 com.tiantian.mybatis.test; Java.util.list 가져 오기; import org.apache.ibatis.session.sqlsession; import org.junit.test; import com.tiantian.mybatis.model.blog; import com.tiantian.mybatis.model.blogmapper; import com.tiantian.mybatis.util.util; / ***이 일련의 작업은 구성 파일에 SQL 문을 작성한 다음 해당 Mapper 인터페이스* @Author Andy*/ public class test2 {/ *** lecord*/ @test public void testinsertBlog () {sqlsession session = util.getSqlsessionFactory ()를 통해 작동하는 것입니다. 블로그 블로그 = 새로운 블로그 (); blog.settitle ( "중국어"); Blog.SetContent ( "5 천 년 동안 바람과 비에 얼마나 많은 꿈이 숨겨져 있었는지"); Blog.Setowner ( "Daily"); Blogmapper Blogmapper = session.getMapper (blogmapper.class); blogmapper.insertblog (블로그); 세션 .commit (); session.close (); } / *** 단일 레코드 쿼리* / @test public void testselectone () {sqlsession session = util.getsqlsessionfactory (). opensession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 블로그 블로그 = blogmapper.selectBlog (7); System.out.println (블로그); session.close (); } / *** 레코드 수정* / @test public void testupdateBlog () {sqlsession session = util.getSqlSessionFactory (). OpenSession (); 블로그 블로그 = 새로운 블로그 (); blog.setid (9); // 블로그를 수정 해야하는 블로그의 ID ( "Chinese 2"); // 제목 블로그를 수정합니다. blogmapper.updateBlog (블로그); 세션 .commit (); session.close (); } / *** 모든 레코드 쿼리* / @test public void testselectall () {sqlsession session = util.getSqlsessionFactory (). openSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 목록 <blog> blogs = blogmapper.selectall (); for (블로그 블로그 : 블로그) system.out.println (블로그); session.close (); } / *** 퍼지 쿼리* / @test public void testfuzzyquery () {sqlsession session = util.getSqlSessionFactory (). openSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 문자열 제목 = "중국"; List <blog> blogs = blogmapper.fuzzyQuery (제목); for (블로그 블로그 : 블로그) system.out.println (블로그); session.close (); } / *** 레코드 삭제* / @test public void testdeleteblog () {sqlsession session = util.getSqlSessionFactory (). openSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); blogmapper.deleteblog (10); 세션 .commit (); session.close (); }}
test3.java
패키지 com.tiantian.mybatis.test; Java.util.list 가져 오기; import org.apache.ibatis.session.sqlsession; import org.junit.test; import com.tiantian.mybatis.model.blog; import com.tiantian.mybatis.model.blogmapper; import com.tiantian.mybatis.util.util; / ** *이 일련의 작업은 Mapper 인터페이스 *를 사용하여 수행되지만 해당 SQL 문은 해당 * 주석 * @Author Andy * */ public class test3 {/ ** * 새 레코드 */ @test public void testinsert () {sqlsession session = util.getsqlsession (). Blogmapper Blogmapper = session.getMapper (blogmapper.class); 블로그 블로그 = 새로운 블로그 (); Blog.SetTitle ( "Title2"); blog.setContent ( "content2"); Blog.Setowner ( "onder2"); blogmapper.insertblog2 (블로그); 세션 .commit (); session.close (); } / *** 단일 레코드 찾기* / @test public void testselectone () {sqlsession session = util.getSqlsessionFactory (). openSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 블로그 블로그 = blogmapper.selectBlog2 (1); System.out.println (블로그); session.close (); } / *** 여러 레코드를 찾아서 결과를 수집으로 반환* / @test public void testelectall () {sqlsession session = util.getSqlSessionFactory (). openSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 목록 <blog> blogs = blogmapper.selectall2 (); for (블로그 블로그 : 블로그) system.out.println (블로그); session.close (); } / *** 레코드 수정* / @test public void testupdate () {sqlsession session = util.getsqlsessionfactory (). opensession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 블로그 블로그 = 새로운 블로그 (); blog.setid (3); blog.settitle ( "title3"); blog.setContent ( "content3"); Blog.Setowner ( "onder3"); blogmapper.updateBlog2 (블로그); 세션 .commit (); session.close (); } / *** 레코드 삭제* / @test public void testdelete () {sqlsession session = util.getSqlsessionFactory (). OpenSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); blogmapper.deleteblog2 (5); 세션 .commit (); session.close (); } @test public void testfuzzyquery () {sqlsession session = util.getSqlSessionFactory (). OpenSession (); Blogmapper Blogmapper = session.getMapper (blogmapper.class); 목록 <blog> blogs = blogmapper.fuzzyquery2 ( "China"); for (블로그 블로그 : 블로그) system.out.println (블로그); session.close (); }}해당 테이블 작성 문 :
테이블 생성`t_blog` (`id` int (11) NOT NULL AUTO_INCREMENT,`TITILE 'VARCHAR (255) 기본 NULL,'Content 'VarChar (255) 기본 NULL,'소유자 'VARCHAR (50) 기본 NULL, 기본 키 ('ID`)