mybatis--parametertype的参数传递

Posted wq9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于mybatis--parametertype的参数传递的主要内容,如果未能解决你的问题,请参考以下文章

mybatis parametertype可以不写吗

mybatis parameterType="实体类” insert

Python中的函数参数:位置参数默认参数可变参数关键字参数和命名关键字参数

Python的位置参数、默认参数、关键字参数、可变参数区别

参数定义的顺序必须是:必选参数默认参数可变参数命名关键字参数和关键字参数。

Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数