2017.11.22总结
来源:互联网 发布:plc显示屏编程软件 编辑:程序博客网 时间:2024/06/09 15:24
之前学过mybatis,可惜忘得差不多了,现在需要使用,于是复习了一下。遇到一些问题:
环境:mac
IDE:idea
maven项目
问题一:读不到mybatis的配置文件
src/main/java和src/test/java
这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。
我在src/main/java/uestc/下创建了一个conf.xml文件,但是程序
Resources.getResourceAsReader("uestc/config/conf.xml");
始终读不到这个文件,其实就是因为上面引用的这句话:除了*。java其他文件会被忽略掉。而getResourceAsRead貌似是读(暂时理解为这个) 存class文件目录下的东西,因为xml被maven过滤掉了,存class文件的目录中并没有xml。
解决办法:
在pom。xml文件中添加:
<resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> </excludes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources>
目的是让maven不要把。properties和。xml类型的文件过滤掉了。
问题解决。
今天把mybatis中简单的1对1的增删改查熟悉了一下,然后对一对多的情况,看了一下。形如:
User类中还有Post类的List,这种去数据库中拿User的时候需要把Port的集合一起拿出来,所以有下面这个User。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="uestc.model.UserMapper"> <resultMap id="resultUserMap" type="User"> <result property="id" column="user_id"/> <result property="username" column="username"/> <result property="mobile" column="mobile" /> <collection property="posts" ofType="Post" column="useri3223d"> <id property="id" column="post_id" javaType="int" jdbcType="INTEGER"/> <result property="title" column="title" javaType="string" jdbcType="VARCHAR"/> <result property="content" column="content" javaType="string" jdbcType="VARCHAR"/> </collection> </resultMap> <select id="getUser" resultMap="resultUserMap" parameterType="int"> SELECT u.*,p.* FROM user u, post p WHERE u.id=p.userid AND u.id=#{user_id} </select></mapper>
在简单的1对1的情况中select大概像这个样子
<select id="" resultType="" parameterType=""></select>
返回的直接就是一个普通的类 这类里面没有集合
但是上面那个
<select id="getUser" resultMap="resultUserMap" parameterType="int"> SELECT u.*,p.* FROM user u, post p WHERE u.id=p.userid AND u.id=#{user_id} </select>
返回的就是resultUserMap 里面就是User这个类中有集合Post
所以才有了这个:
<resultMap id="resultUserMap" type="User"> <result property="id" column="user_id"/> <result property="username" column="username"/> <result property="mobile" column="mobile" /> <collection property="posts" ofType="Post" column="useri3223d"> <id property="id" column="post_id" javaType="int" jdbcType="INTEGER"/> <result property="title" column="title" javaType="string" jdbcType="VARCHAR"/> <result property="content" column="content" javaType="string" jdbcType="VARCHAR"/> </collection> </resultMap>
里面定义了User的组成,id,username,mobile然后就是collection:posts
这里的posts就是User中的List port ports 然后定义了post中的各个属性。
这个collection中的column是干嘛的不是很清楚。
貌似后面也没有用到。
大概就是这样。
- 2017.11.22总结
- 总结22
- BUG总结(2017.11.11)
- 2017.11.1总结
- 2017.11.1总结
- 2017.11.1总结
- 2017.11.2总结
- 2017.11.2总结
- 2017.11.2总结
- 2017.11.3总结
- 2017.11.3总结
- 2017.11.3 总结
- 2017.11.4总结
- 2017.11.5总结
- 2017.11.5总结
- 2017.11.6总结
- 2017.11.6总结
- 2017.11.7总结
- 学习笔记3
- 助你快速踏入高薪职场——2017面试集锦之WebService
- Noip2017挂惨记暨规划
- 关于 System.out.println
- 大话设计模式读书笔记之观察者模式
- 2017.11.22总结
- img标签去间隙以及src为空时的默认边框
- Codeforces Round #447 (Div. 2)C
- 微信小程序实现九宫格
- Vim用法
- JVM 堆,栈,方法区
- 笔记-2017-1122
- Visual Studio 在Post build Event 调用 signtool
- 82C55控制交通灯