mybaties复习笔记
来源:互联网 发布:cms色彩管理系统 编辑:程序博客网 时间:2024/06/18 17:09
Mybatis
1. 什么是mybatis?
特点难度中,速度中
是apache 中的一个开源项目(ibatis)改进
2. 需要另个配置文件,mybatis.xml,和一个实体映射文件
和hibernate一样,mybatis.xml 配置数据库的连接,实体映射文件也包括里面,数据库的具体配置也可以放在单独一个配置文件中。
唯一的不同的是,实体映射文件,不仅是实体映射文件,还是配置sql文件,没有表名的配置,而是在配置sql语句中找到
3. 如果sql语句中跟参数的话,如果是一个实体,则跟这类的类路径,则配置sql语句时写#{属性值}
4. 分页查询
Mysql
Limit
Oracle
Select xx.*
From(
Select rownum id,emp.*
From emp
Where name=’xx’
And rownum<4
)xx
Where id>0
5. 动态sql
<selectid="selectPageListUseDyc"parameterType="page"resultMap="supplierResultMap">
select * from supplier
<where>
<if test="paramEntity.supName!=null">and sup_name like#{paramEntity.supName}</if>
<if test="paramEntity.supAddress!=null">and sup_address like#{paramEntity.supAddress}</if>
</where>
limit#{start},#{rows}
</select>
6. mybatis开发步骤
导入jar包 mybatis包 数据库包
实体映射关系配置文件,mybatis配置文件
7. 一对一映射
实体 两方都包括
其中一方有个外键
例如
Public Student(){
private Integer id;
private String name;
privateCard card; }
Public Card(){
private Integer id;
private String name;
}
配置文件
<mappernamespace="studentNamespace">
<resultMap type="cn.itcast.javaee.mybatis.one2one.Student"id="studentMap">
<id property="id"column="id"/>
<result property="name" column="name"/>
<associationproperty="card"resultMap="cardNamespace.cardMap"/>
</resultMap>
<select id="findById" parameterType="int"resultMap="studentMap">
select s.id,s.name,c.id,c.num
from students s inner join cards c
on s.cid = c.id
and s.id = #{id}
</select>
</mapper>
8. 一对多映射
同上
查询那些字段,看那个实体包括这个字段,就在那个实体配置文件中配置,写sql,如果实体中没有这个字段,需要引用其它类
9. 多对多映射
同上
分成三个表去实现,两个一对多关系
10.配置文件的详解
<mappernamespace="cn.itcast.javaee.mybatis.app09.Student">
<resultMaptype="cn.itcast.javaee.mybatis.app09.Student"id="studentMap">
<id property="id"column="id"/>
<result property="name"column="name"/>
<result property="sal"column="sal"/>
</resultMap>
<!-- 增加学生 -->
<insert id="add"parameterType="cn.itcast.javaee.mybatis.app09.Student">
insert into students(id,name,sal)values(#{id},#{name},#{sal})
</insert>
<!-- 根据ID查询学生
如果参数不是一个实体的话,只是一个普通变量,例如:int,double,String
这里的#{中间的变量名可以随便写},不过提倡就用方法的形参
-->
<select id="findById"parameterType="int"resultType="cn.itcast.javaee.mybatis.app09.Student">
select id,name,sal from students whereid = #{id}
</select>
<!-- 查询所有学生
理论上resultType要写List<Student>
但这里只需书写List中的类型即可,即只需书写Student的全路径名
-->
<select id="findAll"resultType="cn.itcast.javaee.mybatis.app09.Student">
select id,name,sal from students
</select>
<!-- 更新学生 -->
<update id="update"parameterType="cn.itcast.javaee.mybatis.app09.Student">
update students setname=#{name},sal=#{sal} where id=#{id}
</update>
<!-- 删除学生 -->
<delete id="delete"parameterType="cn.itcast.javaee.mybatis.app09.Student">
delete from students where id = #{id}
</delete>
<!--
<insert id="delete"parameterType="cn.itcast.javaee.mybatis.app09.Student">
delete from students where id = #{id}
</insert>
-->
<!--
注意:这个insert/update/delete标签只是一个模板,在做操作时,其实是以SQL语句为核心的
即在做增/删/时,insert/update/delete标签可通用,
但做查询时只能用select标签
我们提倡什么操作就用什么标签
-->
</mapper>
- mybaties复习笔记
- Mybaties学习笔记
- mybaties
- mybaties
- MyBaties
- 数据库编程(JDBC mybaties hibernate)笔记
- mybaties+Spring mvc学习之路笔记
- maven-mybaties-generator学习笔记整理
- 复习笔记
- 复习笔记
- Spring+SpringMVC+MyBaties学习笔记(一)环境搭建
- 【复习笔记】C++复习笔记一
- Mybaties 心得
- mybaties错误
- mybaties 错误
- mybaties配置文件
- mybaties配置文件
- mybaties入门
- Java中的事务——JDBC事务和JTA事务
- C++静态成员函数设计
- ZooKeeper 安装配置
- 简单的JDBC与mysql增删改查
- convolution卷积
- mybaties复习笔记
- angular ui_angular 模板 汇总整理了一些angular ui
- 字符串居中打印
- Java中的事务——全局事务与本地事务
- 刚毕业的大学生
- 每天有7000万人失眠?人工智能要来帮帮你! | 研究
- 二叉树的递归与非递归遍历
- Codeforces 892B Wrath 【差分】
- 柯洁终结神秘AI棋手41连胜 表示信心大增今夜未眠 | 行业