Mybatis使用接口Mapper进行CRUD

Mybatis使用接口Mapper进行CRUD_第1张图片

package com.mybatis.inteface;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.mybatis.pojo.User;

public interface UserInterface {

   //根据表名查询用户信息(直接使用注解指定传入参数名称)
   //There is no getter for property named 'tableName' in 'class java.lang.String'
   //public List queryUserByTableName(String tableName);
   public List queryUserByTableName(@Param("tableName") String tableName);
   
   //使用注解指定传入参数名称
   //public User login(String userName, String password);
   public User login(@Param("userName") String userName, @Param("password") String password);

   public User queryUserById(Integer id);

   public List queryUserByIds(List ids);
   
   public List queryUserAll();

   public void insertUser(User user);
   
   public void insertUserList(List users);

   public void updateUser(User user);
   
   public void updateUserList(List users);
  
   public void deleteUserById(Integer id);

}




    
    

    

    
    
    
     
    
    
    
    
        insert into tb_user 
        (id,user_name,password,name,age,sex,birthday,created,updated)
        values
        (#{id},#{userName},#{password},#{name},#{age},#{sex},#{birthday},sysdate,sysdate)
    
    
    
        insert into tb_user 
        (id,user_name,password,name,age,sex,birthday,created,updated)
        select id,user_name,password,name,age,sex,birthday,created,updated
        from (
        
            select #{item.id} as id,#{item.userName} as user_name,#{item.password} as password,
            #{item.name} as name,#{item.age} as age,#{item.sex} as sex,
            #{item.birthday} as birthday,sysdate as created,sysdate as updated
            from dual
        
        ) A
    
    
    
        update tb_user
        
            user_name = #{userName},
            password = #{password},
            name = #{name},
            age = #{age},
            sex = #{sex},
            birthday = #{birthday},
            updated = sysdate,
        
        where id = #{id}
    
    
    
       
            update tb_user
            
                user_name = #{item.userName},
	            password = #{item.password},
	            name = #{item.name},
	            age = #{item.age},
	            sex = #{item.sex},
	            birthday = #{item.birthday},
	            updated = sysdate,
            
            where id = #{item.id}
        
    
    
        delete from tb_user where id=#{id}
    
package com.mybatis.pojo;

import java.util.Date;

public class User {

    private Integer id;
    private String userName;//数据库字段名user_name
    private String password;
    private String name;
    private Integer age;
    private Integer sex;
    private Date birthday;
    private String created;
    private String updated;
    
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Integer getSex() {
		return sex;
	}
	public void setSex(Integer sex) {
		this.sex = sex;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getCreated() {
		return created;
	}
	public void setCreated(String created) {
		this.created = created;
	}
	public String getUpdated() {
		return updated;
	}
	public void setUpdated(String updated) {
		this.updated = updated;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", userName=" + userName + ", password="
				+ password + ", name=" + name + ", age=" + age + ", sex=" + sex
				+ ", birthday=" + birthday + ", created=" + created
				+ ", updated=" + updated + "]";
	}

}
package com.mybatis.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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.Before;
import org.junit.Test;
import com.mybatis.inteface.UserInterface;
import com.mybatis.pojo.User;

public class UserDaoTest {
	
    public UserInterface userInterface;
    
    @Before
    public void setUp(){
    	
    	try {
            // 指定配置文件
            String resource = "mybatis-config.xml";
            // 读取配置文件
            InputStream inputStream = Resources.getResourceAsStream(resource);
            // 构建sqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            // 获取sqlSession
            SqlSession sqlSession = sqlSessionFactory.openSession(true);

            // 1. 映射文件的命名空间(namespace)必须是mapper接口的全路径
            // 2. 映射文件的statement的id必须和mapper接口的方法名保持一致
            // 3. Statement的resultType必须和mapper接口方法的返回类型一致
            // 4. statement的parameterType必须和mapper接口方法的参数类型一致(不一定)
            this.userInterface = sqlSession.getMapper(UserInterface.class);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
    
    @Test
    public void testQueryUserByTableName() {
        List userList = this.userInterface.queryUserByTableName("tb_user");
        for (User user : userList) {
            System.out.println(user);
        }
    }

    @Test
    public void testLogin() {
        System.out.println(this.userInterface.login("jingjing", "123456"));
    }

    @Test
    public void testQueryUserById() {
        System.out.println(this.userInterface.queryUserById(2));
    }
    
    @Test
    public void testQueryUserByIds() {
    	
    	List ids = new ArrayList();
    	ids.add(1);
    	ids.add(2);
    	ids.add(3);
        List userList = this.userInterface.queryUserByIds(ids);
        for (User user : userList) {
            System.out.println(user);
        }
    }

    @Test
    public void testQueryUserAll() {
        List userList = this.userInterface.queryUserAll();
        for (User user : userList) {
            System.out.println(user);
        }
    }

    @Test
    public void testInsertUser() {
        User user = new User();
        user.setId(3);
        user.setAge(20);
        user.setBirthday(new Date());
        user.setName("大神");
        user.setPassword("123456");
        user.setSex(2);
        user.setUserName("bigGod222");
        this.userInterface.insertUser(user);
        System.out.println(user.getId());
    }

    @Test
    public void testInsertUserList() {
        User user10 = new User();
        user10.setId(10);
        user10.setAge(20);
        user10.setBirthday(new Date());
        user10.setName("大神");
        user10.setPassword("123456");
        user10.setSex(2);
        user10.setUserName("bigGod111");
        
        User user20 = new User();
        user20.setId(20);
        user20.setAge(40);
        user20.setBirthday(new Date());
        user20.setName("大力神");
        user20.setPassword("123456");
        user20.setSex(2);
        user20.setUserName("bigGod222");
        
        List users = new ArrayList();
        users.add(user10);
        users.add(user20);
        
        this.userInterface.insertUserList(users);
    }
    
    @Test
    public void testUpdateUser() {
        User user = new User();
        user.setId(1);
        user.setBirthday(new Date());
        user.setName("静静");
        user.setPassword("123456");
        user.setSex(0);
        user.setUserName("Jinjin");
        this.userInterface.updateUser(user);
    }

    @Test
    public void testupdateUserList() {
        User user1 = new User();
        user1.setId(1);
        user1.setName("name11");
        user1.setUserName("username11");
        
        User user2 = new User();
        user2.setId(2);
        user2.setName("name22");
        user2.setUserName("username22");
        
        List users = new ArrayList();
        users.add(user1);
        users.add(user2);
        this.userInterface.updateUserList(users);
    }
    
    @Test
    public void testDeleteUserById() {
        this.userInterface.deleteUserById(1);
    }
}
log4j.rootLogger=DEBUG,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%l] [%p]:%m%n




	
		
		
		
	    
   

   
   
      
      
         
         
         
         
            
            
            
            
         
      
      
         
         
         
         
             
            
            
            
         
      
   
   
     
   
  

 

你可能感兴趣的:(Mybatis系列)