- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章mybatis使用resultMap获取不到值的解决方案由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
<resultMap type="com.fc.model.Shop" id="employeeMap"> <id column="shop_id" property="shopId"></id> <result column="name" property="name"></result> </resultMap> <!-- 获取店员列表 --> <select id="getEmployeeList" parameterType="java.util.Map" resultMap="employeeMap"> select *, ( 6371 * acos ( cos ( radians( #{latitude} ) ) * cos( radians( s.latitude ) ) * cos( radians( s.longitude ) - radians( #{longitude} ) ) + sin ( radians( #{latitude} ) ) * sin( radians( s.latitude ) ) ) ) as distance from <include refid="table_name"></include> as e join <include refid="table_name_shop"></include> as s on e.shop_id = s.shop_id limit #{offset, jdbcType=INTEGER}, #{limit, jdbcType=INTEGER} </select>
前端获取的接口没有得到distance字段 。
在实体中没有声明distance字段,在实体中声明 。
。
ResultMap和返回值为空的的问题 。
代码块如下:
接口:
package com.lx.dao;import com.lx.pojo.User;public interface UserMapper { User getUserById(int id);}
穿插:
要想使用@Alias注解的话,必须要在mybatis-config.xml配置typeAlias,例如
<typeAliases> <package name="com.lx.pojo"/></typeAliases>
实体类:
package com.lx.pojo;import org.apache.ibatis.type.Alias;@Alias("user")public class User { private int id; private String name; private String pwd; public User() { } public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; }}
resouce目录下的数据库配置文件:
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8username=rootpwd=123456
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <properties resource="db.properties" /><!-- 可以给实体类起别名--><typeAliases> <package name="com.lx.pojo"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${pwd}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com\lx\dao\UserMapper.xml"/> </mappers></configuration>
工具类:获取sqlSession 。
package com.lx.utils;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static{ //使用Mybatis第一步:获取sqlSessionFactory对象 String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } //有了SqlSessionFactory ,可以从中获取SqlSession 的实例 //SqlSession 在其中包含了面向数据库执行 SQL 命令的所有方法 public static SqlSession getSqlSession(){ SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; }}
执行sql语句,帮定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"><!--namespace=绑定一个对应的Dao/Mapper接口--><mapper namespace="com.lx.dao.UserMapper"><select id="getUserById" parameterType="int" resultType="user"> select * from user where id= #{id}</select></mapper>
测试类:
import com.lx.dao.UserMapper;import com.lx.pojo.User;import com.lx.utils.MybatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class test3 { @Test public void userbyid(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.getUserById(1); System.out.println(user); sqlSession.close(); }}
测试结果:
pwd的值为null 。
mybatis会根据这些查询的列名(会将列名转化为小写,数据库不区分大小写) , 去对应的实体类中查找相应列名的set方法设值 , 由于找不到setPassword() , 所以pwd返回null ; 【自动映射】 。
使用结果集映射:ResultMap 。
column是数据库表的列名 , property是对应实体类的属性名 。
<?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"><!--namespace=绑定一个对应的Dao/Mapper接口--><mapper namespace="com.lx.dao.UserMapper"><resultMap id="usermap" type="user"> <!-- id为主键 --> <id column="id" property="id"/> <!-- column是数据库表的列名 , property是对应实体类的属性名 --> <result column="name" property="name"/> <result column="password" property="pwd"/></resultMap> <select id="getUserById" resultMap="usermap"> select * from user where id=#{id} </select><!-- <select id="getUserById" parameterType="int" resultType="user">--><!-- select * from user where id= #{id}--><!-- </select>--></mapper>
测试结果:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/weixin_40918145/article/details/106025392 。
最后此篇关于mybatis使用resultMap获取不到值的解决方案的文章就讲到这里了,如果你想了解更多关于mybatis使用resultMap获取不到值的解决方案的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在 iBatis 中有几个嵌套的 ResultMaps,它们具有完全相同的数据库列名。这会导致歧义,并导致为不同的数据库表检索到不正确的结果。 例如,`
有没有办法在单个查询中多次重用同一个 resultMap。 例如,假设我有一个“foo”结果映射: 有没有办法定义另一个 resultMap 来对不同的列重用上述内容?类似...
我一直在尝试让 iBatis 返回 POJO 列表,如下链接所示: http://www.java2s.com/Code/Java/J2EE/GetListOfObjects.htm 我得到的返回是一
我使用 MyBatis Generator 生成 JavaBean 和 Mapper.xml。 但是 Mapper.xml 与我预期的不同。 Mapper.xml 包含两个 resultMap,Bas
你好 StackOverflowers, 关于 MyBatis resultMap 有一些我不明白的地方。 我正在处理的模型正在更新。我们决定创建一个新的对象图来反射(reflect)我们 futur
我实际上正在测试mybatis。我真的很喜欢,但是,我想更深入,但我在 resultMap 方面遇到了问题。 实际上我只是想从数据库中获取一个计算机对象,它由多个屏幕和一个塔组成(我代码的另一个对象)
我设置了一个 resultMap,其中包含许多结果元素。我希望能够设置一个常量作为结果之一。所以而不是 我希望能够确保该名称将作为字符串“Joe”返回。在理想的情况下,我会更改查询以返回此常量,但不
我的域模型中有一对多关系,我基本上想使用一个 MyBatis select 语句读取 Foos 和一组经过过滤的 Bars Bars 的嵌套选择。 解释一下:我的域模型类看起来或多或少像这样(当然真正
MyBatis 映射问题。 假设我们有一个表 USERS CREATE TABLE USERS( USER_ID int(10) NOT NULL AUTO_INCREMENT, LOGI
有人可以帮助澄清 MyBatis 文档中定义的重命名属性/列吗? MyBatis 文档 文档定义了一个简单的Java类: public class User { private int id;
我在 google 或 stack 上看到这个问题的描述非常奇怪。让我解释。 我在接口(interface)方法的注释中有结果映射。只有在这种特殊情况下我才需要动态查询,这就是我决定在 xml 文件中
有一些代码使用了 Ibatis 2.3,我有一个类 User 和一个 resultMap 如下: public class User { private Integer id; private
Mapper.xml SELECT product.id, product.code, product.descrip
我正在尝试创建一个将填充vehicleVO的结果 map 。我想将几列映射到vehicleDocuments HashMap。我要填充的数据也存在于同一个表中。 public class Vehicl
我在 Java 中使用 MyBatis。我可以在结果映射中使用多个 id 吗? 代码 我的结果 Java 类如下所示: public class MyClass { private int i
我似乎找不到将结果 map 作为 map 获取的方法 我的 sql 是 SELECT CONCAT(SCE_WRK_CTRL_NB, AC_CRR_CDE) as row_id, M
我想重新使用来自不同 *Mapper.xml 文件的特定文件,这些文件都以某种方式读取相同的对象。 我有一个名为 Project 的数据库表,我为它创建了以下 resultMap:
我的项目被 Checkmarx 扫描,所有 Mybatis xml 文件都显示相同的风险:异常处理不当。 报告说每个 resultMap 代码都像这样 可能会抛出预期的异常,应该包裹在 try-cat
我有一个映射器resultMap,它有两个我需要内联选择的集合 这两个集合的查询完全相同,但生成的 map 却截然不同。有没有办法可以将相同的选择与两个不同的 resultMaps 一起使用? 我
我想在 iBatis 查询中为参数映射传递一组字符串,并为结果集返回一个字符串集合。 这可能吗? 示例查询 ... SELECT * FROM some_table t WHERE t.some_co
我是一名优秀的程序员,十分优秀!