• Mybatis代理


    先看代码

    java代码部分

    package com.test;
    
    import java.io.IOException;
    import java.io.InputStream;
    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 com.test.model.User;
    import com.test.model.UserDao;
    
    public class MybatisTest {
    
        public static void main(String[] args) throws IOException {
    
            //读取配置文件
            InputStream configFile = Resources.getResourceAsStream("mybatis.xml");
    
            //根据配置文件新建一个工作方法
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configFile);
    
            //利用工程方法启动一个session
            SqlSession session = factory.openSession(true);
    
            //传统方式,调用查询方法
    //        String ids = "1";
    //        User user = session.selectOne("user.getUserById",ids);
    
        
         //使用代理方式 UserDao userDao = session.getMapper(UserDao.class); User user = userDao.getUserById("1"); System.out.println(user); session.close();

    Mapper.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <!-- 这里的namespace的值对应的是配置文件的工作空间,一般是已配置文件的相对路径为值,可以保证唯一性 -->
    <mapper namespace="com.test.model.UserDao">
    
        <!-- 这里的id是唯一标识 -->
        <!-- 这里的parameterType的值是入参类型,多参数传递需要使用其它方式,请看多参数传递的文章 -->
        <!-- 这里的resultType是返回值,这里的意思就是放回一个对应的对象 -->
        <!-- 这里的#{}里面的值名称需要和方法中的第一个参数名一致 -->
        <select id="getUserById" parameterType="java.lang.String" resultType="com.test.model.User">
            select * from users where id=#{id}
        </select>
    </mapper>

    UserDao

    package com.test.model;
    
    public interface UserDao {
        User getUserById(String id);
    }

    代码分析:

    session.getMapper(UserDao.class)就是执行了对应的com.test.model.UserDao的类,并执行了里面对应Key的代码,省去了在代码当中需要写入key的烦恼

  • 相关阅读:
    xml/xslt常用转义字符
    用ScriptManager实现Web服务的异步调用
    声明静态方法和实例方法的原则
    http request header 中的host行的作用
    获取客户端数据
    HTTP 处理程序(HttpHandlers)
    display与visibility
    会话管理
    ASP.NET 管道
    HttpContext, HttpRequest, HttpResponse
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/10745811.html
Copyright © 2020-2023  润新知