mybatis---Mapper动态代理开发

UserMapper接口:

package com.it.mybaties.mapper;

import com.it.mybaties.pojo.User;

public interface UserMapper {
	
	public User getUserById(Integer id);
}

Test:

package com.it.mybaties.junit;

import java.io.InputStream;

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.Test;


import com.it.mybaties.mapper.UserMapper;
import com.it.mybaties.pojo.User;

public class TestMapper {
	
	@Test
	public void fun() throws Exception{
		String resource = "sqlMapperConfig.xml";
		InputStream in = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = 
                    new SqlSessionFactoryBuilder().build(in);
		
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		UserMapper mapper = sqlSession.getMapper(UserMapper.class);
		
		User user = mapper.getUserById(37);
		System.out.println(user);
		
		
	}
}

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.it.mybaties.mapper.UserMapper">
  <select id="getUserById" resultType="com.it.mybaties.pojo.User" parameterType="Integer">
  	select * from user where id=#{id}
  </select>
  
  <select id="getUserByUsername" parameterType="String" resultType="com.it.mybaties.pojo.User">
  	<!-- 用$符号时,只能用value 其他都是错 -->
  	<!-- select * from user where username like '%${value}%' -->
  	<!-- #号里随便写什么 -->
  	select * from user where username like "%"#{username}"%"
  </select>
  
  <insert id="insertUser" parameterType="com.it.mybaties.pojo.User">
  	<selectKey keyProperty="id" resultType="Integer" order="AFTER">
  		select LAST_INSERT_ID()
  	</selectKey>
  	insert into user (username,sex,birthday,address) values (#{username},#{sex},#{birthday},#{address})
  </insert>
  
  <update id="updateUser" parameterType="com.it.mybaties.pojo.User">
  	update user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address}  where id=#{id}
  </update>
  
  <delete id="deleteUser" parameterType="Integer">
  	delete from user where id=#{id}
  </delete>
  
  
</mapper>

Mapper接口开发需要遵循以下规范:

  1. Mapper.xml文件中的namespace与mapper接口的类路径相同。
  2. Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
  3. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
  4. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

猜你喜欢

转载自blog.csdn.net/weixin_40471291/article/details/84100973
今日推荐