mapper xml的if标签使用
开发工具:idea
版本工具:maven
1.pom.xml
12 7 8 9junit 3junit 44.11 5test 610 14 15 16org.mybatis 11mybatis 123.3.0 1317 21 22 23mysql 18mysql-connector-java 198.0.16 2024 28log4j 25log4j 261.2.17 2729 33org.slf4j 30slf4j-api 311.7.30 3234 org.slf4j 35slf4j-log4j12 361.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"> 45 6 7 11 12 188 9 10
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 56 7 8 9 11 12 1310 default="development"> 14 26 27 2815 16 2517 18 19 2420 21 22 23 29 3130
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 }