Mybatis-关联、log4j

关联

基本

  1. 外键设置
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=#{stuNo}
  1. 业务扩展类
    • 核心:用resultType指定类的属性 包含 多表查询的所有字段
    • 即创建一个包含两个表字段的类
  2. 利用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

  1. 一个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 = #{calssId}
</select>

log4j

基本

  1. log4j.jar、log4j-core
  2. 在config中设置
<settings>
    <!-- 开启日志,并指定使用的具体日志 -->
    <setting name="logImpl" value="LOG4J"/>
</settings>
  1. resource下log4j.properties
# 日志级别:DEBUG<INFO<WARN<ERROR
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值