请问一下,mybatis的mapper文件的resultMap能被另一个mapper文件引用吗?

如题,mybatis的mapper文件的resultMap能被另一个mapper文件引用吗?

1个回答

可以,需要加上被引用mapper的命名空间

sby_1995
天下_Sby 回复u013154152: 为什么同一个文件能引用,不同文件不能,我加上了名称空间
接近 2 年之前 回复
u013154152
Rains_ 回复guangjuner: 不会用就说不会用,别误导其他人,自己多google看看吧
2 年多之前 回复
guangjuner
guangjuner 然而并不可以
2 年多之前 回复
u013154152
Rains_ 回复飞同小可: resultMap="com.ssm.mapper.xxxMapper.resultMap" 对应的xxxMapper下存在resultMap就可以了
2 年多之前 回复
po__oq
飞同小可 具体是怎么用的呢?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis中实体类和表字段不一致,且配置了resultMap,为什么返回值为null?
在学习mybatis的时候,老师讲实体类和表中名字不一样的时候要配置resultMap完成映射,但是我配置了resultMap之后输出查询结果还是为null。 以下是我的mapper文件 <?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表示命名空间 --> <mapper namespace="com.mapper.SolMapper"> <!-- where后的是表里的名字 #{}里的一定是类里的名字 --> <select id="findByName" parameterType="String" resultMap="mymap"> select * from sol where solname=#{nam} </select> <!-- 映射文件 --> <!-- 表里的名字与列里名字不一样的时候 --> <resultMap id="mymap" type="com.po.Sol" > <!-- id property="id"实体类里的属性 column="id"表里的列/--> <id property="id" column="id"/> <result property="nam" column="solname"/> <result property="sch" column="solschool"/> <result property="hob" column="solhobby"/> </resultMap> </mapper> 下面是我的输出查询test文件 package com.test; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.po.Sol; import com.util.SqlSessionUtil; public class Test2 { public static void main(String []args){ SqlSession sqlSession=SqlSessionUtil.getSqlSession(); sqlSession.selectOne("com.mapper.SolMapper.findByName","小叮当"); System.out.println("查找到"+log.getId()+log.getNam()+log.getSch()+log.getHob()); } } 我在config文件中用了下面方法让我的程序显示运行过程 ``` <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> ``` 运行过程及输出null错误如下 ``` Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. PooledDataSource forcefully closed/removed all connections. Opening JDBC Connection Created connection 372093341. Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@162db19d] ==> Preparing: select * from sol where solname=? ==> Parameters: 小叮当(String) <== Columns: id, solname, solschool, solhobby <== Row: 666, 小叮当, 初中, 化学 <== Total: 1 查找到0nullnullnull ```
mybatis中mapper配置问题
第一次创建,报一下这些错误,求解决!求解决!不知道usermapper哪里出问题 D:\Java\jdk1.8.0_172\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.5\lib\idea_rt.jar=58476:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.5\bin" -Dfile.encoding=UTF-8 -classpath D:\Java\jdk1.8.0_172\jre\lib\charsets.jar;D:\Java\jdk1.8.0_172\jre\lib\deploy.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\cldrdata.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\dnsns.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\jaccess.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\jfxrt.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\localedata.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\nashorn.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\sunec.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\sunmscapi.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk1.8.0_172\jre\lib\ext\zipfs.jar;D:\Java\jdk1.8.0_172\jre\lib\javaws.jar;D:\Java\jdk1.8.0_172\jre\lib\jce.jar;D:\Java\jdk1.8.0_172\jre\lib\jfr.jar;D:\Java\jdk1.8.0_172\jre\lib\jfxswt.jar;D:\Java\jdk1.8.0_172\jre\lib\jsse.jar;D:\Java\jdk1.8.0_172\jre\lib\management-agent.jar;D:\Java\jdk1.8.0_172\jre\lib\plugin.jar;D:\Java\jdk1.8.0_172\jre\lib\resources.jar;D:\Java\jdk1.8.0_172\jre\lib\rt.jar;D:\workplace\webssm\target\classes;D:\mavenRepository\jstl\jstl\1.2\jstl-1.2.jar;D:\mavenRepository\javax\javaee-api\7.0\javaee-api-7.0.jar;D:\mavenRepository\com\sun\mail\javax.mail\1.5.0\javax.mail-1.5.0.jar;D:\mavenRepository\javax\activation\activation\1.1\activation-1.1.jar;D:\mavenRepository\org\mybatis\mybatis\3.3.0\mybatis-3.3.0.jar;D:\mavenRepository\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar;D:\mavenRepository\commons-dbcp\commons-dbcp\1.2.2\commons-dbcp-1.2.2.jar;D:\mavenRepository\commons-pool\commons-pool\1.3\commons-pool-1.3.jar;D:\mavenRepository\com\alibaba\fastjson\1.1.41\fastjson-1.1.41.jar;D:\mavenRepository\log4j\log4j\1.2.17\log4j-1.2.17.jar;D:\mavenRepository\org\slf4j\slf4j-api\1.7.18\slf4j-api-1.7.18.jar;D:\mavenRepository\org\slf4j\slf4j-log4j12\1.7.18\slf4j-log4j12-1.7.18.jar;D:\mavenRepository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;D:\mavenRepository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;D:\mavenRepository\com\fasterxml\jackson\core\jackson-core\2.8.0\jackson-core-2.8.0.jar;D:\mavenRepository\com\fasterxml\jackson\core\jackson-databind\2.8.0\jackson-databind-2.8.0.jar;D:\mavenRepository\com\fasterxml\jackson\core\jackson-annotations\2.8.0\jackson-annotations-2.8.0.jar;D:\mavenRepository\commons-fileupload\commons-fileupload\1.3.1\commons-fileupload-1.3.1.jar;D:\mavenRepository\commons-io\commons-io\2.4\commons-io-2.4.jar;D:\mavenRepository\commons-codec\commons-codec\1.9\commons-codec-1.9.jar com.controller.test Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may exist in com/mapper/UserMapper.java (best guess) ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 43; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "null"。 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:54) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:38) at com.controller.test.main(test.java:25) Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 43; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "null"。 at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:115) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:95) at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:52) ... 2 more Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 43; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "null"。 at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:259) at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:125) at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:78) at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:73) at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.loadXmlResource(MapperAnnotationBuilder.java:166) at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:118) at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72) at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:671) at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:348) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:113) ... 4 more Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 43; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "null"。 <mapper namespace="com.mapper.UserMapper"> <resultMap type="com.pojo.User" id="userResultMap"> <id property="id" colum="id"/> <result property="username" column="username"/> <result property="sex" column="sex"/> <result property="age" column="age"/> <result property="loginname" column="loginname"/> <result property="password" column="password"/> <result property="phone" column="phone"/> <result property="address" column="address"/> <!-- 一对多关联映射--> <collection property="orders" javaType="ArrayList" column="id" ofType="com.pojo.User" select="com.mapper.OrderMapper.selectOrderByUserId" fetchType="lazy"> <id property="id" colum="id"></id> <result property="code" column="code"></result> <result property="total" column="total"></result> </collection> </resultMap> <select id="selectUserById" parameterType="int" resultMap="userResultMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper> package com.controller; import com.mapper.OrderMapper; import com.mapper.UserMapper; import com.pojo.Order; import com.pojo.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.*; //import org.mybatis.spring.SqlSessionFactoryBean; //import org.springframework.aop.scope.ScopedProxyUtils; import java.io.IOException; //import java.io.InputStream; import java.io.Reader; import java.util.List; public class test { public static void main(String[] args) throws IOException { //读取mybatis-config.xml文件 //InputStream inputStream= Resources.getResourceAsStream("mybatis-config.xml"); Reader reader=Resources.getResourceAsReader("mybatis-config.xml"); //初始化mybatis,创建sqlsessionfactory类的实例 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); //创建Session实例 SqlSession session=sqlSessionFactory.openSession(); test t=new test(); t.testSelectUserById(session); t.testSelectOrderById(session); session.commit(); session.close(); } //测试一对多关系 public void testSelectUserById(SqlSession session){ //获得usermapper接口的代理对象 UserMapper um=session.getMapper(UserMapper.class); //调用selectUserById方法 User user=um.selectUserById(1); //查询user的对象信息 System.out.println(user.getId()+""+user.getUsername()); List<Order> orders=user.getOrders(); for (Order order:orders ) { System.out.println(order); } } //测试多对多的关系,查询订单Order的时候级联查询订单的商品 public void testSelectOrderById(SqlSession session){ //获得OrderMapper接口的代理对象 OrderMapper om=session.getMapper(OrderMapper.class); //调用selectOrderById方法 Order order=om.selectOrderById(2); //查看查询到的信息 System.out.println(order.getId()+""+order.getCode()+""+order.getTotal()); User user=order.getUser(); System.out.println(user); } }
Mybatis如何使用注解方式设置resultMap的type属性。
``` @Mapper public interface TableSearchMapper { @Select("call sp_XTBCX(#{tableName,mode=IN,jdbcType=VARCHAR},'','',#{result,mode=OUT,jdbcType=CURSOR,javaType=ResultSet,resultMap=result})") @Results(id = "result") @Options(statementType= StatementType.CALLABLE ) public List<Map<String,Object>> tableSearch(@Param("tableName")String tableName,@Param("result")List<Map<String,Object>> result); } ``` 存储过程是输入表名后输出经过处理的全集,所以列名是不确定的,想写一个动态的方法,通过网上搜索XML形式在配置中将<resultMap>的type属性设置成HashMap可以实现,但是由于现在工程中所有Mapper都是基于注解形式的,但是@Results没有type属性 还有一点疑惑是:TableSearchMapper这个方法,返回值是否可以是void,是将Map参数传进来之后return Map参数还是return 这个方法的返回值?
Mybatis或者MybatisPlus代码如何获取映射文件*Mapper.xml中的resultMap?
代码想通过**对象字段获取**数据库**表的列名**,有没有大神知道怎么获取?
mybatis嵌套查询,一个resultMap中有多个association标签,怎么写sql语句?
# 1. 一下是我的实体类 1. private int id; 1. private Users users;//房屋持有者 1. private Types types;//房屋类型 1. private String title; 1. private String description; 1. private double price; 1. private Date pubdate;//发布日期 1. private int floorage;//建筑面积 1. private int contact;//联系方式 1. private Street street;//房屋所属街区 1. public int getId() { 1. return id; 1. } 1. public void setId(int id) { 1. this.id = id; 1. } 1. public String getTitle() { 1. return title; 1. } 1. public void setTitle(String title) { 1. this.title = title; 1. } 1. public String getDescription() { 1. return description; 1. } 1. public void setDescription(String description) { 1. this.description = description; 1. } 1. public double getPrice() { 1. return price; 1. } 1. public void setPrice(double price) { 1. this.price = price; 1. } 1. public Date getPubdate() { 1. return pubdate; 1. } 1. public void setPubdate(Date pubdate) { 1. this.pubdate = pubdate; 1. } 1. public int getFloorage() { 1. return floorage; 1. } 1. public void setFloorage(int floorage) { 1. this.floorage = floorage; 1. } 1. public int getContact() { 1. return contact; 1. } 1. public void setContact(int contact) { 1. this.contact = contact; 1. } 1. public Users getUsers() { 1. return users; 1. } 1. public void setUsers(Users users) { 1. this.users = users; 1. } 1. public Types getTypes() { 1. return types; 1. } 1. public void setTypes(Types types) { 1. this.types = types; 1. } 1. public Street getStreet() { 1. return street; 1. } 1. public void setStreet(Street street) { 1. this.street = street; 1. } 1. ``` ``` ##下面是对应的xml文件,以及sql语句 ``` <mapper namespace="com.rhit.dao"> <resultMap id="HouseMap" type="com.rhit.entity.House"> <id property="id" column="ID" /> <result property="title" column="TITLE" /> <result property="description" column="DESCRIPTION" /> <result property="price" column="PRICE" /> <result property="pubdate" column="PUBDATE" /> <result property="floorage" column="FLOORAGE" /> <result property="contact" column="CONTACT" /> <association property="types" javaType="Types"> <id property="id" column="ID" /> <result property="name" column="NAME" /> </association> <association property="street" javaType="Street"> <id property="id" column="ID" /> <result property="name" column="NAME" /> </association> <association property="users" javaType="Users"> <id property="id" column="ID" /> <result property="name" column="NAME" /> <result property="password" column="PASSWORD" /> <result property="telphone" column="TELEPHONE" /> <result property="username" column="USERNAME" /> <result property="isadmin" column="ISADMIN" /> </association> </resultMap> <select id="getHouse" resultMap="HouseMap"> select * from house h,users u,types t,street s where u.id=h.user_id and t.id=h.type_id and s.id=h.street_id </select> </mapper> ``` ##下面是调用测试 public class Test { public static void main(String[] args) { SqlSession session=MyBatisUtil.getSession(); List<House> list=session.selectList("getHouse"); System.out.println(list.get(0).getStreet().getName()); System.out.println(list.get(0).getTypes().getName()); System.out.println(list.get(0).getUsers().getName()); } } ##问题 1.测试结果只获取到了user的名字,而types和street的名字跟user的名字一样? 2.一个resultMap中可以有多个association么?这种多对多的关系该怎么处理? 3.一个resultMap可以有多个collection么?怎么写sql语句呢? 求大神么解答,在线等,先谢过!
mybatis中Mapper通用分页PageHelper+自定义sql语句【多表】+排序问题
项目:maven+eclipse+spring4+mybatis 介绍:使用通用mapper做单表查询很分页。 问题:通过mapper传入pages,rows。添加两个查询条件,然后在根据一个条件排序,同时会通过每条数据的id关联查询第二张表获取数据。现在其他的获取都正常,就是排序失效,后台dubug出查询语句没有问题,数据库执行正常,只是使用mapper的page接收数据时排序失效。 详细代码: pojo代码属性包含两个关联实体: @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private Integer orders; @Column private String name; @Column private Integer propertyIndex; @Column private Long productCategory; @Transient private ProductCategory category ; @Transient private List<AttributeOption> options = new ArrayList<>() ; service代码 public Page<Attribute> queryAttributeByPage(String searchValue, Integer page, Integer rows,String order) { PageHelper.startPage(page, rows); if(StringUtils.isBlank(searchValue)){ searchValue = null; }else{ searchValue = "%"+searchValue+"%"; } Page<Attribute> attributes = (Page<Attribute>) this.attributeMapper.queryAttributeByPage(searchValue,order); return attributes; } DAO层代码: public List<Attribute> queryAttributeByPage(@Param("searchValue")String searchValue, @Param("order")String order); Mapper.xml配置: <!-- 配置resultMap --> <resultMap id="attributeResultMap" type="cn.dajean.manage.pojo.Attribute" > <id column="id" property="id" /> <result column="product_category" property="productCategory" jdbcType="BIGINT" /> <association column="product_category" property="category" select="queryProductCategoryById" autoMapping="true" /> <collection column="id" property="options" select="queryOptionsByAttributeId" autoMapping="true" /> </resultMap> <!-- 配置查询options延迟加载 --> <select id="queryProductCategoryById" resultType="cn.dajean.manage.pojo.ProductCategory"> SELECT * FROM tb_product_category WHERE id = #{productCategory} </select> <!-- 配置查询options延迟加载 --> <select id="queryOptionsByAttributeId" resultType="cn.dajean.manage.pojo.AttributeOption"> SELECT * FROM tb_attribute_option WHERE attribute = #{id} </select> <select id="queryAttributeByPage" resultMap="attributeResultMap"> select * from tb_attribute <where> <if test="searchValue != null"> and name like #{searchValue} </if> </where> <if test="order != null"> order by #{order} </if> </select> dubug的sql执行语句: Preparing: **SELECT count(*) FROM tb_attribute ORDER BY ? ** [DEBUG] ==> Parameters: orders desc(String) [DEBUG] <== Total: 1 [DEBUG] ==> Preparing: select * from tb_attribute order by ? limit ?,? [DEBUG] ==> Parameters: orders desc(String), 0(Integer), 20(Integer) [DEBUG] ====> Preparing: SELECT * FROM tb_product_category WHERE id = ? DEBUG] ====> Parameters: 14(Long) [DEBUG] <==== Total: 1 以下关联查询,略 使用结果:可以正常分页,可以正常筛选条件,查询语句输出也正常。就是page接受结果中没有排序?这是为什么??大神来解答一下 。如果输自己写查询语句的就可以面回答了,那个我会写,这是项目需要用的mapper,帮助解决者得悬赏
关于mybatis的resultMap中的疑问
为了联表获取数据,就重写了po类,因为第一次获取不了全部数据,只有最后一次的数据,就再写了一个po类。所用写了两种resultMap。就发现了下面的问题。这是第一种: mapper![图片说明](https://img-ask.csdn.net/upload/201704/21/1492741977_227843.jpg) po类![图片说明](https://img-ask.csdn.net/upload/201704/21/1492741989_518061.jpg) 测试结果![图片说明](https://img-ask.csdn.net/upload/201704/21/1492742002_554421.jpg) 第二种: mapper![图片说明](https://img-ask.csdn.net/upload/201704/21/1492742040_152360.jpg) po类![图片说明](https://img-ask.csdn.net/upload/201704/21/1492742060_1076.jpg) 测试结果![图片说明](https://img-ask.csdn.net/upload/201704/21/1492742073_772940.jpg) 其中:第二种中的company那个属性是把第一种中的cno.cname.caddress,clink.封装起来的。 猜想是不是跟<id/>这个属性有关。 求大神解答下
mybatis,两个select方法公用一个resultMap,一个TypeHandler,下有详细
首先在mapper里面,有这样两个select ![图片说明](https://img-ask.csdn.net/upload/201806/12/1528793144_274980.png) ![图片说明](https://img-ask.csdn.net/upload/201806/12/1528793149_696398.png) 第一个select 选出了一个值叫attribute,第二个select也选出了一个值叫attribute,第一个attribute为1,第二个为2 现在我需要把attribute这个值映射到一个Map字段上面去 下面是resultMap,这两个select都公用一个resultMap ![图片说明](https://img-ask.csdn.net/upload/201806/12/1528793233_212791.png) 在attribute的result中,定义了一个typeHandler 下面是typeHandler ![图片说明](https://img-ask.csdn.net/upload/201806/12/1528793332_819868.png) 很简单的两条语句,放入一个键为type,值为从结果集拿到的值(attribute)的键值对 --------------------------------------- 在我的测试dao中,调用了两个select的方法,然后把他们的map全部输出却发现,所有的键值对都是2, ![图片说明](https://img-ask.csdn.net/upload/201806/12/1528793506_781985.png) 在此之后,我把公用的resultMap变成了两个,除去id不一样,其他都一样,然后得出的结果是正确的,map中,既有1也有2。 ----------------------------------------- 问题:为什么会出现这种情况,应该如何解决?我总不能为每一个select都写一个resultMap吧?尽管他们的映射都是一样的,但是有没有其他的解决方法? 希望大家不吝赐教!
已配置ResultMap,但Mybatis查询结果List长度正确,值为空
使用xml写sql,配置了ResultMap,如下 ``` <mapper namespace="com.example.demo.dao.UsersDao"> <resultMap id="UsersMap" type="com.example.demo.entity.Users"> <result column="id" jdbcType="VARCHAR" property="id" /> <result column="name" jdbcType="VARCHAR" property="name" /> <result column="password" jdbcType="VARCHAR" property="password" /> <result column="mobile" jdbcType="VARCHAR" property="mobile" /> </resultMap> <select id="ListUsers" resultMap="UsersMap"> select * from users; </select> </mapper> ``` 数据库的内容如下![图片说明](https://img-ask.csdn.net/upload/201911/26/1574775107_894520.png) 但是使用@ResponseBody注解执行结果为 ![图片说明](https://img-ask.csdn.net/upload/201911/26/1574775171_396328.png) 长度是对的,有5条数据,但是结果全部为空 请问这是为什么?之前有帖子说是名称对应不上,但我检查了好几遍。请问应该如何修改?
ssm项目springmvc中加入websocke后mybatis不能注入mapper
spring——mybatis文件 ``` <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClassName}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="autoCommitOnClose" value="true"/> <!-- property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/ --> <property name="initialPoolSize" value="${cpool.initialPoolSize}"/> <property name="minPoolSize" value="${cpool.minPoolSize}"/> <property name="maxPoolSize" value="${cpool.maxPoolSize}"/> <property name="maxIdleTime" value="${cpool.maxIdleTime}"/> <property name="acquireIncrement" value="${cpool.acquireIncrement}"/> <property name="idleConnectionTestPeriod" value="${cpool.idleConnectionTestPeriod}"/> <property name="acquireRetryAttempts" value="${cpool.acquireRetryAttempts}"/> <property name="maxStatements" value="${c3p0.maxStatements}"/> <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- mapper和resultmap配置路径 --> <property name="mapperLocations"> <list> <value>classpath:com/yuan/*/entity/*.mapper.xml</value> </list> </property> </bean> <!-- 设置扫描根路径也就是你的mybatis的mapper接口所在包路径; 凡是markerInterface这个接口的子接口都参与到这个扫描, 也就是说所有的mapper接口继承这个SqlMapper。--> <bean name="SqlMapper" class="com.yuan.framework.mapper.SqlMapper"> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.yuan.*.mapper"/> <property name="markerInterface" ref="SqlMapper" /> </bean> <!-- TransactionManager 事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!--启动spring事务注解功能--> <tx:annotation-driven transaction-manager="transactionManager" /> ``` springmvc文件 ``` <mvc:annotation-driven/> <!-- <mvc:resources location="/" mapping="/**"/> --> <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 --> <context:component-scan base-package="com.yuan.*.controller" /> <bean id="myHandler" class="com.yuan.framework.websocket.WebsocketEndPoint"></bean> <websocket:handlers> <websocket:mapping path="/myHandler" handler="myHandler"/> <websocket:handshake-interceptors> <bean class="com.yuan.framework.websocket.HandshakeInterceptor"/> </websocket:handshake-interceptors> </websocket:handlers> <!-- <websocket:handlers > <websocket:mapping path="/sockjs/myHandler" handler="myHandler"/> <websocket:sockjs/> </websocket:handlers> --> <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> <!-- 日期格式转换 --> <property name="webBindingInitializer"> <bean class="com.yuan.framework.util.DateConverter"/> </property> </bean> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" /> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding"> <value>UTF-8</value> </property> <property name="maxUploadSize"> <value>32505856</value><!-- 上传文件大小限制为31M,31*1024*1024 --> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean> ```
MyBatis高级association、collection 的使用
``` <resultMap type="com.mybatis.bean.Customer" id="BaseResultMap"> <id column="cust_id" property="custId"/> <result column="cust_name" property="custName"/> <result column="cust_age" property="custAge"/> <collection property="orderSet" ofType="com.mybatis.bean.Order" column="cust_id" select="com.mybatis.mapper.OrderMapper.getOrderByCustId"> </collection> </resultMap> <select id="getCustomerByCustId" resultMap="BaseResultMap"> select cust_id,cust_name,cust_age from tbl_cust where cust_id=#{custId} </select> <select id="getCustomerAndOrederByCustId" resultMap="BaseResultMap"> select cust_id,cust_name,cust_age from tbl_cust where cust_id=#{custId} </select> ``` 在执行getCustomerByCustId方法时不需要关联查询,不执行resultMap中的collection,在执行getCustomerAndOrederByCustId方法是需要执行关联查询,我知道在getCustomerByCustId方法的查询语句中不查询cust_id可以解决这个问题,但是现在的需求是我要放回的结果中包含cust_id的,不知道这个该怎么处理?求大神指点迷津。。。
mybatis错误:Invalid bound statement (not found)万分感谢!
0.问题说明: 我是一名菜鸟,最近使用spring-mvc ,spring,mybatis框架 这两天出现一个错误一直搞不定,心好累,恳请前辈帮帮忙 1. 异常 ``` org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.misscandy.inter.UserMapper.findAllUsers org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ``` 2.我的配置文件 ``` <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:com/misscandy/mapper/*.xml" /> </bean> <!-- 按指定包和注解扫描 Mapper/DAO --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <property name="basePackage" value="com.misscandy.inter" /> <property name="annotationClass" value="com.misscandy.mapper.Mapper" /> </bean> ``` 3.接口 UserMapper.java ``` package com.misscandy.inter; import java.util.Vector; import com.misscandy.entity.User; import com.misscandy.mapper.Mapper; @Mapper public interface UserMapper { void addUser(User user); //void deleteUser(User user); //void updateDept(User user); User findUserByName(String userName); Vector<User> findAllUsers(); //List<Map<String, Object>> findValue(); //List<DeptVO> findValues(); } ``` 4.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 --> <mapper namespace="com.misscandy.inter.UserMapper"> <!-- @1 resultMap @2 resultMap=""--> <resultMap id="userResultMap" type="com.misscandy.entity.User"> <id property="userId" column="user_id" javaType="Integer" jdbcType="INTEGER" /> <result property="userName" column="user_name" javaType="String" jdbcType="VARCHAR" /> <result property="password" column="password" javaType="String" jdbcType="VARCHAR" /> <result property="sex" column="sex" javaType="Integer" jdbcType="INTEGER" /> <result property="age" column="age" javaType="Integer" jdbcType="INTEGER" /> <result property="type" column="type" javaType="Integer" jdbcType="INTEGER" /> <result property="lastLoginTime" column="last_login_time" javaType="Date" jdbcType="DATE" /> <result property="imageSrc" column="image_src" javaType="String" jdbcType="VARCHAR" /> </resultMap> <select id="findUserByName" parameterType="String" resultMap="userResultMap"> <![CDATA[ select user_id,user_name,image_src,age,sex,type from users where user_name = #{userName} ]]> </select> <select id="findAllUsers" resultMap="userResultMap"> <![CDATA[ select user_id,user_name,age,sex,type from users ]]> </select> <insert id="addUser" parameterType="com.misscandy.entity.User"> <![CDATA[ insert into users (user_name,password,sex,age,type) values (#{userName},#{password},#{sex},#{age},1) ]]> </insert> </mapper> ```
idea用mybatis出现null
idea中配置好了mybatis,可以根据是int类型的进行查找,但是如果是根据String类型的。如:name 查找的结果为null。 配置: <?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.xxx.mapper.StudentMapper"> <resultMap id="stud" type="com.xxx.entity.Student"> <id column="id" property="id"></id> <result column="name" property="name"></result> </resultMap> <select id="selectAll" resultType="Student"> select * from student </select> <!--#{}表示绑定变量,${}表示拼接字符串--> <select id="selectByName" resultMap="stud"> select * from student t where t.name =#{name} </select> </mapper> public void test01() throws IOException { //System.out.println("nihao"); //加载mybatis配置 String xml = "mybatis.xml"; InputStream resourceAsStream = Resources.getResourceAsStream(xml); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sqlSession = build.openSession(); StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); Student student = new Student(); //student.setName("张三"); student.setName("张三"); //student.setName("张三"); Student stu = mapper.selectByName(student); System.out.println(stu); }
mybatis出现了很奇怪的问题
``` ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'card_id' in 'field list' ### The error may exist in com/ershou/mapper/UserMapper.xml ### The error may involve com.ershou.mapper.UserMapper.selectByExample-Inline ### The error occurred while setting parameters ### SQL: select card_id, password, college, grade, sex, status, trueName, image from user WHERE ( card_id = ? and password = ? ) ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'card_id' in 'field list' ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'card_id' in 'field list'] with root cause com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'card_id' in 'field list' ``` 提示我的card_id 数据库不认识,但是我的数据库就是这样定义的啊 我用的也是generator自动生成的代码 CREATE TABLE `user` ( `card_id` varchar(20) NOT NULL, `password` varchar(20) DEFAULT NULL, `college` varchar(200) DEFAULT NULL, `grade` varchar(200) DEFAULT NULL, `sex` int(2) DEFAULT '1', `status` int(2) DEFAULT '1', `trueName` varchar(20) DEFAULT NULL, `image` varchar(50) DEFAULT NULL, PRIMARY KEY (`card_id`) ) 看一下mybatis的XXXMapper.xml文件 <resultMap id="BaseResultMap" type="com.ershou.entity.User" > <id column="card_id" property="cardId" jdbcType="VARCHAR" /> <result column="password" property="password" jdbcType="VARCHAR" /> <result column="college" property="college" jdbcType="VARCHAR" /> <result column="grade" property="grade" jdbcType="VARCHAR" /> <result column="sex" property="sex" jdbcType="INTEGER" /> <result column="status" property="status" jdbcType="INTEGER" /> <result column="trueName" property="truename" jdbcType="VARCHAR" /> <result column="image" property="image" jdbcType="VARCHAR" /> </resultMap> <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.ershou.entity.UserExample" > select <if test="distinct" > distinct </if> <include refid="Base_Column_List" /> from user <if test="_parameter != null" > <include refid="Example_Where_Clause" /> </if> <if test="orderByClause != null" > order by ${orderByClause} </if> </select> 哪里出错了 见鬼了 求大神
使用spring+Mybatis 注解无效
使用spring+Mybatis,使用spring注解,一直报空指针异常,各位麻烦看看 这个spring文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 使用注解式注入 --> <context:annotation-config /> <context:component-scan base-package="com/springMyBatis/system/service/*"/> <context:component-scan base-package="com/springMyBatis/system/dao/*"/> <!-- 配置数据源--> <import resource="application-db.xml" /> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource"> <ref bean="jdbcDataSource" /> </property> <!-- MyBatis 的 XML 配置文件路径 --> <property name="configLocation" value="classpath:com/springMyBatis/Mybatis.xml" /> <!-- 扫描自动生成的xml文件 --><!-- Mybatis XML映射文件 --> <property name="mapperLocations"> <list><!-- Mybatis XML映射文件 --> <value>classpath*:com/springMyBatis/system/mapper/*.xml</value> </list> </property> </bean> <!-- 扫描mybatisGenerator 自动生成的 所有接口--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com/springMyBatis/system/dao"></property> </bean> <!-- 事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="jdbcDataSource" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="annotationClass" value="org.springframework.stereotype.Repository"/> <property name="basePackage" value="com.springMyBatis.system"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> </beans> Mybatis配置文件 <?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> <settings> <!-- 全局映射器启用缓存 --> <setting name="cacheEnabled" value="false" /> <!-- 查询时,关闭关联对象即时加载以提高性能 --> <setting name="lazyLoadingEnabled" value="false" /> <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 --> <setting name="aggressiveLazyLoading" value="false" /> <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> <setting name="multipleResultSetsEnabled" value="true" /> <!-- 允许使用列标签代替列名 --> <setting name="useColumnLabel" value="true" /> <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 --> <!-- <setting name="useGeneratedKeys" value="true" /> --> <!-- 给予被嵌套的resultMap以字段-属性的映射支持 --> <!-- <setting name="autoMappingBehavior" value="FULL" /> --> <!-- 对于批量更新操作缓存SQL以提高性能 --> <setting name="defaultExecutorType" value="BATCH" /> <!-- 数据库超过25000秒仍未响应则超时 --> <!-- <setting name="defaultStatementTimeout" value="25000" /> --> </settings> </configuration> DAO层接口 package com.springMyBatis.system.dao; import java.util.List; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import com.springMyBatis.system.model.User; @Repository @Transactional public interface UserDao { public List<User> selectAllUser(); } mapper.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"> <mapper namespace="com.springMyBatis.system.dao.UserDao"> <select id="selectAllUser" resultType="com.springMyBatis.system.model.User"> select * from user </select> </mapper> service层文件 package com.springMyBatis.system.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.springMyBatis.system.dao.UserDao; import com.springMyBatis.system.model.User; @Service public class Select { @Autowired private UserDao userdao; public List<User> selectAllUser(){ System.out.println(userdao); List<User> list=userdao.selectAllUser(); return list; } userdao一直为空,求大神指导下
mybatis错误: Invalid bound statement (not found) 万分感谢!
0.问题说明: 我是一名菜鸟,最近使用spring-mvc ,spring,mybatis框架 这两天出现一个错误一直搞不定,心好累,恳请前辈帮帮忙 1. 异常 ``` org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.misscandy.inter.UserMapper.findAllUsers org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ``` 2.我的配置文件 ``` <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:com/misscandy/mapper/*.xml" /> </bean> <!-- 按指定包和注解扫描 Mapper/DAO --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <property name="basePackage" value="com.misscandy.inter" /> <property name="annotationClass" value="com.misscandy.mapper.Mapper" /> </bean> ``` 3.接口 UserMapper.java ``` package com.misscandy.inter; import java.util.Vector; import com.misscandy.entity.User; import com.misscandy.mapper.Mapper; @Mapper public interface UserMapper { void addUser(User user); //void deleteUser(User user); //void updateDept(User user); User findUserByName(String userName); Vector<User> findAllUsers(); //List<Map<String, Object>> findValue(); //List<DeptVO> findValues(); } ``` 4.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 --> <mapper namespace="com.misscandy.inter.UserMapper"> <!-- @1 resultMap @2 resultMap=""--> <resultMap id="userResultMap" type="com.misscandy.entity.User"> <id property="userId" column="user_id" javaType="Integer" jdbcType="INTEGER" /> <result property="userName" column="user_name" javaType="String" jdbcType="VARCHAR" /> <result property="password" column="password" javaType="String" jdbcType="VARCHAR" /> <result property="sex" column="sex" javaType="Integer" jdbcType="INTEGER" /> <result property="age" column="age" javaType="Integer" jdbcType="INTEGER" /> <result property="type" column="type" javaType="Integer" jdbcType="INTEGER" /> <result property="lastLoginTime" column="last_login_time" javaType="Date" jdbcType="DATE" /> <result property="imageSrc" column="image_src" javaType="String" jdbcType="VARCHAR" /> </resultMap> <select id="findUserByName" parameterType="String" resultMap="userResultMap"> <![CDATA[ select user_id,user_name,image_src,age,sex,type from users where user_name = #{userName} ]]> </select> <select id="findAllUsers" resultMap="userResultMap"> <![CDATA[ select user_id,user_name,age,sex,type from users ]]> </select> <insert id="addUser" parameterType="com.misscandy.entity.User"> <![CDATA[ insert into users (user_name,password,sex,age,type) values (#{userName},#{password},#{sex},#{age},1) ]]> </insert> </mapper> ```
spring、mybatis整合遇到的问题
单元测试报错: Invalid bound statement (not found): com.cn.mysite .mybatisdemo.dao.IUserDao.queryUserList 下面相关代码和配置文件: 1、先放上结构图: ![图片说明](https://img-ask.csdn.net/upload/201706/13/1497331060_144583.png) 2、spring-mybatis.xml配置文件代码如下: <!-- 自动扫描 --> <context:component-scan base-package="com.cn.mysite.mybatisdemo" /> <!-- jdbc配置文件导入 --> <context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- 连接池配置 --> <property name="driverClassName" value="${database.driverClassName}"/> <property name="url" value="${database.url}"/> <property name="username" value="${database.username}"/> <property name="password" value="${database.password}"/> <!-- 初始化连接大小 --> <property name="initialSize" value="0"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="20"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="20"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="1"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="30000"></property> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath*:com/cn/mysite/mybatisdemo/mapping/*.xml"/> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cn.mysite.mybatisdemo.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> ``` ``` 3、IUserDao接口代码: public interface IUserDao { List<User> queryUserList(); } ``` 4、mapping中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" > <mapper namespace= "com.cn.mysite.mybatisdemo.dao.IUserDao" > <resultMap type ="com.cn.mysite.mybatisdemo.model.User" id="usermap"> <result property ="id" column="id" /> <result property ="name" column="name" /> <result property ="age" column="age" /> <result property ="email" column="email" /> <result property ="address" column="address" /> </resultMap> <!-- 查询所有用户记录 --> <select id ="queryUserList" resultMap= "usermap"> select * from person </select > </mapper> 5、测试类: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"}) public class MybatisTest { @Resource private IUserDao dao; @Test public void test() { dao.queryUserList(); System.out.println("Hello World!"); } } 单元测试就开始报错,请大家帮看一下是哪一步出错了,感觉好奇怪啊,实在查不出问题了
mybatis 查询不出结果,但是打印的SQL 可以执行
我今天发现了一个非常诡异的错误,我在此请求大家集思广益一下. 我的系统采用的是 spring + mybatis ,我在做一个简单的数据查询的时候碰到查询不出来的问题,开始我认为是 resultMap 配置有问题,后台我测试很多遍发现不是这个原因, 最后我发现一个诡异的事情, List<SysUserAccount> resList = sysUserAccountService.selectByParam(sysUserAccount); 这个语句是一个简单的调用service 在调用--> mapper 的简单查询,在我采用 <select>(1) 号 写法的时候 ,可以正常返回 LIST 但是采用 <select>(2) 号 写法的时候,,,LIST = null 也就是说我无法带值进去查询,但是写 where id is not null 是可以查询到, 写 where id = 'A001' LIST 就是 等于NULL 另外一个问题就是,某些SQL语句, JAVA 调用DAO方法的结果为NULL的时,mybatis 的日志打印出来的SQL 我试着放到 数据库工具中运行是有结果,也就代表SQL 肯定没写错. selelect (1) 号 ``` <select id="selectByParam" resultMap="AccountBaseResultMap" parameterType="org.androidpn.server.model.SysUserAccount"> select * from sys_user_account </select> ``` 1号 返回结果正常,LIST收到100多个记录 selelect (2) 号 ``` <select id="selectByParam" resultMap="AccountBaseResultMap" parameterType="org.androidpn.server.model.SysUserAccount"> select * from sys_user_account where ACCOUNT_TYPE = 3 </select> ``` 2号 JAVA LIST 接收到的为一个空LIST ,LIST 中的元素为 null SIZE 为 0. 里面的值我都写死了,排除了传值问题,所有这么写 <select> 3号 ``` <select id="selectByParam" resultMap="AccountBaseResultMap" parameterType="org.androidpn.server.model.SysUserAccount"> select * from sys_user_account where ACCOUNT_TYPE is not null </select> ``` 结果是正常,查询到了所有 TYPE 不为空的 我感觉很奇怪,找了很久都没有找到问题,希望有人能帮帮我.
mybatis Could not find result map
异常如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.unisk.weixin.js.pay.dao.RechargeOrderMapper.RechargeBean at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) at com.sun.proxy.$Proxy5.insert(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:240) at com.unisk.weixin.js.pay.dao.impl.PayOrderMapperImpl.insertPayOrder(PayOrderMapperImpl.java:25) at com.unisk.weixin.js.pay.service.impl.OrderServiceImpl.saveOrder(OrderServiceImpl.java:16) RechargeOrderMapper.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"> <!--这块等于dao接口的实现 namespace必须和接口的类路径一样--> <mapper namespace="com.unisk.weixin.js.pay.dao.RechargeOrderMapper"> <resultMap type="RechargeBean" id="rechargeResult"> <id column="id" property="id"/> </resultMap> <!-- 用来定义可重用的SQL代码段 --> <sql id="recharge_sql"> id,transtype,openid,developeropenid,chargermsisdn,partner,transactionid,tradeno,total_fee,product_fee,discount,par_value,subscribe,appid,status,result,createtime </sql> <select id="selectAll" resultMap="rechargeResult"> select <include refid="recharge_sql"/> from rechargeorder order by createtime desc </select> <insert id="insertRechargeOrder" parameterType="RechargeBean" useGeneratedKeys="true" keyProperty="id"> insert into rechargeorder(transtype,openid,developeropenid,chargermsisdn,partner,transactionid,tradeno,totalfee,productfee,discount,parvalue,subscribe,appid,status,result,cfrom,createtime) values (#{trans_type},#{openid},#{developeropenid},#{charger_msisdn},#{partner},#{transaction_id},#{out_trade_no},#{total_fee},#{product_fee},#{discount},#{par_value},#{issubscribe},#{appid},#{status},#{result},#{from},now()) </insert> <update id="update" parameterType="RechargeBean"> update rechargeorder set status=#{status},result=#{result},cfrom=#{from} where tradeno=#{out_trade_no} and transactionid=#{transaction_id} </update> <delete id="delete" parameterType="int"> delete from rechargeorder where id=#{id} </delete> <select id="findById" parameterType="int" resultMap="RechargeBean"> select <include refid="recharge_sql"/> from rechargeorder where id = #{id} </select> <select id="selectBytradeNo" resultMap="RechargeBean" parameterType="java.util.Map"> select <include refid="recharge_sql"/> from rechargeorder WHERE tradeno=#{tradeNo} and openid=#{openId} </select> </mapper> configuration.xml如下: <typeAliases> <typeAlias type="com.unisk.weixin.js.pay.bean.PayOrder" alias="PayOrder" /> <typeAlias type="com.unisk.weixin.js.pay.bean.RechargeBean" alias="RechargeBean" /> </typeAliases> <mappers> <mapper resource="com/unisk/weixin/js/pay/dao/PayOrderMapper.xml" /> <mapper resource="com/unisk/weixin/js/pay/dao/RechargeOrderMapper.xml" /> </mappers> 实在是找不到那里又问题啊
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
只因接了一个电话,程序员被骗 30 万!
今天想给大家说一个刚刚发生在我身边的一起真实的诈骗经历,我的朋友因此被骗走30万。注:为了保护当事人隐私,部分情节进行了修改。1平安夜突来的电话开始以为就像普通的诈骗一样,想办法让你把钱...
我一个37岁的程序员朋友
周末了,人一旦没有点事情干,心里就瞎想,而且跟几个老男人坐在一起,更容易瞎想,我自己现在也是 30 岁了,也是无时无刻在担心自己的职业生涯,担心丢掉工作没有收入,担心身体机能下降,担心突...
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
立即提问