JAVA框架 Mybaits 动态代理

 一、动态代理:

mybaits给咱们提供一套动态代理,我们只需要按他的要求写接口即可,mybatis帮做动态代理,相当于咱们写的接口的实现类。底层通过反射实例化代理对象,通过代理对象调用相应的方法,

执行相应的数据库语句。

接口:

 1 package jd.com.proxydao;
 2 
 3 
 4 import jd.com.mybaitstest.account;
 5 
 6 import java.io.IOException;
 7 import java.util.List;
 8 
 9 public interface AccMapper {
10     List<account>  selectDemo(String name) throws IOException;
11      void  updateDemo(account ac) throws IOException;
12 }

mapper文件:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="jd.com.proxydao.AccMapper" >
 6     <select id="selectDemo" resultType="jd.com.mybaitstest.account" parameterType="java.lang.String" >
 7 
 8         SELECT * FROM  t_account WHERE NAME LIKE '%${value}%';
 9     </select>
10     <insert id="updateDemo" parameterType="jd.com.mybaitstest.account">
11 
12         <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
13 
14             SELECT LAST_INSERT_ID();
15         </selectKey>
16         INSERT INTO t_account(NAME ,money) VALUES(#{name},#{money});
17     </insert>
18 </mapper>

 需要注意:mapper文件和接口在同一个目录中!

测试代码:

 1 package jd.com.proxydao;
 2 
 3 import jd.com.mybaitstest.account;
 4 import jd.com.Utils.session;
 5 import org.apache.ibatis.session.SqlSession;
 6 import org.junit.jupiter.api.Test;
 7 
 8 import java.io.IOException;
 9 import java.util.List;
10 
11 public class TestDemo {
12     @Test
13     public void  testdemo1() throws IOException {
14         SqlSession sqlSession=session.getSession();
15         AccMapper ac=sqlSession.getMapper(AccMapper.class);
16         List<account> acc1=ac.selectDemo("ok");
17         account acz=new account();
18         acz.setId(9);
19         acz.setMoney(2313131);
20         ac.updateDemo(acz);
21         sqlSession.commit();
22         sqlSession.close();
23         System.out.println("acc1 = " + acc1);
24     }
25 }

工具类:

 1 package jd.com.Utils;
 2 
 3 import org.apache.ibatis.io.Resources;
 4 import org.apache.ibatis.session.SqlSession;
 5 import org.apache.ibatis.session.SqlSessionFactory;
 6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 7 
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 
11 public class session {
12     private  static  SqlSessionFactory sqlSessionFactory;
13 
14     public static  SqlSession getSession(){
15         String resource="SqlMapConfig.xml";
16         try {
17             InputStream inp= Resources.getResourceAsStream(resource);
18             sqlSessionFactory= new SqlSessionFactoryBuilder().build(inp);
19             SqlSession sqlSession=sqlSessionFactory.openSession();
20             return  sqlSession;
21         } catch (Exception e) {
22             e.printStackTrace();
23         }
24         return  null;
25     }
26 }
扫描二维码关注公众号,回复: 58404 查看本文章

猜你喜欢

转载自www.cnblogs.com/evilliu/p/8931655.html