关联
基本
- 外键设置
ALTER TABLE student add CONSTRAINT connect_stu FOREIGN KEY(cardid) REFERENCES studentcard(cardid)
一对一
select s.*,c.* from student s inner join studentcard c
on s.cardid = c.cardid
where stuno=
- 业务扩展类
- 核心:用resultType指定类的属性 包含 多表查询的所有字段
- 即创建一个包含两个表字段的类
- 利用resultMap
- 通过属性成员将两个类建立起联系
- 即在Student类里建立一个card字段
- 创建一个ResultMap,resultType设置为该map
<resultMap id="student_info_card" type="student">
<!-- 学生的信息 -->
<id property="stuNo" column="stuNo"/>
<result property="stuAge" column="stuAge"/>
<result property="graName" column="stuName"/>
<!-- 一对一时,对象成员使用association映射;javaType指定该属性的类型 -->
<association property="card" javaType="StudentCard">
<id property="cardId" column="cardId"/>
<result property="cardInfo" column="cardInfo"/>
</association>
</resultMap>
一对多
resultMap
- 一个class里有一个List< Student>
<resultMap id="class_stu_map" type="studentClass">
<id property="classId" column="classID"/>
<result property="className" column="className"/>
<!-- 配置成员属性,一对多,students是一个List<Student> -->
<collection property="students" ofType="student">
<id property="stuNo" column="stuNo"/>
<result property="stuName" column="stuName"/>
</collection>
</resultMap>
<!-- 一对多 -->
<select id="queryClassAndStudents" parameterType="int" resultMap="class_stu_map">
<!-- 查询g1班的班级信息,和g1班的所有学生信息 -->
select c.*,s.* from student s inner join studentclass c
on c.classid = s.classid
where c.classid =
</select>
log4j
基本
- log4j.jar、log4j-core
- 在config中设置
<settings>
<!-- 开启日志,并指定使用的具体日志 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
- resource下log4j.properties
log4j.rootLogger=ERROR,stdout
log4j.logger.mapper=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n