mapper xml的if标签使用


开发工具:idea

版本工具:maven

1.pom.xml

 1 
 2       junit
 3       junit
 4       4.11
 5       test
 6     
 7 
 8     
 9     
10       org.mybatis
11       mybatis
12       3.3.0
13     
14 
15     
16     
17       mysql
18       mysql-connector-java
19       8.0.16
20     
21 
22       
23       
24           log4j
25           log4j
26           1.2.17
27       
28       
29           org.slf4j
30           slf4j-api
31           1.7.30
32       
33       
34           org.slf4j
35           slf4j-log4j12
36           1.7.7
37       

2.Role.java

 1 package com.lenovo.pojo;
 2 
 3 public class Role {
 4 
 5     private Long id;//主键
 6     private String roleName;//角色名称
 7     private String note;//备注
 8 
 9     public Long getId() {
10         return id;
11     }
12 
13     public void setId(Long id) {
14         this.id = id;
15     }
16 
17     public String getRoleName() {
18         return roleName;
19     }
20 
21     public void setRoleName(String roleName) {
22         this.roleName = roleName;
23     }
24 
25     public String getNote() {
26         return note;
27     }
28 
29     public void setNote(String note) {
30         this.note = note;
31     }
32 
33     @Override
34     public String toString() {
35         return "Role{" +
36                 "id=" + id +
37                 ", roleName='" + roleName + '\'' +
38                 ", note='" + note + '\'' +
39                 '}';
40     }
41 }

3.RoleMapper.java

 1 package com.lenovo.dao;
 2 
 3 import com.lenovo.pojo.Role;
 4 import org.apache.ibatis.annotations.Param;
 5 
 6 public interface RoleMapper {
 7 
 8     //查询单个角色
 9     public Role findRole(@Param("roleName") String roleName);
10 
11 }

4.SqlSessionFactoryUtil.java

 1 package com.lenovo.util;
 2 
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 
11 public class SqlSessionFactoryUtil {
12 
13     //SqlSessionFactory对象
14     private static SqlSessionFactory sqlSessionFactory = null;
15     //类线程锁
16     private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;
17 
18     //私有化构造函数
19     private SqlSessionFactoryUtil(){};
20 
21     //构建SqlSessionFactory
22     public static SqlSessionFactory initSqlSessionFactory(){
23         String resource = "mybatis-config.xml";
24         InputStream inputStream = null;
25         try {
26             inputStream = Resources.getResourceAsStream(resource);
27         } catch (IOException e) {
28             e.printStackTrace();
29         }
30 
31         synchronized (CLASS_LOCK){
32             if (sqlSessionFactory == null){
33                 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
34             }
35         }
36         return sqlSessionFactory;
37     }
38 
39     //打开SqlSession
40     public static SqlSession openSqlSession(){
41         if (sqlSessionFactory == null){
42             initSqlSessionFactory();
43         }
44         return sqlSessionFactory.openSession();
45     }
46 
47 }

5.RoleMapper.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2  3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 
 5     
 6     
 7         
 8         
 9         
10     
11 
12     
18 

6.jdbc.properties

1 #数据库配置文件
2 driver=com.mysql.cj.jdbc.Driver
3 url=jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
4 username=root
5 password=root

7.log4j.properties

log4j.rootLogger=DEBUG,stdout
log4j.logger.org.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

8.mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2  3         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 
 5 
 6     
 7     
 8         
 9         
10     
11 
12     
13     default="development">
14         
15             
16             
17             
18             
19                 
20                 
21                 
22                 
23             
24         
25     
26 
27     
28     
29         
30     
31 

9.MybatisExample.java

 1 package com.lenovo;
 2 
 3 import com.lenovo.dao.RoleMapper;
 4 import com.lenovo.pojo.Role;
 5 import com.lenovo.util.SqlSessionFactoryUtil;
 6 import org.apache.ibatis.session.SqlSession;
 7 
 8 /**
 9  * select标签中的if标签测试
10  */
11 public class MybatisExample {
12 
13     public static void main(String[] args) {
14         SqlSession sqlSession = SqlSessionFactoryUtil.initSqlSessionFactory().openSession();
15         RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
16         Role role = roleMapper.findRole("zhang");
17         System.out.println("角色信息" + role.toString());
18     }
19 
20 }