mybatis实体类与数据库字段映射
1.pom
< ? xml version= "1.0" encoding= "UTF-8" ? >
< project xmlns= "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/xsd/maven-4.0.0.xsd" >
< modelVersion> 4.0 .0 < / modelVersion>
< groupId> com. lq< / groupId>
< artifactId> mybatis- annotation< / artifactId>
< version> 1.0 - SNAPSHOT< / version>
< packaging> jar< / packaging>
< dependencies>
< dependency>
< groupId> org. mybatis< / groupId>
< artifactId> mybatis< / artifactId>
< version> 3.4 .5 < / version>
< / dependency>
< dependency>
< groupId> mysql< / groupId>
< artifactId> mysql- connector- java< / artifactId>
< version> 5.1 .6 < / version>
< / dependency>
< dependency>
< groupId> log4j< / groupId>
< artifactId> log4j< / artifactId>
< version> 1.2 .12 < / version>
< / dependency>
< dependency>
< groupId> junit< / groupId>
< artifactId> junit< / artifactId>
< version> 4.10 < / version>
< / dependency>
< / dependencies>
< / project>
2.UserDao
package com. lq. dao;
import com. lq. domain. User;
import com. lq. domain. User1;
import org. apache. ibatis. annotations. *;
import java. util. List;
public interface UserDao {
@Select ( value = "select * from user" )
@Results ( id= "userMap" , value= {
@Result ( id= true , column = "id" , property = "userId" ) ,
@Result ( column = "username" , property = "userName" ) ,
@Result ( column = "address" , property = "userAddress" ) ,
@Result ( column = "sex" , property = "userSex" ) ,
@Result ( column = "birthday" , property = "userBirthday" ) } )
List< User1> findAll ( ) ;
@Select ( "select * from user where id=#{id} " )
@ResultMap ( value = { "userMap" } )
User1 findById ( Integer userId) ;
@Select ( "select * from user where username like #{username} " )
@ResultMap ( value = { "userMap" } )
List< User1> findUserByName ( String username) ;
}
3.User1
package com. lq. domain;
import java. io. Serializable;
import java. util. Date;
public class User1 implements Serializable {
private Integer userId;
private String userName;
private Date userBirthday;
private String userSex;
private String userAddress;
public Integer getUserId ( ) {
return userId;
}
public void setUserId ( Integer userId) {
this . userId = userId;
}
public String getUserName ( ) {
return userName;
}
public void setUserName ( String userName) {
this . userName = userName;
}
public Date getUserBirthday ( ) {
return userBirthday;
}
public void setUserBirthday ( Date userBirthday) {
this . userBirthday = userBirthday;
}
public String getUserSex ( ) {
return userSex;
}
public void setUserSex ( String userSex) {
this . userSex = userSex;
}
public String getUserAddress ( ) {
return userAddress;
}
public void setUserAddress ( String userAddress) {
this . userAddress = userAddress;
}
@Override
public String toString ( ) {
return "User1{" +
"userId=" + userId +
", userName='" + userName + '\'' +
", userBirthday=" + userBirthday +
", userSex='" + userSex + '\'' +
", userAddress='" + userAddress + '\'' +
'}' ;
}
}
4.jdbcConfig.properties
jdbc. driver= com. mysql. jdbc. Driver
jdbc. url= jdbc: mysql: / / localhost: 3306 / eesy
jdbc. username= root
jdbc. password= root
5.log4j.properties
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j. rootCategory= INFO, CONSOLE debug info warn error fatal
log4j. rootCategory= debug, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j. logger. org. apache. axis. enterprise= FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j. appender. CONSOLE= org. apache. log4j. ConsoleAppender
log4j. appender. CONSOLE. layout= org. apache. log4j. PatternLayout
log4j. appender. CONSOLE. layout. ConversionPattern= % d{ ISO8601} % - 6 r [ % 15.15 t] % - 5 p % 30.30 c % x - % m\n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j. appender. LOGFILE= org. apache. log4j. FileAppender
log4j. appender. LOGFILE. File= d: \axis. log
log4j. appender. LOGFILE. Append= true
log4j. appender. LOGFILE. layout= org. apache. log4j. PatternLayout
log4j. appender. LOGFILE. layout. ConversionPattern= % d{ ISO8601} % - 6 r [ % 15.15 t] % - 5 p % 30.30 c % x - % m\n
6.SqlMapConfig.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>
< ! -- 配置properties-- >
< properties resource= "jdbcConfig.properties" > < / properties>
< ! -- 设置懒加载-- >
< settings>
< setting name= "lazyLoadingEnabled" value= "true" / >
< setting name= "aggressiveLazyLoading" value= "false" / >
< / settings>
< ! -- 使用typeAliases配置别名,它只能配置domain中类的别名 -- >
< typeAliases>
< package name= "com.lq.domain" > < / package >
< / typeAliases>
< ! -- 配置环境-- >
< environments default = "mysql" >
< ! -- 配置mysql的环境-- >
< environment id= "mysql" >
< ! -- 配置事务 -- >
< transactionManager type= "JDBC" > < / transactionManager>
< ! -- 配置连接池-- >
< dataSource type= "POOLED" >
< property name= "driver" value= "${jdbc.driver}" > < / property>
< property name= "url" value= "${jdbc.url}" > < / property>
< property name= "username" value= "${jdbc.username}" > < / property>
< property name= "password" value= "${jdbc.password}" > < / property>
< / dataSource>
< / environment>
< / environments>
< ! -- 配置映射文件的位置 -- >
< mappers>
< package name= "com.lq.dao" > < / package >
< / mappers>
< / configuration>
7.MyTest
package com. lq. test;
import com. lq. dao. UserDao;
import com. lq. domain. User;
import com. lq. domain. User1;
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. After;
import org. junit. Before;
import org. junit. Test;
import java. io. IOException;
import java. io. InputStream;
import java. util. Date;
import java. util. List;
public class MyTest {
private InputStream inputStream;
private SqlSessionFactory factory;
private SqlSession sqlSession;
private UserDao userDao;
@Before
public void init ( ) throws Exception{
inputStream = Resources. getResourceAsStream ( "SqlMapConfig.xml" ) ;
factory = new SqlSessionFactoryBuilder ( ) . build ( inputStream) ;
sqlSession = factory. openSession ( ) ;
userDao = sqlSession. getMapper ( UserDao. class ) ;
}
@After
public void destroy ( ) throws IOException {
sqlSession. commit ( ) ;
sqlSession. close ( ) ;
inputStream. close ( ) ;
}
@Test
public void testFindAll ( ) {
List< User1> users = userDao. findAll ( ) ;
for ( User1 user : users) {
System. out. println ( user) ;
}
}
@Test
public void FindById ( ) {
User1 user = userDao. findById ( 50 ) ;
System. out. println ( user) ;
}
@Test
public void FindByName ( ) {
List< User1> users = userDao. findUserByName ( "王" ) ;
for ( User1 user : users) {
System. out. println ( user) ;
}
}
}