• mybatis--parametertype的参数传递


     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5   <configuration>
     6       <properties resource="db.properties"/>
     7       <settings>
     8           <!-- 设置MyBatis使用log4j日志支持 -->
     9           <setting name="logImpl" value="LOG4J"/>
    10       </settings>
    11       <!-- typeAliases给类型取别名 -->
    12       <typeAliases>
    13           <!-- 给user类取别名 -->
    14           <!-- <typeAlias type="com.bjsxt.pojo.User" alias="u"/> -->
    15           <!-- 别名都是类的名字 -->
    16           <package name="com.bjsxt.pojo"/>
    17       </typeAliases>
    18       <!-- 用于指定使用哪个开发
    19                                 用于指定使用的环境id
    20        -->
    21       <environments default="dev">
    22           <!-- 用于配置开发环境
    23                id:环境的唯一识别码
    24            -->
    25           <environment id="dev">
    26               <!-- 事务管理器
    27                    type:用于设定mybatis采用什么方式管理事务
    28                    JDBC表示和JDBC一样事务的管理方式
    29                -->
    30               <transactionManager type="JDBC"/>
    31               <!-- 数据源/连接池
    32                                                          用于配置链接池和数据库链接的参数
    33                    type:用于设置mybatis是否采用链接池技术
    34                                                         连接池:用来存数据库链接的,减少数据库的频繁开关
    35                    POOLED表示mybatis采用连接池技术                                     
    36                -->
    37               <dataSource type="POOLED">
    38                   <property name="driver" value="${jdbc.driver}"/>
    39                   <property name="url" value="${jdbc.url}"/>
    40                   <property name="username" value="${jdbc.username}"/>
    41                   <property name="password" value="${jdbc.password}"/>
    42               </dataSource>
    43           </environment>
    44       </environments>
    45       <!-- 扫描mapper文件 -->
    46       <!-- 文件的全限制路径要用/ -->
    47       <mappers>
    48           <mapper resource="com/bjsxt/mapper/UserMapper.xml"/>
    49       </mappers>
    50   </configuration>
    <?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">
      <!-- namespa:命名空间,可以随意定义,一般情况下要写全限定路径(包名加类)
           MyBatis管理SQL语句是通过namespace+id来定位的
       -->
    <mapper namespace="com.bjsxt.mapper.UserMapper">
        <!-- select标签用于编写查询语句
             id:sql语句的唯一的标识,类比为方法名
             resultType:用于设定返回结果的类型(全限定路径)
             如果返回结果是集合,要写集合泛型的类型
         -->
        <select id="sellAll" resultType="user">
            select * from t_user
        </select>
        <select id="selOne" resultType="user">
            select * from t_user where id=1
        </select>
        <!-- parameterType,参数类型,用于参数的传递 -->
        <select id="selById" resultType="user" parameterType="int">
            <!-- 
            #{用于使用参数
            index,索引,从0开始
            param+数字,param1,param2,parame3}
             -->
            select * from t_user where id=#{0}
        </select>
        <select id="sel" resultType="user" parameterType="map">
            <!-- 如果参数是对象,可以通过#{属性名}来获取 -->
            <!-- 如果参数是map,可以通过#{key}来获取 -->
            select * from t_user where username=#{username} and password=#{password}
            </select>
    </mapper>
     1 package com.bjsxt.test;
     2 
     3 import java.io.IOException;
     4 import java.util.HashMap;
     5 import java.util.Map;
     6 
     7 import org.apache.ibatis.io.Resources;
     8 import org.apache.ibatis.session.SqlSession;
     9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    10 import org.junit.Test;
    11 
    12 import com.bjsxt.pojo.User;
    13 
    14 public class TestParams {
    15    @Test
    16     public  void selById(){
    17        SqlSession session=null;
    18         try {
    19             session=(SqlSession) new SqlSessionFactoryBuilder()
    20             .build(Resources.getResourceAsStream("mybatis.xml"))
    21             .openSession();
    22             
    23             User user=session.selectOne("com.bjsxt.mapper.UserMapper.selById",2);
    24             System.out.println(user);
    25         } catch (IOException e) {
    26             // TODO Auto-generated catch block
    27             e.printStackTrace();
    28         }
    29             session.close();
    30         
    31     }
    32    
    33    
    34    
    35    @Test
    36     public  void sel(){
    37        SqlSession session=null;
    38         try {
    39             session=(SqlSession) new SqlSessionFactoryBuilder()
    40             .build(Resources.getResourceAsStream("mybatis.xml"))
    41             .openSession();
    42             
    43             /*User u=new User();
    44             u.setUsername("zhangsan");
    45             u.setPassword("123");*/
    46             
    47             
    48             Map<String,String> map =new HashMap<>();
    49             map.put("username", "zhangsan");
    50             map.put("password", "123");
    51             
    52             User user=session.selectOne("com.bjsxt.mapper.UserMapper.sel",map);
    53             System.out.println(user);
    54         } catch (IOException e) {
    55             // TODO Auto-generated catch block
    56             e.printStackTrace();
    57         }
    58             session.close();
    59         
    60     }
    61 }
  • 相关阅读:
    bzoj-4433 小凸玩矩阵(二分图,二分+匈牙利)
    HDU-2255 奔小康赚大钱(二分图、km算法、模板)
    python queue和生产者和消费者模型
    python Events
    python递归锁与信号量
    python 线程锁
    python GIL锁
    python 守护进程
    python 继承式多线程
    python 多线程效果演示
  • 原文地址:https://www.cnblogs.com/wq-9/p/10221887.html
Copyright © 2020-2023  润新知