역사상 가장 간단한 MyBatis 동적 SQL 시작 예제 코드
DROP DATABASE IF EXISTS `books`;
CREATE DATABASE `books`;
USE books;
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(128) DEFAULT NULL,
`author` varchar(64) DEFAULT NULL,
`press` varchar(64) DEFAULT NULL,
`douban` FLOAT DEFAULT NULL,
`isbn` varchar(13) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `book` (`name`,`author`,`press`,`douban`,`isbn`) VALUES('Java 4 ','( )Bruce Eckel ',' ',9.1,'9787111213826');
INSERT INTO `book` (`name`,`author`,`press`,`douban`,`isbn`) VALUES(' Java JVM ',' ',' ',8.8,'9787111421900');
INSERT INTO `book` (`name`,`author`,`press`,`douban`,`isbn`) VALUES(' Java 3 ',' ',' ',7.8,'9787121236693');
INSERT INTO `book` (`name`,`author`,`press`,`douban`,`isbn`) VALUES(' Java 7 ',' ',' ',6.9,'9787111380399');
사용자는 책 제목, 출판사, 두판 평점, ISBN의 1~4개 필드로 조회할 수 있으며, 고정된 sql 문장을 사용한다면 C(4,1)+C(4,2)+C(4,3)+C(4,4)=4+6+4+1=15개의 sql와 15개의 Dao 방법을 써야 한다동적 sql을 사용하면 한 문장으로 완성할 수 있습니다. 예를 들어 다음과 같습니다.
<select id="multipSearch" parameterType="map" resultType="net.sonng.entity.Book">
SELECT * FROM book
<where>
<if test="name!=null">
name LIKE #{name}
</if>
<if test="press!=null">
AND press LIKE #{press}
</if>
<if test="douban!=null">
AND douban>=#{douban}
</if>
<if test="isbn!=null">
AND isbn=#{isbn}
</if>
</where>
</select>
동적 ql, 사용자가 필드에 대한 선택과 입력에 따라 동적 ql 실행오프라인 도서, 약.
BookDao, 약간
Controller 전략
서비스는 다음과 같습니다.
package net.sonng.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import net.sonng.dao.BookDao;
import net.sonng.entity.Book;
import org.springframework.stereotype.Service;
@Service
public class TestService {
@Resource
private BookDao bookDao;
public List<Book> multipSearch(String name,String press,String douban,String isbn){
Map<String,String> map=new HashMap();
if (name!=null && !name.equals("")) {
map.put("name", "%"+name+"%");
}
if (press!=null && !press.equals("")) {
map.put("press","%"+press+"%");
}
if (douban!=null && !douban.equals("")){
map.put("douban", douban);
}
if (isbn!=null && !isbn.equals("")) {
map.put("isbn", isbn);
}
return bookDao.multipSearch(map);
}
}
테스트 클래스는 다음과 같습니다.
package net.sonng.test;
import java.util.List;
import net.sonng.controller.TestController;
import net.sonng.entity.Book;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args){
ApplicationContext ac=new ClassPathXmlApplicationContext("ac.xml");
TestController tc=ac.getBean("testController",TestController.class);// 4 , SQL
//List<Book> books=tc.multipSearch("Java", "", "", ""); // 4
//List<Book> books=tc.multipSearch("Java", " ", "", ""); //3
//List<Book> books=tc.multipSearch("Java", " ", "8", ""); //2
List<Book> books=tc.multipSearch("Java" ," ", "8", "9787111213826");//1
for (Book book:books){
System.out.println(book.getId());
System.out.println(book.getName());
System.out.println(book.getIsbn());
System.out.println(book.getAuthor());
System.out.println(book.getPress());
System.out.println(book.getDouban());
System.out.println("----------------------------------");
}
}
}
위에서 말한 것은 여러분에게 소개된 역사상 가장 간단한 MyBatis 동적 SQL 입문 예시 코드입니다. 여러분에게 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mybatis가 키 id를 삽입하는 방법을 되돌려줍니다.mapper의 xml 파일에useGeneratedKeys 구성 KeyProperty를 사용하여 Id로 돌아가면 됩니다. PS: Mybatis의 insert에서 키 ID를 반환하는 방법 1、XyzMapper.xml 또...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.