搜档网
当前位置:搜档网 › mybatis一对一关系映射

mybatis一对一关系映射

mybatis核心文件:
configuratinMapping.xml:
解释每一层目录:
environments:开发环境,id可以有development和work开发和工作当项目发布后,改为work.
environments下面可以集成多个enviroment,id和上面environments对应
事务管理:jdbc
数据源 type=pooled连接池的形式
建立和库字段对应的实体类:
因为mybatis通过java反射来工作,所以,必须有一个无惨的构造方法。
**********************映射文件xml中的目录:***********************8
mapper对应一个接口
mapper的namespace 就是接口的完整路径
select|insert|update|delete id 就是接口中的方法名称
关于在CRUD的时候的语句中:

eg:

insert into user (userName,password) values (#{userName},#{password})

第一个userName和password是和数据库中字段的对应的名字
第二个#{userName},#{password}的参数名字必须和User实体类的属性对应
因为mybatis通过java反射来工作,在根据参数类型进行解析的时候,通过
getXxx来获取参数值的,所以必须对应。


delete from user where id="#{idd}"


参数idd可以使随便的名字,应为他参数的类型不是从实体类进来的,是整形。
所以可以随便去取。

在findAll()的时候,

(基本的复合语句):
select * form classes c,teachers t where c.teacher_id=t.teacher_id and c.c_id=1



classes自己的属性id和name

<==关键的标签association实现关联classes对象里的teacher对象==>

javaTppe作用是告诉框架映射的类型
property是classes类中的属性名:teacher,类型是
Teacher类型,进行链接
teacher 里面的id





2.嵌套查询:(两次查询)
第一次查询classes所有信息,第二次根据第一次查询结果中的teacher信息在teacher 表中查找
没有用resultMap就必须用别名进行
字段列和实体属性的映射
select t_id id ,t_name name form teacher t,where t_id=#{tid}参数由上一次查询字段的结果传入teacher_id




classes自己的属性id和name



teacher_id是取到该字段所对应的值传给select
select引用了第二个查询teacher

property是classes类中的属性名teacher,类型是Teacher类型,进行链接
teacher 里面的id







相关主题