mybatis study notes
resultType statementreturns the full class name or alias of the value type
- resultType returns a map set, key is the column name, and value is the corresponding value
Using resultMap to realize joint table query
- A mapping relationship is established between the resultMap query result set and the java Bean
- Multi table query sql statement
SELECT su.*,r.rolename FROM sys_user su,"role" r WHERE su.roleid =r.id AND r.id =1;
- Result set of query
- Establish a mapping relationship between the result set and the entity class, and add the fields to be displayed in the User entity class, rolename and roleid
- Use resultMap to establish the data to be displayed. property represents the attribute of the entity class and column represents the field of the table
- Test class
- console output
Note: the method in dao layer interface must correspond to the sql statement in mapper file. For example, the following error
- junit reported the following error
- console output
15:01:39.643 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.log4j2.Log4j2Impl' adapter.
15:01:39.649 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VFS
15:01:39.650 [main] DEBUG org.apache.ibatis.io.JBoss6VFS - JBoss 6 VFS API is not available in this environment.
15:01:39.650 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VirtualFile
15:01:39.651 [main] DEBUG org.apache.ibatis.io.VFS - VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.
15:01:39.651 [main] DEBUG org.apache.ibatis.io.VFS - Using VFS adapter org.apache.ibatis.io.DefaultVFS
15:01:39.652 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Find JAR URL: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo
15:01:39.652 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Not a JAR: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo
15:01:39.696 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: Role.class
15:01:39.698 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: User.class
15:01:39.699 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Listing file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo
15:01:39.699 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Find JAR URL: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo/Role.class
15:01:39.699 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Not a JAR: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo/Role.class
15:01:39.700 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: ����
The reason is that the method is written in the RoleMapper interface and the sql statement is not written in the corresponding xml file
- RoleMapper.java
- RoleMapper.xml
- When the column name of the database is different from the entity class, you need to use resultMap mapping
- resultMap is also required for association mapping during joint query
Configure the log implementation of mybatis as log4j2, and sql statements will be printed during background printing and output

-
Use association to associate Java beans to realize query
- When an entity class is an attribute of another entity class, such as:
- Use the sub attribute association of resultMap to implement
- You can also write a resultMap separately and reference it in the association, such as:
- The test results are the same
- When a collection exists in an entity class
- Use the collection in the resultMap to associate the implementation
- Test class
- test result
The required data is displayed in resultmap, association and collection, and the unnecessary data can not be displayed
Posted by spiffy577 on Sun, 15 May 2022 08:29:56 +0300