Mybatis框架,mapper.xml+接口实现增删改查。

mapper代理形式(官方推荐)
接口+映射文件

开发规范:
   1、接口的全路径要和映射文件的namespace保持一致
   2、接口的方法名要和映射文件中的statementId保持一致
   3、接口方法的参数类型、返回数据类型要和映射文件中的parameterType、resultType保持一致
   4、接口和映射文件的名字最好保持一致   UserMapper.java  UserMapper.xml
   5、接口和映射文件最好放到同一个目录

usermapper接口

package com.it.mapper;

import com.it.bean.User;

public interface UserMapper {
	//Mapper接口方法名和Mapper.xml中定义的statement的id相同
	//Mapper接口方法的输入参数类型和mapper.xml中定义的statement的parameterType的类型相同
	//Mapper接口方法的输出参数类型和mapper.xml中定义的statement的resultType的类型相同
	//接口和映射文件的名字最好保持一致   UserMapper.java  UserMapper.xml
	//接口和映射文件最好放到同一个目录

	public User findById(int id);
	
	public void insertUser(User user);
	
	public void deleteUser(int id);
	
	public void updateUser(User user);

    public List findList();
	
	public int findCount() ;
	
	//根据id查找用户信息,map
	public Map findMap (int id);
	
	//多条件查询
	public List findWhereMap(Map map);
}

usermapper.xml




	
	
	
	
		
			 
			 select LAST_INSERT_ID()
		
		
		insert into user(username,birthday,sex,address) 
		values(#{username},#{birthday},#{sex},#{address})
	
	
	
		delete from user where id = #{id}
	
	
	
		update user set username = #{username} where id = #{id}
	


	
	
	
	
	
	

SqlMapConfig.xml配置文件




	
	
		
			
			
			
			
				
				
				
				
			
		
	
	
	
		
		
	
	

测试文件

package com.it.test;

import java.util.Date;

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.it.bean.User;
import com.it.mapper.UserMapper;

public class TestMapper {
	SqlSessionFactory sqlSessionFactory = null;
    @Before
	public void init() throws Exception{
    	SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    	sqlSessionFactory = builder.build(Resources.getResourceAsStream("sqlMapConfig.xml"));
	}
    @Test
    public void testFindById() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	User user = mapper.findById(1);
    	System.out.println(user);
    	sqlSession.close();
    	
    }
    @Test
    public void testInsertUser() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	User user=new User();
    	user.setSex("1");
    	user.setAddress("上海");
    	user.setBirthday(new Date());
    	user.setUsername("反对反对方法");
    	mapper.insertUser(user);
    	sqlSession.commit();
    	System.out.println(user);
    	sqlSession.close();
    }
    
    @Test
    public void testDeleteUser() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	mapper.deleteUser(34);
    	sqlSession.commit();
    	sqlSession.close();
    }
    
    @Test 
    public void testUpdateUser() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	User user=new User();
    	//如果对象的set有空值,那表里面对应的字段的数据就会被清空
    	//解决:动态sql修改
    	user.setUsername("万树元");
    	user.setId(35);
    	mapper.updateUser(user);
    	sqlSession.commit();
    	sqlSession.close();
    }
    @Test
    public void findList() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	 List user = mapper.findList();
    	for (User user2 : user) {
			System.out.println(user2);
		}
    	
    	sqlSession.close();
    }
    
    @Test
    public void findCount() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	int count = mapper.findCount();
    	System.out.println(count);
    	sqlSession.close();
    	
    }
    
    @Test
    public void findMap() {
    	SqlSession sqlSession = sqlSessionFactory.openSession();
    	UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    	Map findMap = mapper.findMap(35);
    	System.out.println(findMap);
    	sqlSession.close();
    }

    
}

 

 

 

 

你可能感兴趣的:(java学习笔记,Mybatis)