发表于: 2017-03-20 21:41:44

1 1175


今天完成的事情:

学习ER图画法以及mybatis中复杂查询操作的相关内容(运用ResultMap)
明天计划的事情:

学习spring的mybatis
遇到的问题:

在练习mybatis的增删改查操作时,遇到了可以在程序中插入。并且也可以查询到插入的记录,但是在数据库中没有这条记录的情况。

原因是插入过程在缓存中没有提交,

需要将SqlSession openSession(boolean autoCommit)改为sessionFactory.openSession(true),表示默认提交事务。

收获:

以学生选课为例,ER图中学生与课程的关系是多对多(需要多增加一个学生-课程表),任课教师与课程的关系是一对多(将任课教师id设置为课程表的外键)。因此数据库中存放了

学生表(id,student_name)、课程表(id,course_name,teacher_id)、教师表(id,teacher_name),学生选课表(id,student_id,course_id).


利用resultmap过程中需要对其定义id,type(对于java类名)

利用collection和association过程中需要定义<id property="" column=""><result property="" column="">

其中property对应java类属性,column对应数据库字段。

  <resultMap id="UserMap" 

               type="com.xqx.User">

        <constructor>

                       <idArg column="userId" javaType="int"/>

                        <arg column="userName" javaType="String"/>

                        <arg column="corp" javaType="String"/>  

        </constructor>

        <collection property="courses" ofType="com.xqx.Course">

                          <id property="id" column="courseId"/>

                          <result property="courseName" column="courseName"/>

                          <association property="teacher" column="teacher_id" javaType="com.xqx.Teacher">

                                            <id property="id" column="teacherId"/>

                                            <result property="teacherName" column="teacherName"/>

                            </association>

        </collection>

    </resultMap>



返回列表 返回列表
评论

    分享到