zoukankan      html  css  js  c++  java
  • MyBatis sql映射器 Mapper

    入门

      MyBatis基于动态代理机制,让我们无需再编写Dao的实现。

      传统Dao接口,现在名称统一以Mapper结尾,还有我们映射器配置文件要和映射器在同一个包.

       IDeptDao---->DeptMapper.java---DeptMapper.xml(namespace直接写DeptMapper.java的全限定名)

    1.创建个User类(首先得有个数据库中的表是User,并且还有对应的字段)

    public class User {
        private Long id;
        private String name;
    
       get和set和tostring此处省略。。。。(get和set和tostring是要的,太长了没复制 
    }

    2.个上面的类建个接口UserMapper

    import java.util.List;
    /**
    * 查询数据库中所有数据
    * @return
    */
    public interface UserMapper { 
      List
    <User> queryAll();
    }

    3.建个UserMapper.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">
    <!-- orm框架 sql的映射
    namespace:命名空间  namespace路径+ id值
              namespace怎么配置 包名.接口名 + queryAll
    -->
    <mapper namespace="cn.itsource._02mapper.UserMapper">
    <!-- 查询 queryAll()
    resultType 返回类型
    注意下面id的值必须和你接口中的方法名一致,如果有其他方法也要一一对应,否则会报错找不到方法
         下面resultType的值就是你执行了下面sql语句返回的数据类型

    -->
    <select id="queryAll" resultType="User"> select * from t_user </select> 

    </mapper>

    4.写一个测试类进行测试

    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    import util.MyBataisUtil;
    
    import java.util.List;
    
    public class UserImplTest {
    
        @Test
        public void querAll() {
            //MyBataisUtil.MYBATAIS.getSqlSession();通过单例模式封装好sqlSession
            SqlSession sqlSession = MyBataisUtil.MYBATAIS.getSqlSession();
            //sqlSession.getMapper(要动态代理的接口)返回动态代理类
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //用动态代理类来调用查询全部数据的方法
            List<User> users = mapper.queryAll();
            for (User user : users) {
                System.out.println(user);
            }
        }
    }
  • 相关阅读:
    spring给容器中注入组件的几种方式
    Linux多进程
    Linux多进程的应用
    Linux进程通信
    Linux信号
    Linux共享内存
    Linux信号量
    Linux多线程
    Linux线程同步
    Linux调用可执行程序
  • 原文地址:https://www.cnblogs.com/bigbigxiao/p/11946534.html
Copyright © 2011-2022 走看看