请问一下,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或者MybatisPlus代码如何获取映射文件*Mapper.xml中的resultMap?
代码想通过**对象字段获取**数据库**表的列名**,有没有大神知道怎么获取?
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嵌套查询,一个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/>这个属性有关。 求大神解答下
已配置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条数据,但是结果全部为空 请问这是为什么?之前有帖子说是名称对应不上,但我检查了好几遍。请问应该如何修改?
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吧?尽管他们的映射都是一样的,但是有没有其他的解决方法? 希望大家不吝赐教!
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的,不知道这个该怎么处理?求大神指点迷津。。。
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错误: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> ```
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.cqgcxy.ols.mapper.UserMapper.userRegister?
Invalid bound statement (not found) 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"> ``` <mapper namespace="com.cqgcxy.ols.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.cqgcxy.ols.entity.User"> <id column="id" property="id" /> <result column="Accounts" property="accounts" /> <result column="Password" property="password" /> <result column="Name" property="name" /> <result column="Sex" property="sex" /> <result column="Phone" property="phone" /> <result column="Email" property="email" /> </resultMap> <!--用户注册--> <insert id="userRegister" parameterType="com.cqgcxy.ols.entity.User"> ``` insert into user(id,Accounts,Password,Name,Sex,Phone,Email) values(default,#{accounts},#{password},#{name},#{sex},#{phone},#{email}) </insert> <!--用户登录--> <select id="userLogin" resultMap="BaseResultMap"> select * from user where Accounts=#{accounts} and Password=#{password} </select> </mapper> UserMapper.java文件 @Mapper @Repository public interface UserMapper { int userRegister(User user); User userLogin (@Param("accounts") String accounts, @Param("password") String password); } UserServiceImpl.java文件 @Service public class UserServiceImpl implements UserService { @Autowired UserMapper userMapper; /** * 用户注册 * @param user * @return */ @Override public int userRegister(User user) { user.setPassword((MD5Util.getMD5String(user.getPassword()))); int result = userMapper.userRegister(user); return result; } 测试: @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class ServiceTest { @Autowired UserService userService; @Test public void test(){ User user = new User(); user.setAccounts("13456"); user.setPassword("123456"); int i = userService.userRegister(user); System.out.println(i); } } 然后就包找不到那个文件 输出文件里也有xml文件![图片说明](https://img-ask.csdn.net/upload/201910/28/1572243711_199641.png)
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> ```
这个错在那啊??????
1.网上的都试了 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.bjsxt.mapper.UsersMapper.selectUsersAll] with root cause UsersMapper.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.bjsxt.mapper"> <resultMap id="BaseResultMap" type=" com.bjsxt.pojo.Users"> <result column="id" property="id"></result> <result column="name" property="name"></result> <result column="age" property="age"></result> </resultMap> <!-- <insert id="insertUser" parameterType="com.bjsxt.pojo.Users">--> <!-- insert into users(id,name,age,password) values(#{id},#{name},#{age},#{password})--> <!-- </insert>--> <select id="selectUsersAll" resultMap="BaseResultMap"> select * from user </select> </mapper> ``` UserMapper.java ``` package com.bjsxt.mapper; import com.bjsxt.pojo.Users; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface UsersMapper { void insertUser(Users users); List<Users> selectUsersAll(); } ``` ![图片说明](https://img-ask.csdn.net/upload/201910/31/1572513936_308886.png)
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 不为空的 我感觉很奇怪,找了很久都没有找到问题,希望有人能帮帮我.
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱  极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件,   选择安装到U盘(按照操作无需更改) 三、重启进入pe系统   1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12)     选择需要启
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Nginx 软件层面加强Nginx性能优化的面试问答和解决方案
Nginx 软件层面加强Nginx性能优化的面试问答和解决方案 去年我去爱卡汽车面试PHP,一轮和二轮面的都不错,在三轮面到Nginx的时候很多问题当时不知道怎么回答,确实没有深入学习过,花了一段时间的学习,终于能解答Nginx高性能优化的问题了,10月24号为了获得程序员勋章,发布了半个优化笔记,浏览到了1000+,受到这个鼓舞,我抽时间在仔细整理下关于Nginx性能优化的问题,我们从软件说起。...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
11月19日科技资讯|华为明日发布鸿蒙整体战略;京东宣告全面向技术转型;Kotlin 1.3.60 发布
「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Style 的人工版音频哟。 一分钟速览新闻点! 6G 专家组成员:速率是 5G 的 10 至 100 倍,预计 2030 年商用 雷军:很多人多次劝我放弃WPS,能坚持下来并不是纯粹的商业决定 ...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
化繁为简 - 腾讯计费高一致TDXA的实践之路
导语:腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,在如此庞大的业务体量下,腾讯计费要支撑业务的快速增长,同时还要保证每笔交易不错账。采用最终一致性或离线补...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
@程序员,如何花式构建线程?
作者 |曾建责编 | 郭芮出品 | CSDN(ID:CSDNnews)在项目和业务的开发中,我们难免要经常使用线程来进行业务处理,使用线程可以保证我们的业务在相互处理之间可以保证原子性...
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
强烈推荐10本程序员在家读的书
很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mk
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
在第2章节中,我们介绍了如何通过Spring Boot来实现HTTP接口,以及围绕HTTP接口相关的单元测试、文档生成等实用技能。但是,这些内容还不足以帮助我们构建一个动态应用的服务端程序。不论我们是要做App、小程序、还是传统的Web站点,对于用户的信息、相关业务的内容,通常都需要对其进行存储,而不是像第2章节中那样,把用户信息存储在内存中(重启就丢了!)。 对于信息的存储,现在已经有非常非常多...
基于Python的人脸自动戴口罩系统
目录 1、项目背景 2、页面设计 3、器官识别 4、退出系统 1、项目背景 2019年新型冠状病毒感染的肺炎疫情发生以来,牵动人心,举国哀痛,口罩、酒精、消毒液奇货可居。 抢不到口罩,怎么办?作为技术人今天分享如何使用Python实现自动戴口罩系统,来安慰自己,系统效果如下所示: 本系统的实现原理是借助 Dlib模块的Landmark人脸68个关键点检测库轻松识别出人脸五官
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
立即提问