¸üÐÂʱ¼ä:2021Äê03ÔÂ22ÈÕ16ʱ39·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

ÔÚʵ¼Ê¿ª·¢ÖУ¬²éѯ²Ù×÷ͨ³£¶¼»áÉæ¼°µ½µ¥ÌõÊý¾ÝµÄ¾«È·²éѯ£¬ÒÔ¼°¶àÌõÊý¾ÝµÄÄ£ºý²éѯ¡£ÄÇôʹÓÃMyBatis¿ò¼ÜÊÇÈçºÎ½øÐÐÕâÁ½ÖÖ²éѯµÄÄØ£¿½ÓÏÂÀ´£¬±¾Ð¡½Ú½«½²½âÏÂÈçºÎʹÓÃMyBatis¿ò¼Ü¸ù¾Ý¿Í»§±àºÅ²éѯ¿Í»§ÐÅÏ¢£¬ÒÔ¼°¸ù¾Ý¿Í»§ÃûÄ£ºý²éѯ¿Í»§ÐÅÏ¢¡£
1£®¸ù¾Ý¿Í»§±àºÅ²éѯ¿Í»§ÐÅÏ¢
¸ù¾Ý¿Í»§±àºÅ²éѯ¿Í»§ÐÅÏ¢Ö÷ÒªÊÇͨ¹ý²éѯ¿Í»§±íÖеÄÖ÷¼ü£¨ÕâÀï±íʾΨһµÄ¿Í»§±àºÅ£©À´ÊµÏֵ쬯ä¾ßÌåʵÏÖ²½ÖèÈçÏ£º
£¨1£©ÔÚMySQLÊý¾Ý¿âÖУ¬´´½¨Ò»¸öÃûΪmybatisµÄÊý¾Ý¿â£¬ÔÚ´ËÊý¾Ý¿âÖд´½¨Ò»¸öt_customer±í£¬Í¬Ê±Ô¤ÏȲåÈ뼸ÌõÊý¾Ý¡£´Ë²Ù×÷ËùÖ´ÐеÄSQLÓï¾äÈçÏÂËùʾ¡£
# ´´½¨Ò»¸öÃû³ÆÎªmybatisµÄÊý¾Ý¿â
CREATE DATABASE mybatis;
# ʹÓÃmybatisÊý¾Ý¿â
USE mybatis;
# ´´½¨Ò»¸öÃû³ÆÎªt_customerµÄ±í
CREATE TABLE t_customer (
id int(32) PRIMARY KEY AUTO_INCREMENT,
username varchar(50),
jobs varchar(50),
phone varchar(16)
);
# ²åÈë3ÌõÊý¾Ý
INSERT INTO t_customer VALUES ('1', 'joy', 'doctor', '13745874578');
INSERT INTO t_customer VALUES ('2', 'jack', 'teacher', '13521210112');
INSERT INTO t_customer VALUES ('3', 'tom', 'worker', '15179405961');
Íê³ÉÉÏÊö²Ù×÷ºó£¬Êý¾Ý¿ât_customer±íÖеÄÊý¾ÝÈçͼ1Ëùʾ¡£

ͼ1 t_customer±í
£¨2£©ÔÚEclipseÖУ¬´´½¨Ò»¸öÃûΪchapter06µÄWebÏîÄ¿£¬½«MyBatisµÄºËÐÄJAR°ü¡¢libĿ¼ÖеÄÒÀÀµJAR°ü£¬ÒÔ¼°MySQLÊý¾Ý¿âµÄÇý¶¯JAR°üһͬÌí¼Óµ½ÏîÄ¿µÄlibĿ¼ÏÂ, ²¢·¢²¼µ½Àà·¾¶ÖС£Ìí¼ÓºóµÄlibĿ¼Èçͼ2Ëùʾ¡£

ͼ2 MyBatisÏà¹ØJAR
£¨3£©ÓÉÓÚMyBatisĬÈÏʹÓÃlog4jÊä³öÈÕÖ¾ÐÅÏ¢£¬ËùÒÔÈç¹ûÒª²é¿´¿ØÖÆÌ¨µÄÊä³öSQLÓï¾ä£¬ÄÇô¾ÍÐèÒªÔÚclasspath·¾¶ÏÂÅäÖÃÆäÈÕÖ¾Îļþ¡£ÔÚÏîÄ¿µÄsrcĿ¼Ï´´½¨log4j.propertiesÎļþ£¬±à¼ºóµÄÄÚÈÝÈçÎļþ1Ëùʾ¡£
Îļþ1 log4j.properties
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.com.itheima=DEBUG # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
ÔÚÎļþ1ÖУ¬°üº¬ÁËÈ«¾ÖµÄÈÕÖ¾ÅäÖá¢MyBatisµÄÈÕÖ¾ÅäÖúͿØÖÆÌ¨Êä³ö£¬ÆäÖÐMyBatisµÄÈÕÖ¾ÅäÖÃÓÃÓÚ½«com.itheima°üÏÂËùÓÐÀàµÄÈÕÖ¾¼Ç¼¼¶±ðÉèÖÃΪDEBUG¡£
ÓÉÓÚlog4jÎļþÖеľßÌåÄÚÈÝÒѾ³¬³öÁ˱¾Ê鷶Χ£¬ËùÒÔÕâÀï²»¹ý¶à½²½â£¬¶ÁÕß¿É×ÔÐвéÕÒ×ÊÁÏѧϰ¡£ÉÏÊöÅäÖÃÎļþ´úÂëÒ²²»ÐèÒª¶ÁÕßÈ«²¿ÊÖд£¬ÔÚMyBatisʹÓÃÊÖ²áÖеÄLoggingС½Ú£¬¿ÉÒÔÕÒµ½Èçͼ3ËùʾµÄÅäÖÃÐÅÏ¢£¬Ö»Ð轫Æä¸´ÖƵ½ÏîÄ¿µÄlog4jÅäÖÃÎļþÖУ¬²¢¶ÔMyBatisµÄÈÕÖ¾ÅäÖÃÐÅÏ¢½øÐмòµ¥Ð޸ļ´¿ÉʹÓá£

ͼ3 MyBatisʹÓÃÊÖ²áÖеÄLoggingÅäÖÃ
£¨4£©ÔÚsrcĿ¼Ï£¬´´½¨Ò»¸öcom.itheima.po°ü£¬ÔڸðüÏ´´½¨³Ö¾Ã»¯ÀàCustomer£¬²¢ÔÚÀàÖÐÉùÃ÷id¡¢username¡¢jobsºÍphoneÊôÐÔ£¬¼°Æä¶ÔÓ¦µÄgetter/setter·½·¨£¬ÈçÎļþ2Ëùʾ¡£
Îļþ2 Customer.java
package com.itheima.po;
/**
* ¿Í»§³Ö¾Ã»¯Àà
*/
public class Customer {
private Integer id; // Ö÷¼üid
private String username; // ¿Í»§Ãû³Æ
private String jobs; // Ö°Òµ
private String phone; // µç»°
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getJobs() {
return jobs;
}
public void setJobs(String jobs) {
this.jobs = jobs;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Customer [id=" + id + ", username=" + username +
", jobs=" + jobs + ", phone=" + phone + "]";
}
}
´ÓÉÏÊö´úÂë¿ÉÒÔ¿´³ö£¬³Ö¾Ã»¯ÀàCustomerÓëÆÕͨµÄJavaBean²¢Ã»ÓÐÊ²Ã´Çø±ð£¬Ö»ÊÇÆäÊôÐÔ×Ö¶ÎÓëÊý¾Ý¿âÖеıí×Ö¶ÎÏà¶ÔÓ¦¡£Êµ¼ÊÉÏ£¬Customer¾ÍÊÇÒ»¸öPOJO£¨ÆÕͨJava¶ÔÏ󣩣¬MyBatis¾ÍÊDzÉÓÃPOJO×÷Ϊ³Ö¾Ã»¯ÀàÀ´Íê³É¶ÔÊý¾Ý¿â²Ù×÷µÄ¡£
£¨5£©ÔÚsrcĿ¼Ï£¬´´½¨Ò»¸öcom.itheima.mapper°ü£¬²¢ÔÚ°üÖд´½¨Ó³ÉäÎļþCustomerMapper.xml£¬±à¼ºóÈçÎļþ3Ëùʾ¡£
Îļþ3 CustomerMapper.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">
<!-- namespace±íʾÃüÃû¿Õ¼ä -->
<mapper namespace="com.itheima.mapper.CustomerMapper">
<!--¸ù¾Ý¿Í»§±àºÅ»ñÈ¡¿Í»§ÐÅÏ¢ -->
<select id="findCustomerById" parameterType="Integer"
resultType="com.itheima.po.Customer">
select * from t_customer where id = #{id}
</select>
</mapper>
ÔÚÎļþ3ÖУ¬µÚ2~3ÐÐÊÇMyBatisµÄÔ¼ÊøÅäÖ㬵Ú5~11ÐÐÊÇÐèÒª³ÌÐòÔ±±àдµÄÓ³ÉäÐÅÏ¢¡£ÆäÖУ¬<mapper>ÔªËØÊÇÅäÖÃÎļþµÄ¸ùÔªËØ£¬Ëü°üº¬Ò»¸önamespaceÊôÐÔ£¬¸ÃÊôÐÔΪÕâ¸ö<mapper>Ö¸¶¨ÁËΨһµÄÃüÃû¿Õ¼ä£¬Í¨³£»áÉèÖóɓ°üÃû+SQLÓ³ÉäÎļþÃû”µÄÐÎʽ¡£×ÓÔªËØ<select>ÖеÄÐÅÏ¢ÊÇÓÃÓÚÖ´Ðвéѯ²Ù×÷µÄÅäÖã¬ÆäidÊôÐÔÊÇ<select>ÔªËØÔÚÓ³ÉäÎļþÖеÄΨһ±êʶ£»parameterTypeÊôÐÔÓÃÓÚÖ¸¶¨´«Èë²ÎÊýµÄÀàÐÍ£¬ÕâÀï±íʾ´«µÝ¸øÖ´ÐÐSQLµÄÊÇÒ»¸öIntegerÀàÐ͵IJÎÊý£»resultTypeÊôÐÔÓÃÓÚÖ¸¶¨·µ»Ø½á¹ûµÄÀàÐÍ£¬ÕâÀï±íʾ·µ»ØµÄÊý¾ÝÊÇCustomerÀàÐÍ¡£ÔÚ¶¨ÒåµÄ²éѯSQLÓï¾äÖУ¬“#{}”ÓÃÀ´±íʾһ¸öռλ·û£¬Ï൱ÓÚ“?”£¬¶ø“#{id}”±íʾ¸Ãռλ·û´ý½ÓÊÕ²ÎÊýµÄÃû³ÆÎªid¡£
¶àѧһÕУº ¿ìËÙ»ñÈ¡ÅäÖÃÎļþµÄÔ¼ÊøÐÅÏ¢
ÔÚMyBatisµÄÓ³ÉäÎļþÖУ¬°üº¬ÁËÒ»Ð©Ô¼ÊøÐÅÏ¢£¬³õѧÕßÈç¹û×Ô¼º¶¯ÊÖÈ¥±àд£¬²»µ«ÀË·Ñʱ¼ä£¬»¹ÈÝÒ׳ö´í¡£Æäʵ£¬ÔÚMyBatisʹÓÃÊÖ²áÖУ¬¾Í¿ÉÒÔÕÒµ½ÕâÐ©Ô¼ÊøÐÅÏ¢£¬¾ßÌåµÄ»ñÈ¡·½·¨ÈçÏ£º
´ò¿ªMyBatisµÄʹÓÃÊÖ²ámybatis-3.4.2.pdf£¬ÔÚµÚ2С½ÚGetting started£¨ÈëÃÅÖ¸ÄÏ£©ÏµÄ2.1.5С½ÚExploring Mapped SQL StatementsÖУ¬¼´¿ÉÕÒµ½Ó³ÉäÎļþµÄÔ¼ÊøÐÅÏ¢¡£Èçͼ4Ëùʾ¡£

ͼ4 Ó³ÉäÎļþµÄÔ¼ÊøÐÅÏ¢
ÔÚͼ4ÖУ¬·½¿ò´¦±ê×¢µÄÎļþÐÅÏ¢¾ÍÊÇMyBatisÓ³ÉäÎļþµÄÔ¼ÊøÐÅÏ¢¡£³õѧÕßÖ»Ð轫ÐÅÏ¢¸´ÖƵ½ÏîÄ¿´´½¨µÄXMLÎļþÖм´¿É¡£
£¨6£©ÔÚsrcĿ¼Ï£¬´´½¨MyBatisµÄºËÐÄÅäÖÃÎļþmybatis-config.xml£¬±à¼ºóÈçÎļþ4Ëùʾ¡£
Îļþ4 mybatis-config.xml
<?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">
<configuration>
<!--1.ÅäÖû·¾³ £¬Ä¬ÈϵĻ·¾³idΪmysql-->
<environments default="mysql">
<!--1.2.ÅäÖÃidΪmysqlµÄÊý¾Ý¿â»·¾³ -->
<environment id="mysql">
<!-- ʹÓÃJDBCµÄÊÂÎñ¹ÜÀí -->
<transactionManager type="JDBC" />
<!--Êý¾Ý¿âÁ¬½Ó³Ø -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<!--2.ÅäÖÃMapperµÄλÖà -->
<mappers>
<mapper resource="com/itheima/mapper/CustomerMapper.xml" />
</mappers>
</configuration>
ÔÚÎļþ4ÖУ¬µÚ2~3ÐÐÊÇMyBatisµÄÅäÖÃÎļþµÄÔ¼ÊøÐÅÏ¢£¬ÏÂÃæ<configuration>ÔªËØÖеÄÄÚÈݾÍÊÇ¿ª·¢ÈËÔ±ÐèÒª±àдµÄÅäÖÃÐÅÏ¢¡£ÕâÀï°´ÕÕ<configuration>×ÓÔªËØµÄ¹¦Äܲ»Í¬£¬½«ÅäÖ÷ÖΪÁËÁ½¸ö²½Ö裺µÚ1²½ÅäÖÃÁË»·¾³£¬µÚ2²½ÅäÖÃÁËMapperµÄλÖ᣹ØÓÚÉÏÊö´úÂëÖи÷¸öÔªËØµÄÏêϸÅäÖÃÐÅÏ¢½«ÔÚÏÂÒ»Õ½øÐÐÏêϸ½²½â£¬´Ë°¸ÀýÖжÁÕßÖ»ÐèÒª°´ÕÕÉÏÊö´úÂëÅäÖü´¿É¡£
СÌáʾ£º
ÉÏÊöÅäÖÃÎļþͬÑù²»ÐèÒª¶ÁÕßÍêÈ«ÊÖ¶¯±àд¡£ÔÚMyBatisʹÓÃÊÖ²ámybatis-3.4.2.pdfµÄ2.1.2С½ÚÖУ¬ÒѾ¸ø³öÁËÅäÖÃÄ£°å£¨°üº¬Ô¼ÊøÐÅÏ¢£©£¬¶ÁÕßÖ»ÐèÒª¸´ÖƹýÀ´£¬ÒÀÕÕ×Ô¼ºµÄÏîÄ¿ÐèÇóÐ޸ļ´¿É¡£
£¨7£©ÔÚsrcĿ¼Ï£¬´´½¨Ò»¸öcom.itheima.test°ü£¬ÔڸðüÏ´´½¨²âÊÔÀàMybatisTest£¬²¢ÔÚÀàÖбàд²âÊÔ·½·¨findCustomerByIdTest()£¬ÈçÎļþ5Ëùʾ¡£
Îļþ5 MybatisTest.java
package com.itheima.test;
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;
import org.junit.Test;
import com.itheima.po.Customer;
/**
* ÈëÃųÌÐò²âÊÔÀà
*/
public class MybatisTest {
/**
* ¸ù¾Ý¿Í»§±àºÅ²éѯ¿Í»§ÐÅÏ¢
*/
@Test
public void findCustomerByIdTest() throws Exception {
// 1¡¢¶ÁÈ¡ÅäÖÃÎļþ
String resource = "mybatis-config.xml";
InputStream inputStream =
Resources.getResourceAsStream(resource);
// 2¡¢¸ù¾ÝÅäÖÃÎļþ¹¹½¨SqlSessionFactory
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
// 3¡¢Í¨¹ýSqlSessionFactory´´½¨SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4¡¢SqlSessionÖ´ÐÐÓ³ÉäÎļþÖж¨ÒåµÄSQL£¬²¢·µ»ØÓ³Éä½á¹û
Customer customer = sqlSession.selectOne("com.itheima.mapper"
+ ".CustomerMapper.findCustomerById", 1);
// ´òÓ¡Êä³ö½á¹û
System.out.println(customer.toString());
// 5¡¢¹Ø±ÕSqlSession
sqlSession.close();
}
}
ÔÚÎļþ5µÄfindCustomerByIdTest()·½·¨ÖУ¬Ê×ÏÈͨ¹ýÊäÈëÁ÷¶ÁÈ¡ÁËÅäÖÃÎļþ£¬È»ºó¸ù¾ÝÅäÖÃÎļþ¹¹½¨ÁËSqlSessionFactory¶ÔÏó¡£½ÓÏÂÀ´Í¨¹ýSqlSessionFactory¶ÔÏóÓÖ´´½¨ÁËSqlSession¶ÔÏ󣬲¢Í¨¹ýSqlSession¶ÔÏóµÄselectOne()·½·¨Ö´Ðвéѯ²Ù×÷¡£selectOne()·½·¨µÄµÚ1¸ö²ÎÊý±íʾӳÉäSQLµÄ±êʶ×Ö·û´®£¬ËüÓÉCustomerMapper.xmlÖÐ<mapper>ÔªËØµÄnamespaceÊôÐÔÖµ+<select>ÔªËØµÄidÊôÐÔÖµ×é³É£»µÚ2¸ö²ÎÊý±íʾ²éѯËùÐèµÄ²ÎÊý£¬ÕâÀï²éѯµÄÊǿͻ§±íÖÐidΪ1µÄ¿Í»§¡£ÎªÁ˲鿴²éѯ½á¹û£¬ÕâÀïʹÓÃÁËÊä³öÓï¾äÊä³ö²éѯ½á¹ûÐÅÏ¢¡£×îºó£¬³ÌÐòÖ´ÐÐÍê±Ïʱ£¬¹Ø±ÕÁËSqlSession¡£
ʹÓÃJUnit4²âÊÔÖ´ÐÐfindCustomerByIdTest()·½·¨ºó£¬¿ØÖÆÌ¨µÄÊä³ö½á¹ûÈçͼ5Ëùʾ¡£

ͼ5 ÔËÐнá¹û
´Óͼ5¿ÉÒÔ¿´³ö£¬Ê¹ÓÃMyBatis¿ò¼ÜÒѾ³É¹¦²éѯ³öÁËidΪ1µÄ¿Í»§ÐÅÏ¢¡£
2£®¸ù¾Ý¿Í»§ÃûÄ£ºý²éѯ¿Í»§ÐÅÏ¢
Á˽âÁËÈçºÎʹÓÃMyBatis¸ù¾Ý¿Í»§±àºÅ²éѯ¿Í»§ÐÅÏ¢ºó£¬½ÓÏÂÀ´½²½âÏÂÈçºÎ¸ù¾Ý¿Í»§µÄÃû³ÆÀ´Ä£ºý²éѯÏà¹ØµÄ¿Í»§ÐÅÏ¢¡£
Ä£ºý²éѯµÄʵÏַdz£¼òµ¥£¬Ö»ÐèÔÚÓ³ÉäÎļþÖÐͨ¹ý<select>ÔªËØ±àдÏàÓ¦µÄSQLÓï¾ä£¬²¢Í¨¹ýsqlSessionµÄ²éѯ·½·¨Ö´ÐиÃSQL¼´¿É¡£Æä¾ßÌåʵÏÖ²½ÖèÈçÏ£º
£¨1£©ÔÚÓ³ÉäÎļþCustomerMapper.xmlÖУ¬Ìí¼Ó¸ù¾Ý¿Í»§ÃûÄ£ºý²éѯ¿Í»§ÐÅÏ¢ÁбíµÄSQLÓï¾ä£¬¾ßÌåʵÏÖ´úÂëÈçÏ¡£
<!--¸ù¾Ý¿Í»§ÃûÄ£ºý²éѯ¿Í»§ÐÅÏ¢Áбí-->
<select id="findCustomerByName" parameterType="String"
resultType="com.itheima.po.Customer">
select * from t_customer where username like '%${value}%'
</select>
Óë¸ù¾Ý¿Í»§±àºÅ²éѯÏà±È£¬ÉÏÊöÅäÖôúÂëÖеÄÊôÐÔid¡¢parameterTypeºÍSQLÓï¾ä¶¼·¢ÉúÏàÓ¦±ä»¯¡£ÆäÖУ¬SQLÓï¾äÖеē${}”ÓÃÀ´±íʾƴ½ÓSQLµÄ×Ö·û´®£¬¼´²»¼Ó½âÊ͵ÄÔÑùÊä³ö¡£“${value}”±íʾҪƴ½ÓµÄÊǼòµ¥ÀàÐͲÎÊý¡£
½ÅÏÂÁôÐÄ£º·ÀÖ¹SQL×¢Èë
ÔÚʹÓÓ${}”½øÐÐSQL×Ö·û´®Æ´½Óʱ£¬ÎÞ·¨·ÀÖ¹SQL×¢ÈëÎÊÌâ¡£ËùÒÔÏëÒª¼ÈÄÜʵÏÖÄ£ºý²éѯ£¬ÓÖÒª·ÀÖ¹SQL×¢È룬¿ÉÒÔ¶ÔÉÏÊöÓ³ÉäÎļþCustomerMapper.xmlÖÐÄ£ºý²éѯµÄselectÓï¾ä½øÐÐÐ޸ģ¬Ê¹ÓÃMySQLÖеÄconcat()º¯Êý½øÐÐ×Ö·û´®Æ´½Ó¡£¾ßÌåÐÞ¸ÄʾÀýÈçÏÂËùʾ¡£
select * from t_customer where username like concat('%',#{value},'%')
£¨2£©ÔÚ²âÊÔÀàMybatisTestÖУ¬Ìí¼ÓÒ»¸ö²âÊÔ·½·¨findCustomerByNameTest()£¬Æä´úÂëÈçÏÂËùʾ¡£
/**
* ¸ù¾ÝÓû§Ãû³ÆÀ´Ä£ºý²éѯÓû§ÐÅÏ¢Áбí
*/
@Test
public void findCustomerByNameTest() throws Exception{
// 1¡¢¶ÁÈ¡ÅäÖÃÎļþ
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 2¡¢¸ù¾ÝÅäÖÃÎļþ¹¹½¨SqlSessionFactory
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
// 3¡¢Í¨¹ýSqlSessionFactory´´½¨SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4¡¢SqlSessionÖ´ÐÐÓ³ÉäÎļþÖж¨ÒåµÄSQL£¬²¢·µ»ØÓ³Éä½á¹û
List<Customer> customers = sqlSession.selectList("com.itheima.mapper"
+ ".CustomerMapper.findCustomerByName", "j");
for (Customer customer : customers) {
//´òÓ¡Êä³ö½á¹û¼¯
System.out.println(customer);
}
// 5¡¢¹Ø±ÕSqlSession
sqlSession.close();
}
´ÓÉÏÊö´úÂë¿ÉÒÔ¿´³ö£¬findCustomerByNameTest()·½·¨Ö»ÊÇÔÚµÚ4²½Ê±Óë¸ù¾Ý¿Í»§±àºÅ²éѯµÄ²âÊÔ·½·¨ÓÐËù²»Í¬£¬ÆäËû²½Öè¶¼Ò»Ö¡£ÔÚµÚ4²½Ê±£¬ÓÉÓÚ¿ÉÄܲéѯ³öµÄÊǶàÌõÊý¾Ý£¬ËùÒÔµ÷ÓõÄÊÇSqlSessionµÄselectList()·½·¨À´²éѯ·µ»Ø½á¹ûµÄ¼¯ºÏ¶ÔÏ󣬲¢Ê¹ÓÃforÑ»·Êä³ö½á¹û¼¯¶ÔÏó¡£
ʹÓÃJUnit4Ö´ÐÐfindCustomerByNameTest()·½·¨ºó£¬¿ØÖÆÌ¨µÄÊä³ö½á¹ûÈçͼ6Ëùʾ¡£

ͼ6 ÔËÐнá¹û
´Óͼ6¿ÉÒÔ¿´³ö£¬Ê¹ÓÃMyBatis¿ò¼ÜÒѳɹ¦²éѯ³öÁ˿ͻ§±íÖпͻ§Ãû³ÆÖдøÓГj”µÄ2Ìõ¿Í»§ÐÅÏ¢¡£
ÖÁ´Ë£¬MyBatisÈëÃųÌÐòµÄ²éѯ¹¦ÄܾÍÒѾ½²½âÍê³É¡£´ÓÉÏÃæÁ½¸ö²éѯ·½·¨ÖпÉÒÔ·¢ÏÖ£¬MyBatisµÄ²Ù×÷´óÖ¿ɷÖΪÒÔϼ¸¸ö²½Ö裺
1) ¶ÁÈ¡ÅäÖÃÎļþ¡£
2) ¸ù¾ÝÅäÖÃÎļþ¹¹½¨SqlSessionFactory¡£
3) ͨ¹ýSqlSessionFactory´´½¨SqlSession¡£
4) ʹÓÃSqlSession¶ÔÏó²Ù×÷Êý¾Ý¿â£¨°üÀ¨²éѯ¡¢Ìí¼Ó¡¢Ð޸ġ¢É¾³ý£¬ÒÔ¼°Ìá½»ÊÂÎñµÈ£©¡£
5) ¹Ø±ÕSqlSession¡£
²ÂÄãϲ»¶£º
MybatisÔÀí½éÉÜ£ºMyBatisÈçºÎ²Ù×÷Êý¾Ý¿â£¿
Spring BootÖÐʹÓÃMyBatis×¢½âÅäÖÃÏê½â
MybatisÖ´ÐÐSQLÃüÁîÊÇÔõôʵÏֵģ¿
MyBatisÖÐʹÓÃ#ºÍ$ÓÐÊ²Ã´Çø±ð£¿
ÀÖÓãµç¾ºJavaÅàѵ°à
±±¾©Ð£Çø