最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis查詢結(jié)果返回至實(shí)體類的示例代碼

 更新時(shí)間:2020年07月10日 11:42:05   作者:流云一號(hào)  
這篇文章主要介紹了mybatis查詢結(jié)果返回至實(shí)體類的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

近期,利用mybatis做一個(gè)簡單查詢,先看主要代碼:

Service層:

package com.example1.service;
 
import java.util.List;
 
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.example1.dao.OrderMapper;
import com.example1.pojo.Order;
 
@Service
public class OrderService {
 
 private Logger log = Logger.getLogger(OrderService.class);
 
 @Autowired
 private OrderMapper orderMapper;
 
 public void findOrders() {
 List<Order> orders = orderMapper.findOrders();
 for (Order order : orders) {
  log.info(order.getId() + " : " + order.getName());
 }
 }
}

dao層:

package com.example1.dao;
import java.util.List;
import com.example1.pojo.Order;
public interface OrderMapper {
 public List<Order> findOrders();
}
<?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">
<mapper namespace="com.example1.dao.OrderMapper">
 
 <select id="findOrders" parameterType="String" resultType="java.util.Map">
 SELECT * FROM t_order 
 </select>
</mapper>

Order類:

package com.example1.pojo;
 
public class Order {
 
 private String id;
 private String name;
 public String getId() {
 return id;
 }
 public void setId(String id) {
 this.id = id;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 @Override
 public String toString() {
 return "Order [id=" + id + ", name=" + name + "]";
 }
}

配置妥當(dāng),執(zhí)行,結(jié)果報(bào)錯(cuò)了:

java.lang.ClassCastException: java.util.HashMap cannot be cast to com.example1.pojo.Order
 at com.example1.service.OrderService.findOrders(OrderService.java:26)
 at com.example1.service.OrderService$$FastClassBySpringCGLIB$$b6b2c61a.invoke(<generated>)
 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:717)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)
 at com.example1.service.OrderService$$EnhancerBySpringCGLIB$$e285c4bb.findOrders(<generated>)
 at com.example1.controller.OrderController.findOrders(OrderController.java:22)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
 at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100)
 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
 at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
 at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
 at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
 at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617)
 at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1778)
 at java.lang.Thread.run(Thread.java:745)

可以看出,java.util.HashMap不能直接存儲(chǔ)到具體的實(shí)體類。

解決辦法:

一、dao層通過resultType指定返回類型

<?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">
<mapper namespace="com.example1.dao.OrderMapper">
 
 <select id="findOrders" parameterType="String" resultType="com.example1.pojo.Order">
 SELECT * FROM t_order 
 </select>
</mapper>

二、查詢結(jié)果返回list,然后遍歷list,將map轉(zhuǎn)換成相應(yīng)的java對(duì)象

修改后的Service層:

package com.example1.service;
 
import java.util.List;
import java.util.Map;
 
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.example1.dao.OrderMapper;
import com.example1.pojo.Order;
 
@Service
public class OrderService {
 
 private Logger log = Logger.getLogger(OrderService.class);
 
 @Autowired
 private OrderMapper orderMapper;
 
 public void findOrders() {
 List<Map> orders = orderMapper.findOrders();
 for (Map orderMap : orders) {
  String orderJsonStr = JSONObject.toJSONString(orderMap);
  Order order = (Order) JSONArray.parseObject(orderJsonStr,Order.class);
  log.info(order.getId() + " : " + order.getName());
 }
 }
}

dao層:

package com.example1.dao;
 
import java.util.List;
import java.util.Map;
 
public interface OrderMapper {
 
 public List<Map> findOrders();
}

其中,關(guān)于map轉(zhuǎn)java對(duì)象的方法有好多種,具體可以參考本人另一篇文章:

http://www.fzitv.net/article/190478.htm

以上兩種方法均實(shí)際測試通過。到此這篇關(guān)于mybatis查詢結(jié)果返回至實(shí)體類的示例代碼的文章就介紹到這了,更多相關(guān)mybatis結(jié)果返回實(shí)體類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot創(chuàng)建文件夾失敗的解決

    springboot創(chuàng)建文件夾失敗的解決

    這篇文章主要介紹了springboot創(chuàng)建文件夾失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot深入分析運(yùn)行原理與功能實(shí)現(xiàn)

    SpringBoot深入分析運(yùn)行原理與功能實(shí)現(xiàn)

    我們發(fā)現(xiàn)springBoot程序開發(fā)比spring程序編寫起來容易的多。配置簡潔,依賴關(guān)系簡單,啟動(dòng)運(yùn)行容易。那么結(jié)下了我們我們就要思考一下入門程序中的這些功能是怎么實(shí)現(xiàn)的
    2022-09-09
  • java中的 toString()方法實(shí)例代碼

    java中的 toString()方法實(shí)例代碼

    toString()方法 相信大家都用到過,一般用于以字符串的形式返回對(duì)象的相關(guān)數(shù)據(jù)。這篇文章主要介紹了java中的 toString()方法,需要的朋友可以參考下
    2017-05-05
  • 關(guān)于Spring的@Autowired依賴注入常見錯(cuò)誤的總結(jié)

    關(guān)于Spring的@Autowired依賴注入常見錯(cuò)誤的總結(jié)

    有時(shí)我們會(huì)使用@Autowired自動(dòng)注入,同時(shí)也存在注入到集合、數(shù)組等復(fù)雜類型的場景。這都是方便寫 bug 的場景,本篇文章帶你了解Spring @Autowired依賴注入的坑
    2021-09-09
  • Mybatis日志模塊的適配器模式詳解

    Mybatis日志模塊的適配器模式詳解

    這篇文章主要介紹了Mybatis日志模塊的適配器模式詳解,,mybatis用了適配器模式來兼容這些框架,適配器模式就是通過組合的方式,將需要適配的類轉(zhuǎn)為使用者能夠使用的接口
    2022-08-08
  • Spring Boot產(chǎn)生環(huán)形注入的解決方案

    Spring Boot產(chǎn)生環(huán)形注入的解決方案

    這篇文章主要介紹了Spring Boot產(chǎn)生環(huán)形注入的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • MyBatis-Plus中MetaObjectHandler沒生效完美解決

    MyBatis-Plus中MetaObjectHandler沒生效完美解決

    在進(jìn)行測試時(shí)發(fā)現(xiàn)配置的MyMetaObjectHandler并沒有生效,本文主要介紹了MyBatis-Plus中MetaObjectHandler沒生效完美解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • SpringBoot3+ShardingJDBC5.5.0 讀寫分離配置的實(shí)現(xiàn)

    SpringBoot3+ShardingJDBC5.5.0 讀寫分離配置的實(shí)現(xiàn)

    本文主要介紹了SpringBoot3+ShardingJDBC5.5.0 讀寫分離配置的實(shí)現(xiàn),最新版5.5.0支持SpringBoot3x現(xiàn)分享給大家,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • k8s部署java項(xiàng)目的實(shí)現(xiàn)

    k8s部署java項(xiàng)目的實(shí)現(xiàn)

    本文主要介紹了k8s部署java項(xiàng)目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Springboot 啟動(dòng)之后初始化資源的幾種方法

    Springboot 啟動(dòng)之后初始化資源的幾種方法

    在我們實(shí)際工作中,總會(huì)遇到這樣需求,在項(xiàng)目啟動(dòng)的時(shí)候需要做一些初始化的操作,比如初始化線程池,提前加載好加密證書等,本文主要介紹了Springboot 啟動(dòng)之后初始化資源的幾種方法,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

周至县| 萍乡市| 堆龙德庆县| 海门市| 大石桥市| 新平| 石阡县| 托克托县| 大城县| 犍为县| 台中市| 汤原县| 韶关市| 黄大仙区| 黄浦区| 巴东县| 宜川县| 辽宁省| 铁岭市| 固镇县| 云霄县| 姚安县| 新乐市| 清原| 运城市| 兴城市| 邢台县| 军事| 临漳县| 镇安县| 图木舒克市| 荔浦县| 镇康县| 库车县| 通州区| 遂宁市| 嘉禾县| 樟树市| 磐安县| 扶风县| 南康市|