实时搜索: my type是谁写的

my type是谁写的

289条评论 1097人喜欢 3333次阅读 753人点赞
例如select name from user where user.age>10
返回:

张三
李四
王五

然后我项目中是不存在User这个类的。
我就只是想拿到这么多行的name而已啊。还非得新建对象吗?

我的ResultType应该写什么
然后就是Mapper接口的返回值类型我该写什么

我写的是ResultType=“string”
mapper接口返回类型是List
完全不能用。。 , 求帮忙, 鄙视者一律绕道。 偶是菜鸟没啥好鄙视的。
这是新...

Mybatis使用ResultType如何返回多行数据?: 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性),平台有hadoop

mybatis返回一个int型数组,在xml中应该怎么写: 应该可以,下载个手册看,xml有哪些元素都有介绍的,上面都是例子。记得都可以返回map和list的,我现在手头没有,你还是自己找找哈、学习是主动的:)

springmvc mybatis spring整合中 typealiases写在哪: 看你的mysql当前默认的存储引擎:
mysql> show variables like '%storage_engine%';

你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
mysql> show create table 表名;

mybatis中查询出来的字段(省+市+区) 用别名(area) 可以映射到自定义的javabean里面吗?: 一、概述
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。
在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

二、ResultType
Blog.java
public class Blog {
private int id;
private String title;
private String content;
private String owner;
private List<Comment> comments;
}
其所对应的数据库表中存储有id、title、Content、Owner属性。
<typeAlias alias="Blog" type="com.tiantian.mybatis.model.Blog"/>
<select id="selectBlog" parameterType="int" resultType="Blog">
select * from t_blog where id = #{id}
</select>
MyBatis会自动创建一个ResultMap对象,然后基于查找出来的属性名进行键值对封装,然后再看到返回类型是Blog对象,再从ResultMap中取出与Blog对象对应的键值对进行赋值。

三、ResultMap
当返回类型直接是一个ResultMap的时候也是非常有用的,这主要用在进行复杂联合查询上,因为进行简单查询是没有什么必要的。先看看一个返回类型为ResultMap的简单查询,再看看复杂查询的用法。

①简单查询的写法
<resultMap type="Blog" id="BlogResult">
<id column="id" property="id"/>
<result column="title" property="title"/>
<result column="content" property="content"/>
<result column="owner" property="owner"/>
</resultMap>
<select id="selectBlog" parameterType="int" resultMap="BlogResult">
select * from t_blog where id = #{id}
</select>
select映射中resultMap的值是一个外部resultMap的id,表示返回结果映射到哪一个resultMap上,外部resultMap的type属性表示该resultMap的结果是一个什么样的类型,这里是Blog类型,那么MyBatis就会把它当作一个Blog对象取出。resultMap节点的子节点id是用于标识该对象的id的,而result子节点则是用于标识一些简单属性的,其中的Column属性表示从数据库中查询的属性,Property则表示查询出来的属性对应的值赋给实体对象的哪个属性。简单查询的resultMap的写法就是这样的。

②复杂查询
有一个Comment类,其中有一个Blog的引用,表示是对哪个Blog的Comment,那么在查询Comment的时候把其对应的Blog也要查出来赋给其blog属性。
public class Comment {
private int id;
private String content;
private Date commentDate = new Date();
private Blog blog;
}
<!--来自CommentMapper.xml文件-->
<resultMap type="Comment" id="CommentResult">
<association property="blog" select="selectBlog" column="blog" javaType="Blog"/>
</resultMap>

<select id="selectComment" parameterType="int" resultMap="CommentResult">
select * from t_Comment where id = #{id}
</select>

<select id="selectBlog" parameterType="int" resultType="Blog">
select * from t_Blog where id = #{id}
</select>

先是请求id为selectComment的select映射,然后得到一个id为CommentResult的ResultMap对象,可以看到在对应的resultMap的返回类型是一个Comment对象,其中只有一个association节点,而没有像前面说的简单查询所对应的id、result子节点,但是其仍会把对应的id等属性赋给Comment对象,这就是前面所说的MyBatis拥有自动封装功能,只要提供了返回类型,MyBatis会根据自己的判断来利用查询结果封装对应的对象,所以前面的简单查询中,如果不在resultMap中明确的指出id对应哪个字段,title对应哪个字段,MyBatis也会根据自身的判断来帮封装,MyBatis的自身判断是把查询的field或其对应的别名与返回对象的属性进行比较,如果相匹配且类型也相匹配,MyBatis则会对其进行赋值。在上面对应的resultMap中关联了一个blog属性,其对应的java类型为Blog,在上述的写法中,关联对象是通过子查询来进行关联的,当然也可以直接通过关联查询来进行关联。上面的association子节点中,Property属性表示是resultMap返回类型的哪个关联属性,对于上面的例子就是Comment管理的blog属性;select表示进行哪个select映射来映射对应的关联属性,即会去请求id为select所对应的值的select映射 来查询出其所关联的属性对象;Column表示当前关联对象在id为CommentResult的resultMap中所对应的键值对,该键值对将作为对关联对象子查询的参数,即将把在selectComment中查询出来的blog属性的值作为参数传给进行关联对象blog的子查询selectBlog的参数;javaType表示当前关联对象在JAVA中是什么类型。

上述介绍的是一对一或一对多的情况下,对一对一方的关联的查询。在实际应用中还有一个用的比较多的应用是通过一对一方查出对应的多的一方,在拿出多的一方的时候也同样要把一对一方关联上:在拿出Blog对象时,就把其对应的Comment全部拿出来,在拿出Comment的时候也还是需要把其对应的Blog拿出来,这是在java中通过一次请求就拿出来的。

<!-- 来自BlogMapper.xml文件 -->
<resultMap type="Blog" id="BlogResult">
<id column="id" property="id"/>
<collection property="comments" select="selectCommentsByBlog" column="id" ofType="Comment"></collection>
</resultMap>

<resultMap type="Comment" id="CommentResult">
<association property="blog" javaType="Blog" column="blog" select="selectBlog"/>
</resultMap>

<select id="selectBlog" parameterType="int" resultMap="BlogResult">
select * from t_blog where id = #{id}
</select>

<select id="selectCommentsByBlog" parameterType="int" resultMap="CommentResult">
select * from t_Comment where blog = #{blogId}
</select>

上述请求的入口是id为selectBlog的select映射,返回结果为id为BlogResult的resultMap,id为BlogResult的类型为Blog,其中指定了id的属性和字段,指定id将对MyBatis内部的构造作用非常大。其中关联了一个comments对象,因为一个Blog可以有很多Comment,该comments为一个集合,所以用集合collection进行映射,其中的select还是表示进行哪个子查询来查询对应的comments,column表示把上述查出来的哪个字段值当作参数传给子查询,ofType也是表示返回类型,这里的返回类型是集合内部的类型,之所以用ofType而不是用type是MyBatis内部为了和关联association进行区别。

public void selectCommentsByBlogTest() {
SqlSession session = Util.getSqlSessionFactory().openSession();
CommentMapper commentMapper = session.getMapper(CommentMapper.class);
List<Comment> comments = commentMapper.selectCommentsByBlog(6);
for (Comment comment : comments)
System.out.println(comment);
session.close();
}

public void testSelectOne() {
SqlSession session = Util.getSqlSessionFactory().openSession();
BlogMapper blogMapper = session.getMapper(BlogMapper.class);
Blog blog = blogMapper.selectBlog(6);
List<Comment> comments = blog.getComments();
if (comments != null) {
for (Comment comment : comments)
System.out.println(comment);
}
session.close();
}

The method findViewByid(int) is undefined for the type MySetingActivity: 哥们,其实我也不会

mybatis 传入string参数,parametertype怎样写?:

MyBatis的传入参数parameterType类型分两种:

1. 1. 基本数据类型:int,string,long,Date;

1. 2. 复杂数据类型:类和Map。

如何获取参数中的值:

2.1  基本数据类型:#{参数} 获取参数中的值;

2.2  复杂数据类型:#{属性名}  ,map中则是#{key}。

基本数据类型案例:
<sql id="Base_Column_List" >  
    id, car_dept_name, car_maker_name, icon,car_maker_py,hot_type  
  </sql>  
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >  
    select   
    <include refid="Base_Column_List" />  
    from common_car_make  
    where id = #{id,jdbcType=BIGINT}复杂数据类型案例:<select id="queryCarMakerList" resultMap="BaseResultMap" parameterType="java.util.Map">  
        select  
        <include refid="Base_Column_List" />  
        from common_car_make cm  
        where 1=1  
        <if test="id != null">  
            and  cm.id = #{id,jdbcType=DECIMAL}  
        </if>  
        <if test="carDeptName != null">  
            and  cm.car_dept_name = #{carDeptName,jdbcType=VARCHAR}  
        </if>  
        <if test="carMakerName != null">  
            and  cm.car_maker_name = #{carMakerName,jdbcType=VARCHAR}  
        </if>  
        <if test="hotType != null" >  
           and  cm.hot_type = #{hotType,jdbcType=BIGINT}  
        </if>  
        ORDER BY cm.id  
    </select>

mybatis 配置sql 当返回值为int的时候,resulttype怎么写:

resultType="java.lang.Integer"

Integer如果一条都没有是会返回null的,所以不会报错,而用int的话没有会返回0

MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。

扩展资料:

注意事项

一、若<sql /> 查询语句中配置的是resultType=“实体类/DTO” ,则从mybatis返回的键值对结果集(Map)会直接赋值给该DTO(根据set()/get()方法,因此该DTO属性名要与表字段名一致,若不一致,可再sql查询语句中用as 更换查出来表字段名)中相映射的属性值,而与该mappper.xml文件配置<mapper/>里的<resultMap />无关。

二、若<sql /> 查询语句中配置的是resultMap=“<mapper/>中配置的<resultMap />”,则从mybatis返回的键值对结果集(Map)会根据该<resultMap />配置中(column-property)的相应属性赋值。

mybatis 传入string参数,parametertype怎样写: 众所周知,mybatis的传入参数可以是各种Java的基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值 ,复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或#{map的KeyName}即可获取传入的值,但是如果想传入一个collection怎么办呢?
经查找后发现可以使用mapper配置文件中的foreach语句,借用别人写的文章:
3.7 foreach
对于动态SQL 非常必须的,主是要迭代一个集合,通常是用于IN 条件。List 实例将使用“list”做为键,数组实例以“array” 做为键。
foreach元素是非常强大的,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内。它也允许你指定开放和关闭的字符串,在迭代之间放置分隔符。这个元素是很智能的,它不会偶然地附加多余的分隔符。
注意:你可以传递一个List实例或者数组作为参数对象传给MyBatis。当你这么做的时候,MyBatis会自动将它包装在一个Map中,用名称在作为键。List实例将会以“list”作为键,而数组实例将会以“array”作为键。
这个部分是对关于XML配置文件和XML映射文件的而讨论的。下一部分将详细讨论Java API,所以你可以得到你已经创建的最有效的映射。
3.7.1参数为array示例的写法略3.7.2参数为list示例的写法
接口的方法声明:
Java代码
public List<StudentEntity> getStudentListByClassIds_foreach_list(List<String> classIdList);

动态SQL语句:
Xml代码
<!-- 7.2 foreach(循环List<String>参数) - 作为where中in的条件 -->
<select id="getStudentListByClassIds_foreach_list" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.STUDENT_SEX,
ST.STUDENT_BIRTHDAY,
ST.STUDENT_PHOTO,
ST.CLASS_ID,
ST.PLACE_ID
FROM STUDENT_TBL ST
WHERE ST.CLASS_ID IN
<foreach collection="list" item="classIdList" open="(" separator="," close=")">
#{classIdList}
</foreach>
</select>

测试代码,查询学生中,在20000001、20000002这两个班级的学生:
Java代码
@Test
public void test7_2_foreach() {
ArrayList<String> classIdList = new ArrayList<String>();
classIdList.add("20000001");
classIdList.add("20000002");
List<StudentEntity> list = this.dynamicSqlMapper.getStudentListByClassIds_foreach_list(classIdList);
for (StudentEntity e : list) {
System.out.println(e.toString());
}
}

这个是ItEye上的一篇文章,其中配置文件中的parameterType是可以不配置的,mybatis会自动传入的。当您想传入collection时,并不能直接传入collection对象,要将其先转换为list,然后才能传入。因为mybatis生成SQL语句遍历list时是需要用到get()方法的,而这个方法只在List中才有,Collection里是没有的。以上的配置在Mybitis官方文档中的“动态SQL”也可以找到。

参数示例:
根据班级ID查询教师列表
xml文件

[html] view plaincopy

<select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id}
</select>

java代码

[java] view plaincopy

List<Teacher> tList = teacherMapper.selectTeacher(2);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString());
}
JAVA实体类型参数示例:
[html] view plaincopy

<select id="selectTeacher" parameterType="com.myapp.domain.Teacher" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id}
</select>
[java] view plaincopy

java代码

Teacher queryTeacher=new Teacher();
queryTeacher.setId(2);
List<Teacher> tList = teacherMapper.selectTeacher(queryTeacher);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }
Map参数示例:
[html] view plaincopy

<select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>
[java] view plaincopy

java代码

Map<String,String> map=new HasMap<String,String>();
map.put("id","2");
map.put("sex","男");
List<Teacher> tList = teacherMapper.selectTeacher(map);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }
另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

示例:
接口方法

[java] view plaincopy

public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);

XML文件

[html] view plaincopy

<select id="selectTeacher" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>

测试代码

[java] view plaincopy

List<Teacher> tList = teacherMapper.selectTeacher("2","男");
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString());

  • 18k金为什么这么便宜

    我在长沙京广线200米旁购房一套,火车经过时鸣笛实在扰民,建议火车也象汽车一样城市里禁止鸣笛或少鸣笛。: 火车鸣笛是必须的,代表火车进站或出站,这没有办法 ...

    329条评论 5219人喜欢 3849次阅读 568人点赞
  • 12天几个小时

    京广线以东有多少城市?具体都是什么城市?: 京广线是从北京到广州的铁路,其地位非常重要。经过大城市有北京,石家庄,郑州,武汉,长沙和广州。往东的城市非常多,而且比较富有:哈尔滨,长春,沈阳,天津,大连,济南,青岛,南京,合肥,苏州,无锡,上海,杭州,宁波,温州...

    713条评论 6408人喜欢 5695次阅读 645人点赞
  • dnf属性抗性有哪些

    以北京为起点,经过省会城市最多的铁路干线是(  ) A.京广线 B.贵昆线 C.焦柳线 D.浙赣: 以北京为起点的京广线上的省级行政中心是北京、石家庄、郑州、武汉、长沙、广州六个;贵昆线、焦柳线和浙赣线都不是以北京为起点.故选项A符合题意.故选:A. ...

    384条评论 1139人喜欢 3578次阅读 703人点赞
  • macbook怎么样

    随着石家庄至郑州高速铁路的通车,京广高铁实现全线贯通,京广高铁除以上提及的城市外,经过的省会城市还: 京广高铁全线将经过北京、保定、定州、石家庄、高邑、邢台、邯郸、安阳、鹤壁、新乡、郑州、许昌、漯河、驻马店、信阳、孝感、武汉、咸宁、赤壁、岳阳、汨罗、长沙、株洲、衡山西、衡阳东、耒阳西、郴州、韶关、英德西、清新北、源潭...

    920条评论 4494人喜欢 3014次阅读 721人点赞
  • 2016金马影帝谁评选的

    从衡水客运站到辛集的客车从辛集哪停啊。是不是辛集火车站旁边啊?急。。。。。。。。。。。。: 火车站对面那个到磊头桥,如果是去辛集可以在磊头坐1路公共汽车。不用出站,下了长途车就是。也有到火车站的,但是比较少。 ...

    963条评论 3687人喜欢 3018次阅读 593人点赞
  • 202 304哪个好

    广州火车站(京广线)在哪里: 你出来之后,会有一群的人往左边一直走,跟着大部队走,你跟着去就对了,走200-300米就到了广州火车站,火车站门口就有好几个地铁站,最近的一个地铁站是D2。望能帮到你。 ...

    598条评论 5672人喜欢 6259次阅读 972人点赞
  • nt在多少周检查

    延长百世快递在哪了: 要查询快递公司的地址及联系方式。你可以致电快递公司所在地的查号台。查询一下当地快递公司的电话。然后致电快递公司,查询一下它们的网点分布信息及联系方式就可以了!你也可以上快递公司的官网,进行网点分布及联系方式的查询。 ...

    409条评论 4376人喜欢 6485次阅读 821人点赞
  • 五爱市场在哪

    73503925743788百世快递到哪?: 发往哈尔滨了。 ...

    859条评论 3629人喜欢 2719次阅读 502人点赞