关于mybatis中懒加载的中问题,拜托各位大神了,我检查了好几遍

这个是maper配置:







select * from table_many

  <select id="findLazyOne" parameterType="java.lang.String"  resultType="tableOne" >
    select * from table_one t where t.m_id=#{value}
  </select>

        这个是调用方法:
        static TableManyMapper mapper=null;
  public static void main(String[] args) throws Exception {

      String resource="mybatis.xml";
      InputStream input=Resources.getResourceAsStream(resource);    
      SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(input);
      SqlSession sqlSession = factory.openSession();
         mapper=sqlSession.getMapper(TableManyMapper.class);

         findMany();

        sqlSession.commit();
}     
     public static void findMany(){ 
        List<TableMany> list= mapper.findMany();
        for (TableMany tableMany : list) {
            System.out.println(tableMany.getM_id()+"::"+tableMany.getM_name());
            System.out.println(".......");
                List<TableOne> oneList=tableMany.getOneList();
                for (TableOne tableOne : oneList) {
                    System.out.println(tableOne.getO_id()+"::"+tableOne.getO_name());
                }

        }
     }

        这个是报错:
        32acceba-7d07-11e7-acb7-14dda920ec0e::多的一方1

.......
Exception in thread "main" org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected.
at org.apache.ibatis.executor.ResultExtractor.extractObjectFromList(ResultExtractor.java:50)
at org.apache.ibatis.executor.loader.ResultLoader.loadResult(ResultLoader.java:71)
at org.apache.ibatis.executor.loader.ResultLoaderMap$LoadPair.load(ResultLoaderMap.java:207)
at org.apache.ibatis.executor.loader.ResultLoaderMap$LoadPair.load(ResultLoaderMap.java:172)
at org.apache.ibatis.executor.loader.ResultLoaderMap.load(ResultLoaderMap.java:80)
at org.apache.ibatis.executor.loader.cglib.CglibProxyFactory$EnhancedResultObjectProxyImpl.intercept(CglibProxyFactory.java:147)
at com.mybatis.pojo.TableMany$$EnhancerByCGLIB$$49d2b6d7.getOneList()
at com.mybatis.test.ManayToOne.findMany(ManayToOne.java:62)
at com.mybatis.test.ManayToOne.main(ManayToOne.java:28)

4个回答

看报错信息是你的方法本来要求查询的语句只能返回一行数据,但是在真正查询的时候出现了两条或更过,所以报错了。看看数据库m_id会不会有重复的?。。。。。。。。是不是楼主代码有部分没贴?

  <select id="findLazyOne" parameterType="java.lang.String"  resultType="tableOne" >
    select * from table_one t where t.m_id=#{value}
  </select>

你居然写*,,,,,很危险,,纠正一下,,开发中尽量不要写 *

(1)不好看出检索的列(2)*留给数据库解析,,影响效率。

你的mapper ,resultType="tableOne" ,,没有上传上来,,

报错:

  Statement returned more than one row, where no more than one was expected.
声明返回的不止一行,其中不超过预期。
JAVA_peakedness
JAVA_peakedness 好的,谢谢你的建议
接近 3 年之前 回复

这个问题主要是sql的问题,跑一下sql看下返回的是否是多条数据,或者你本身就是要查询出多条数据,而接受数据的类型不对.基本上逃脱不了这两种情况.

谢谢给位,问题已经解决

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis中的延迟加载问题,拜托各位大神

这个是报错: 32acceba-7d07-11e7-acb7-14dda920ec0e::多的一方1 ....... Exception in thread "main" org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected. at org.apache.ibatis.executor.ResultExtractor.extractObjectFromList(ResultExtractor.java:50) at org.apache.ibatis.executor.loader.ResultLoader.loadResult(ResultLoader.java:71) at org.apache.ibatis.executor.loader.ResultLoaderMap$LoadPair.load(ResultLoaderMap.java:207) at org.apache.ibatis.executor.loader.ResultLoaderMap$LoadPair.load(ResultLoaderMap.java:172) at org.apache.ibatis.executor.loader.ResultLoaderMap.load(ResultLoaderMap.java:80) at org.apache.ibatis.executor.loader.cglib.CglibProxyFactory$EnhancedResultObjectProxyImpl.intercept(CglibProxyFactory.java:147) at com.mybatis.pojo.TableMany$$EnhancerByCGLIB$$49d2b6d7.getOneList(<generated>) at com.mybatis.test.ManayToOne.findMany(ManayToOne.java:62) at com.mybatis.test.ManayToOne.main(ManayToOne.java:28) 这个是测试代码: static TableManyMapper mapper=null; public static void main(String[] args) throws Exception { String resource="mybatis.xml"; InputStream input=Resources.getResourceAsStream(resource); SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(input); SqlSession sqlSession = factory.openSession(); mapper=sqlSession.getMapper(TableManyMapper.class); findMany(); sqlSession.commit(); } public static void findMany(){ List<TableMany> list= mapper.findMany(); for (TableMany tableMany : list) { System.out.println(tableMany.getM_id()+"::"+tableMany.getM_name()); System.out.println("......."); List<TableOne> oneList=tableMany.getOneList(); for (TableOne tableOne : oneList) { System.out.println(tableOne.getO_id()+"::"+tableOne.getO_name()); } } } 这个是mapper配置: <resultMap type="tableMany" id="manyMap"> <id column="m_id" property="m_id" /> <result column="m_name" property="m_name" /> <collection property="oneList" javaType="tableOne" select="findLazyOne" column="m_id" > </collection> </resultMap> <select id="findMany" resultMap="manyMap" > select * from table_many </select> <select id="findLazyOne" parameterType="java.lang.String" resultType="tableOne" > select * from table_one t where t.m_id=#{value} </select>

springmvc 集成 mybatis 使用延迟加载返回JSON报错500

![图片说明](https://img-ask.csdn.net/upload/201612/11/1481458082_521816.png)

mybatis的延迟加载真的会提高效率吗

延迟加载的本质就是先执行一条简单的sql,按需再去执行另一条sql, 可是,假如查询订单、用户信息,按照延时加载的来弄,就是先查出订单的信息,当getUsers()时再按订单里面的用户id去查用户信息,但是这样子不还是要去数据库查询2次吗, 个人认为,效率上并没有提高啊,而且比不延迟加载还多了一次数据库访问的次数。 ------上面是我个人的理解,不知道是不是我理解错了,希望各位大神能帮帮我!

仅仅只用mybatis框架操作数据库 设置懒加载后报错:创建延时代理出错,空指针异常

如果不设置懒加载,数据能读出来, 设置懒加载后,报错 Cause: org.apache.ibatis.executor.ExecutorException: Error creating lazy proxy. Cause: java.lang.NullPointerException mybatis版本3.46 配置文件 Order <?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.gyf.mapper.OrderMapper"> <!-- ============= 懒加载 ==================--> <resultMap id="orderLazyloadingRslMap" type="orders"> <id column="id" property="id"/> <id column="user_id" property="user_id"></id> <result column="note" property="note"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <!--配置查询--> <association property="user" javaType="com.gyf.model.User" select="com.gyf.mapper.UserMapper.findUserById" column="user_id"/> </resultMap> <select id="findOrderAndUserByLazyloading" resultMap="orderLazyloadingRslMap"> SELECT * FROM orders </select> </mapper> 配置文件 User <?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.gyf.mapper.UserMapper"> <select id="findUserById" parameterType="int" resultType="user"> SELECT * FROM user WHERE id = #{id} </select> </mapper> sqlMapConfig: <?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"/> <!--配置允许懒加载--> <settings> <setting name="lazyLoadingEnabled" value="true"/> </settings> <!--配置别名--> <typeAliases> <!--指定包名,别名就是类名,第一个小写 User 别名就是user--> <package name="com.gyf.model"></package> <package name="com.gyf.vo"></package> </typeAliases> <!-- 配置mybatis的环境信息 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务控制,由mybatis进行管理 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源,采用dbcp连接池 --> <dataSource type="POOLED"> <property name="driver" value="${driverClass}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!--mybatis加载映射文件--> <mappers> <package name="com.gyf.mapper"></package> </mappers> </configuration> 模型: public class Orders { private Integer id; private Integer user_id; private String note;//备注 private String number; private Date createtime;//写意的创建时间 private User user;//定单所属的用户 public User getUser() { return user; } public void setUser(User user) { this.user = user; } ....get 和 set 方法 } public class User implements Serializable { private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String address;// 地址 ....get 和 set 方法 } 测试 public class Demo01 { SqlSession session; @Before public void before() throws IOException { System.out.println("before.....获取session"); // a)读取配置文件; InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml"); //b)通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂。 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); session = sessionFactory.openSession(); } @After public void after(){ session.close(); } /** * 懒加载 * @throws IOException */ @Test public void test10() throws IOException { OrderMapper mapper = session.getMapper(OrderMapper.class); List<Orders> list = mapper.findOrderAndUserByLazyloading(); for (Orders order : list){ System.out.println("订单信息:"); System.out.println(order); System.out.println("订单所属的客户:"); System.out.println(order.getUser()); } } }

springboot整合mybatis时一直加载不到xml中的方法

报错信息如下: ``` org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.user.dao.UserDao.XXX(方法名) ``` 下面是我application.yml的配置: ``` server: port: 8080 spring: mybatis: mapper-locations: classpath:mapper/*.xml datasource: url: jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true username: root password: root driver-class-name: com.mysql.jdbc.Driver ``` 启动类配置: ``` @SpringBootApplication @MapperScan("com.example.user.dao") public class Demo4Application { public static void main(String[] args) { SpringApplication.run(Demo4Application.class, args); } } ``` 项目结构: ``` UserDao.xml文件在resources的mapper下,UserDao接口在com.example.user.dao下 ``` 有没有大神帮忙看看哪里出的问题。直接在UserDao使用注解是可以访问到的,如下 ``` @Select("SELECT * FROM user_t where id= #{id}") @Results({ @Result(column = "id",property = "id"), @Result(column = "user_name",property = "userName"), @Result(column = "password",property = "password"), @Result(column = "age",property = "age") }) User selectByPrimaryKey(Integer id); ``` 但就是访问不到xml文件中的方法,我使用的Idea2018,有没有大神指导指导,谢谢啦

spring3整合mybatis,设置延迟加载

Spring集成Mybatis时,不使用MapperScannerConfigurer,存在一个全局mybatis配置文件,在其中添加配置<settingname="lazyLoadingEnabled"value="true"/> <settingname="aggressiveLazyLoading"value="false"/> 即可实现延迟加载,然而使用Scanner方式时,配置如下 <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mapperLocations" value="classpath:com/hatch/dao/*.xml" /> <property name="typeAliasesPackage" value="com.hatch.entity"></property> </bean> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.hatch.dao"></property> <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property> </bean> 不需要全局配置文件了,又该如何来实现延迟加载?

mybatis 延迟加载出现栈溢出问题

调用下面这个findAll方法 ![图片说明](https://img-ask.csdn.net/upload/201907/08/1562594574_848019.png) 延迟加载调用IAccountDao的findByUid方法 ![图片说明](https://img-ask.csdn.net/upload/201907/08/1562594657_173176.png) 然后我遍历结果,打印输出user对象,User类里有个Account的List属性,如果我的User的toString方法带了accounts就会栈溢出,没有就正常。。。。这是怎么回事。 错误是一直再动态代理创建对象调用方法。。。

关于mybatis延迟加载的问题

我做了一个mybatis的demo里面有两个类:user address,user中存放着一个address,而在数据库中user表中有一个addressid的字段,用于关联address表。 public class User { private int id; private String name; private String password; private int age; private Address address; //get set方法 } public class Address { private int addid; private String addname; private int zipcode; //get set方法 } mybatis配置文件 <configuration> <!-- 延迟加载设置 --> <settings> <setting name="lazyLoadingEnabled" value="true"/> </settings> <!-- 别名 --> <typeAliases> <typeAlias type="com.qshun.model.User" alias="user"/> <typeAlias type="com.qshun.model.Address" alias="address"/> </typeAliases> <!-- 环境参数(数据库连接) --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost/ibatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <!-- 映射文件 --> <mappers> <mapper resource="com/qshun/model/AddressMapper.xml"/> <mapper resource="com/qshun/model/UserMapper.xml"/> </mappers> </configuration> usermapper的实体映射文件 <mapper namespace="com.qshun.mapper.UserMapper"> <resultMap type="user" id="UserResultMap"> <result property="id" column="uid" /> <result property="name" column="uname" /> <result property="password" column="upassword" /> <result property="age" column="uage" /> <association property="address" column="addressid" select="getAddressById" resultMap="AddressResultMap"> </association> </resultMap> <resultMap id="AddressResultMap" type="address"> <result property="addid" column="id"/> <result property="addname" column="addressname"/> <result property="zipcode" column="zipcode"/> </resultMap> <select id="getUserById" resultMap="UserResultMap" parameterType="int"> select uid,uname,upassword,uage,addressid from user where uid=#{id} </select> <select id="getAddressById" resultMap="AddressResultMap"> select addid, addname, zipcode from addr where addid =#{addressid} </select> </mapper> 测试类 private static SqlSession session = null; private static SqlSessionFactory sqlSessionFactory = null; static { try { Reader reader = Resources.getResourceAsReader("MybatisConfig.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); session = sqlSessionFactory.openSession(true); reader.close(); } catch (IOException e) { throw new RuntimeException("=========" + e, e); } } public static void main(String[] args) { UserMapper mapper=session.getMapper(UserMapper.class); User u=mapper.getUserById(1);//理论上讲在执行此操作的时候,不会将address对象查询出来 System.out.println(u.getName()); System.out.println("================"); System.out.println(u.getAddress().getAddname());//此时address才会被执行查询 //但是事实上在执行mapper.getUserById(1)的时候,就执行了address对象的查询,延迟加载没有起效 session.close(); } 另附建表语句 CREATE TABLE `ibatis`.`add` ( `addid` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `addname` VARCHAR(45), `zipcode` VARCHAR(45), PRIMARY KEY (`addid`) ) ENGINE = InnoDB; CREATE TABLE `ibatis`.`user` ( `uid` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `uname` VARCHAR(45), `upassword` VARCHAR(45), `uage` VARCHAR(45), `addressid` VARCHAR(45), PRIMARY KEY (`uid`) ) ENGINE = InnoDB; 请各位牛人,帮忙解答一下,不胜感激 :D

关于mybatis中mysql查询语句的问题

现在我要做一个网页的搜索功能,用的是POSITION函数进行模糊查询+REPLACE函数去除所有查询内容的空格,但是我发现了一个问题,就是比如我要查询 springboot,但是如果标题中含有的是:spring boot(中间带一个空格),结果就并不会被查询出来,请问怎么用mysql语句来查询字段中带有空格的语句(比如我输入的是spring,能查询到字段中含有比如s pring, sp ing, spi ng,这种所有的结果)

关于MyBatis中的缓存问题

最近在学MyBatis,在百度文库中看到关于MyBatis的缓存中有这么个例子: <cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/> 然后注解中写到:该配置创建了一个FIFO缓存,并每隔60秒刷新,存取512个结果对象或列表的引用,而且返回的对象为只读,因此不同线程中的调用者修改他们会导致冲突。 以下为我的疑问: 既然该配置为只读,不同线程中的调用者还如何去修改他们?

关于mybatis中sql语句强制转换值类型的问题

请问各位图中的sql语句,在mabatis中应该如何实现 ![图片说明](https://img-ask.csdn.net/upload/201611/23/1479886612_232882.png) 上图中插入publicKey这条数据时,在值前面加了个x,用来把值转换成16进制,数据库中图如下所示 ![图片说明](https://img-ask.csdn.net/upload/201611/23/1479886942_552154.png) 使用sql语句插入,publickey值如图所示为乱码显示,使用mybatis功能插入时则没有进行转换,现求问各位巨巨如何在mybatis中实现值转换。。。

关于在MyBatis中时间比较的问题

在MySQL数据库中字段是TimeStamp类型的,在MyBatis的Mapper中传入参数是java.util.Date类型的,怎么实现日期的比较?我试过直接用大于大小比较不对,都转化为unix时间戳再比较也不对,最后把传入参数改为日期格式的String比较然后对了。

mybatis中的类求大神解决

哪位职业大神能给我说说mybatis 中的daosupport 和temporate还有和hibernate的区别

懒加载导致JSON无法序列化的问题

STRUTS2 result type json 会报错无法访问代理对象,如果注解了"excludeProperties",".*hibernateLazyInitializer",返回的JSON序列不仅得不到懒加载的数据并且还会返回很多无用的对象. 我现在用的方法是把需要的数据在业务层写入VO里面,返回序列化的VO,不过这样一来如果一个对象属性很多会写很多GET\SET. 请问有其他更好的方法吗?

mybatis 中 对象中enum属性问题 和其它类型处理不一样

mybatis 中 对象中enum属性问题 和其它类型处理不一样

Springmvc+mybatis,mybatis配置延迟加载时,json序列化异常

mybatis 配置 \<resultMap id="BaseResultMap" type="com.entity.Users"> \<id column="id" jdbcType="INTEGER" property="id" /> \<result column="dept_id" jdbcType="INTEGER" property="deptId" /> \<result column="user_name" jdbcType="VARCHAR" property="userName" /> \<result column="mobile" jdbcType="VARCHAR" property="mobile" /> \<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> \<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> \<association property="depts" column="dept_id" select="findDeptsById" fetchType="lazy"/> \</resultMap> 用的是 com.alibaba.fastjson.JSONObject; @RequestMapping(value = "/list.json") @ResponseBody public JSONObject list(HttpServletRequest request){ //do ...... } 查出User集合如果配置了fetchType="lazy” 会报异常,不配的话正常序列号成json 异常信息 HTTP Status 500 - Could not write content: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: com.alibaba.fastjson.JSONObject["data"]->java.util.ArrayList[0]->com.entity.Users_$$_jvst1e4_0["handler"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: com.alibaba.fastjson.JSONObject["data"]->java.util.ArrayList[0]->com.entity.Users_$$_jvst1e4_0["handler"]) org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:274) org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:100) org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:232) org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:173) org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:130) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:69) com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:32) com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:656) com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:675) com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18) com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:560) com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:469) com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:29) com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:253) com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1384) com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:889) org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:267) org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:100) org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:232) org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:173) org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:130) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

关于mybatis的动态sql问题

就是在mybatis中我想写一条sql查询两种列表 想通过参数控制,想问一下查询的字段可不可以通过前台传入的参数进行if标签判断如: ``` select <if test="timeState !=null and timeState='month'"> to_char(trunc(co.CREATE_TIME),'yyyy-mm-dd') as createTime, <if test="timeState !=null and timeState='year'"> to_char(trunc(co.CREATE_TIME),'yyyy-mm') as createTime, </if> ``` 这样行吗?我现在写他是报,每个查询块只允许有一个子句

关于项目中使用Mybatis的问题

在项目中mybatis该怎么用,查询结果集和实体的映射如何做到清晰,现在用的就是一个实体类可能对应多个查询结果集,结果集的字段都放在一个实体类中,不管是结果集还是查询参数,感觉这样用代码显示的很凌乱,有没有好的思路或用法呢,求大牛们 指教!!

mybatis缓存没有及时更新的问题

mybatis缓存没有及时更新的问题 权限改变mybatis缓存更新ssm整合web项目时,用户a登陆系统,查询到的权限a1(这时他查询到的权限保存到了 缓存中),同时,用户b登陆系统,并对用户a的权限做出了修改(或者手动的去数据库修 改了用户a的权限),此时用户a的权限在数据空中发生了变化,但是查询缓存中并没有 变化。用户a在在系统中的权限没有得到及时的更新。 请问大神们,如何解决这个问题?????

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

立即提问
相关内容推荐