mybatis 查询数据库返回值某字段是 List 该怎么搞?

如题所述

解决方法:如果确认是单条数据,可以直接 Object? ***(**); 。没有封装成对象时,默认返回的是List<Map<字段名称String,列值Object>>这样的数据。Dao接口:
List<Map<String,Object>> list(Integer id);
SQL:
<select id="list" parameterType="Integer" resultType="Map">。

拓展:

1、MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(sDAO)。

2、MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-09

使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

方法:在mapper中指定keyProperty属性。

Xml代码  

    <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">  

    insert into user(userName,password,comment)  

    values(#{userName},#{password},#{comment})  

    </insert>  

    如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。

    User.java

    Java代码  

    public class User {  

    private int userId;  

    private String userName;  

    private String password;  

    private String comment;  

    //setter and getter  

    }  

    UserDao.java

    Java代码  

    public interface UserDao {  

    public int insertAndGetId(User user);  

    }  

    测试:

    Java代码  

    User user = new User();  

    user.setUserName("chenzhou");  

    user.setPassword("xxxx");  

    user.setComment("测试插入数据返回主键功能");  

    System.out.println("插入前主键为:"+user.getUserId());  

    userDao.insertAndGetId(user);//插入操作  

    System.out.println("插入后主键为:"+user.getUserId());  

相似回答