< projectxmlns = " http://maven.apache.org/POM/4.0.0" xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation= " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > < modelVersion> </ modelVersion> < groupId> </ groupId> < artifactId> </ artifactId> < version> </ version> < packaging> </ packaging> < name> </ name> < url> </ url> < modules> < module> </ module> < module> </ module> </ modules> < dependencies> < dependency> < groupId> </ groupId> < artifactId> </ artifactId> < version> </ version> </ dependency> < dependency> < groupId> </ groupId> < artifactId> </ artifactId> < version> </ version> </ dependency> < dependency> < groupId> </ groupId> < artifactId> </ artifactId> < version> </ version> < scope> </ scope> </ dependency> </ dependencies> < build> < resources> < resource> < directory> </ directory> < includes> < include> </ include> </ includes> </ resource> < resource> < directory> </ directory> < includes> < include> </ include> < include> </ include> </ includes> </ resource> </ resources> </ build> </ project> jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
<?xml version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  configuration 
        PUBLIC  "-//mybatis.org//DTD Config 3.0//EN" 
        "https://mybatis.org/dtd/mybatis-3-config.dtd" > < configuration> < propertiesresource = " jdbc.properties" /> < settings> < settingname = " logImpl" value = " STDOUT_LOGGING" /> </ settings> < typeAliases> < packagename = " com.sun.entity" /> </ typeAliases> < environmentsdefault = " development" > < environmentid = " development" > < transactionManagertype = " JDBC" /> < dataSourcetype = " POOLED" > < propertyname = " driver" value = " ${jdbc.driver}" /> < propertyname = " url" value = " ${jdbc.url}" /> < propertyname = " username" value = " ${jdbc.username}" /> < propertyname = " password" value = " ${jdbc.password}" /> </ dataSource> </ environment> </ environments> < mappers> < packagename = " com.sun.mapper" /> </ mappers> </ configuration> package  com. sun. mapper ; 
import  com. util.  MyBatisUtils ; 
import  org. apache. ibatis. session.  SqlSession ; 
import  org. junit.  Before ; 
import  org. junit.  Test ; 
public  class  MonsterMapperTest  { 
    
    private  SqlSession  sqlSession;  
    private  MonsterMapper  monsterMapper; 
    
    @Before  
    public  void  init ( )  { 
        
        sqlSession =  MyBatisUtils . getSqlSession ( ) ; 
        
        monsterMapper =  sqlSession. getMapper ( MonsterMapper . class ) ; 
        System . out. println ( monsterMapper. getClass ( ) ) ; 
    } 
    @Test 
    public  void  test ( )  { 
        System . out. println ( "ssss" ) ; 
    } 
} 
package  com. sun. mapper ; 
import  com. sun. entity.  Monster ; 
import  java. util.  List ; 
public  interface  MonsterMapper  { 
    
    public  List < Monster > findMonsterByNameORId ( Monster  monster) ; 
} 
<?xml version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  mapper 
        PUBLIC  "-//mybatis.org//DTD Mapper 3.0//EN" 
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd" > < mappernamespace = " com.sun.mapper.MonsterMapper" > < selectid = " findMonsterByNameORId" parameterType = " Monster" resultType = " Monster" > </ select> </ mapper> package  com. sun. mapper ; 
import  com. sun. entity.  Monster ; 
import  com. util.  MyBatisUtils ; 
import  org. apache. ibatis. session.  SqlSession ; 
import  org. junit.  Before ; 
import  org. junit.  Test ; 
import  java. util.  List ; 
public  class  MonsterMapperTest  { 
    
    private  SqlSession  sqlSession;  
    private  MonsterMapper  monsterMapper; 
    
    @Before  
    public  void  init ( )  { 
        
        sqlSession =  MyBatisUtils . getSqlSession ( ) ; 
        
        monsterMapper =  sqlSession. getMapper ( MonsterMapper . class ) ; 
        System . out. println ( monsterMapper. getClass ( ) ) ; 
    } 
    @Test 
    public  void  test ( )  { 
        Monster  monster =  new  Monster ( ) ; 
        monster. setId ( 1 ) ; 
        monster. setName ( "大象精" ) ; 
        List < Monster > =  monsterMapper. findMonsterByNameORId ( monster) ; 
        for  ( Monster  monster1 :  monsterList)  { 
            System . out. println ( monster1) ; 
        } 
        
        if  ( sqlSession !=  null )  { 
            sqlSession. close ( ) ; 
        } 
    } 
} 
    public  List < Monster > findMonsterByName ( String  name) ; 
    
    < selectid = " findMonsterByName" parameterType = " String" resultType = " Monster" > </ select>     @Test 
    public  void  MonsterMapper ( )  { 
        List < Monster > =  monsterMapper. findMonsterByName ( "孙" ) ; 
        for  ( Monster  monster :  monsterList)  { 
            System . out. println ( monster) ; 
        } 
    } 
    
    public  List < Monster > findMonsterByIdAndName_ParamMap ( Map < String ,  Object > ) ; 
    
    < selectid = " findMonsterByIdAndName_ParamMap" parameterType = " Map" resultType = " Monster" > </ select>     @Test 
    public  void  findMonsterByIdAndName_ParamMap ( )  { 
        Map  map =  new  HashMap < String ,  Object > ( ) ; 
        map. put ( "id" ,  1 ) ; 
        map. put ( "name" ,  "大象精" ) ; 
        List < Monster > =  monsterMapper. findMonsterByIdAndName_ParamMap ( map) ; 
        for  ( Monster  monster :  monsters)  { 
            System . out. println ( monster) ; 
        } 
    } 
    
    public  List < Map < String ,  Object > > findMonsterByIdAndName_ParamMap_returnMap ( Map < String ,  Object > ) ; 
    
    < selectid = " findMonsterByIdAndName_ParamMap_returnMap" parameterType = " Map" resultType = " Map" > </ select>     @Test 
    public  void  findMonsterByIdAndName_ParamMap_returnMap ( )  { 
        Map  map =  new  HashMap < String ,  Object > ( ) ; 
        map. put ( "id" ,  6 ) ; 
        map. put ( "name" ,  "大象精" ) ; 
        List < Map < String ,  Object > > =  monsterMapper. findMonsterByIdAndName_ParamMap_returnMap ( map) ; 
        
        for  ( Map < String ,  Object > :  mapList)  { 
            for  ( Map. Entry < String ,  Object > :  stringObjectMap. entrySet ( ) )  { 
                System . out. println ( entry. getKey ( )  +  " "  +  entry. getValue ( ) ) ; 
            } 
        } 
    } 
CREATE  TABLE  ` user` ( 
	user_id INT  NOT  NULL  auto_increment , 
	user_email VARCHAR ( 255 )  DEFAULT  '' , 
	user_name VARCHAR ( 255 )  DEFAULT '' , 
	PRIMARY  KEY  ( user_id) 
) 
package  com. sun. entity ; 
public  class  User  { 
    private  Integer  user_id; 
    
    private  String  username;  
    private  String  useremail; 
    public  User ( )  { 
    } 
    public  User ( Integer  user_id,  String  username,  String  useremail)  { 
        this . user_id =  user_id; 
        this . username =  username; 
        this . useremail =  useremail; 
    } 
    public  Integer  getUser_id ( )  { 
        return  user_id; 
    } 
    public  void  setUser_id ( Integer  user_id)  { 
        this . user_id =  user_id; 
    } 
    public  String  getUsername ( )  { 
        return  username; 
    } 
    public  void  setUsername ( String  username)  { 
        this . username =  username; 
    } 
    public  String  getUseremail ( )  { 
        return  useremail; 
    } 
    public  void  setUseremail ( String  useremail)  { 
        this . useremail =  useremail; 
    } 
    @Override 
    public  String  toString ( )  { 
        return  "User{"  + 
                "user_id="  +  user_id + 
                ", username='"  +  username +  '\''  + 
                ", useremail='"  +  useremail +  '\''  + 
                '}' ; 
    } 
} 
UserMapper . xmlpackage com. sun. mapper; 
import  com. sun. entity.  User ; 
import  java. util.  List ; 
public  interface  UserMapper  { 
    
    public  List < User > findAllUser ( ) ; 
} 
<?xml version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  mapper 
        PUBLIC  "-//mybatis.org//DTD Mapper 3.0//EN" 
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd" > < mappernamespace = " com.sun.mapper.UserMapper" > < selectid = " findAllUser" resultType = " User" > </ select> </ mapper> package  com. sun. mapper ; 
import  com. sun. entity.  User ; 
import  com. util.  MyBatisUtils ; 
import  org. apache. ibatis. session.  SqlSession ; 
import  org. junit.  Before ; 
import  org. junit.  Test ; 
import  java. util.  List ; 
public  class  UserMapperTest  { 
    
    private  SqlSession  sqlSession;  
    private  UserMapper  userMapper; 
    
    @Before  
    public  void  init ( )  { 
        
        sqlSession =  MyBatisUtils . getSqlSession ( ) ; 
        
        userMapper =  sqlSession. getMapper ( UserMapper . class ) ; 
        System . out. println ( userMapper. getClass ( ) ) ; 
    } 
    @Test 
    public  void  findAllUser ( )  { 
        List < User > =  userMapper. findAllUser ( ) ; 
        System . out. println ( allUser) ; 
    } 
} 
<?xml version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE  mapper 
        PUBLIC  "-//mybatis.org//DTD Mapper 3.0//EN" 
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd" > < mappernamespace = " com.sun.mapper.UserMapper" > < resultMapid = " findAllUserResultType" type = " User" > < resultcolumn = " user_email" property = " useremail" /> < resultcolumn = " user_name" property = " username" /> </ resultMap> < selectid = " findAllUser" resultMap = " findAllUserResultType" > </ select> </ mapper> 
 如果没有使用resultMap,但是表的列名与映射类的属性不匹配,则返回的结果不会填充,则该位置会是对象属性的默认值  
 解决列名与属性名不同也可以使用别名,简单来说就是查询出来结果的时候使用as ,将结果所在的列名设置成跟属性一致的名字,但是不推荐 
 MyBatis-Plus可以直接使用@TableField注解或者@TableName注解来解决