Mybatis入门.docx

上传人:b****6 文档编号:3030678 上传时间:2022-11-17 格式:DOCX 页数:8 大小:525.57KB
下载 相关 举报
Mybatis入门.docx_第1页
第1页 / 共8页
Mybatis入门.docx_第2页
第2页 / 共8页
Mybatis入门.docx_第3页
第3页 / 共8页
Mybatis入门.docx_第4页
第4页 / 共8页
Mybatis入门.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

Mybatis入门.docx

《Mybatis入门.docx》由会员分享,可在线阅读,更多相关《Mybatis入门.docx(8页珍藏版)》请在冰豆网上搜索。

Mybatis入门.docx

Mybatis入门

Mybatis入门

1.框架介绍

2.Mybatis介绍

3.Mybatis环境安装

下载需要的包如下图:

下载mysql的驱动包:

mysql-connector-java-5.1.26-bin.jar。

1.

2.

3.

3.1.开发步骤

Ø新建一个javaproject(非webprojcect)。

Ø把mybatis和mysql的jar包导入到自己的project里。

Ø建立dao包和bean包

Ø在java里根据数据库中的表撰写javabean。

放在bean包里,最好建的javabean是业务名+Bean名称,如:

StudentInfoBean。

Ø在src下建立conf文件夹,存放所有的配置文件和映射文件,便于管理。

(这是根据个人偏好)

Ø在自己的project里编写代码实现数据crud

3.2.Java代码实现顺序

这三行代码顺序如上,是必须的,也可以写成一个公共方法来处理类似的需求。

4.基于映射文件的curd

ØSqlSession调用的方法:

update,selectList,insert,delete里第一个参数是映射文件的命名空间+标签的ID。

Ø如果Javabean中的属性名和数据库中字段名不一值,要使用resultMap标签,如下图:

此时,在select标签中不能用resultType属性,要用到resultMap属性,其属性值就是resultMap标签的id值。

在select标签中,resultType和resultMap两属性不能共存。

5.基于接口的curd

接口的开发规范如下:

Ø声明接口,接口中声明方法。

Ømapper.xml中的命名空间等于Mapper接口类的全路径;

Ømapper.java中的方法名和mapper.xml中的sql标签的id一致;

Ømapper接口中方法的输入参数类型和mapper.xml中的ParameterType一致;

Ømapper接口中的方法的返回值类型和mapper.xml中的ResultType一致。

Ø在程序中实例化接口。

IMappermap=session.getMapper(IMapper.class);然后使用map调用接口方法,如图:

标红行是通过框架的反射技术实例化接口。

6.基于注解的curd

声明接口,在接口中声明curd的方法,在注解中编写sql语句,如图:

Ø如果声明的方法只有一个参数就不需注解

Ø如果声明的方法需要二个参数以上,在每个参数前给出注解@Param,注解中的名称和sql语句中花括号中名称一样。

Ø如果javabean中的属性名和数据库字段名不一样,就要用到@Results和@Result两个注解,形式如上图(注释p;部分)

Ø程序中不同的地方如下图:

上图中标注红色的两行尤其重要,因为没有映射文件,sql语法不能通过映射文件加载内存里。

所以通过标红第一行方式把接口类加载进来,从而sql语法也加载进来了。

标红第二行实例化接口,好调用接口中声明的方法。

7.关联关系查询

Ø一对一查询:

在主Javabean中定义另外一个Javabean的属性,如图:

标红行的属性类别是另外一个Javabean

在映射文件中用到association关键标签,它是resultMap的子标签,如图:

被红线包住的内容,就是被引用的Javabean里定义的属性。

Association也可以实现多对一。

Ø一对多:

在主Javabean中定义一个List集合,其泛型类是另外一个Javabean.如图:

标红行就是“多“的Javabean.在映射文件中用到关键标签collections,如图:

被红线包住的内容就是“多“的javabean在映射文件中定义

8.动态sql

8.1.Foreach标签

该标签是解决sql语法select*from表where字段名in(值1,值2,值3…)的动态sql。

它有六个属性,定义如下:

Øcollection:

要循环的集合

Øindex:

循环索引

Øitem:

集合中的一个元素(item和collection,按foreach循环理解)

Øopen:

以什么开始

Øclose:

以什么结束

Øseparator:

循环内容之间以什么分隔

in括号中的值有三种形式定义:

ØList传值如图:

如果传入参数为List,配置属性collection值固定为list

ØArray传值如图:

如果是以数组传值,属性collection的值固定写成array.

ØMap传值如图:

如果以Map传值,则collection的值为程序中map中的key。

对应的Java代码如图:

8.2.Where标签

8.3.Set标签

8.4.Trim标签

8.5.Choose标签

9.缓存说明

Mybatis有两级缓存来缓存结果集和。

附件:

提供的映射文件说明:

Mapper1.xml:

基于映射文件开发的配置

Mapper2.xml:

基于接口开发的配置

Mapper3.xml:

针对关联关系(一对一,一对多的)开发的配置

Mapper4.xml:

基于动态sql的配置

建表语句:

Ø学生信息表Student_info:

CREATETABLE`student_info`(

`s_id`INTEGER(11)NOTNULL,

`s_name`VARCHAR(20)COLLATEutf8_general_ciDEFAULTNULL,

`s_age`INTEGER(11)DEFAULTNULL,

`s_province`VARCHAR(20)COLLATEutf8_general_ciDEFAULTNULL,

`s_sex`VARCHAR(20)COLLATEutf8_general_ciDEFAULTNULL,

PRIMARYKEY(`s_id`)USINGBTREE

)ENGINE=MyISAM

CHARACTERSET'utf8'COLLATE'utf8_general_ci'

;

Ø学生分数表student_score:

CREATETABLE`student_score`(

`score_id`INTEGER(11)NOTNULLAUTO_INCREMENT,

`s_id`INTEGER(11)DEFAULTNULL,

`subject`VARCHAR(20)COLLATEutf8_general_ciDEFAULTNULL,

`score`INTEGER(11)DEFAULTNULL,

`level`VARCHAR(20)COLLATEutf8_general_ciNOTNULL,

PRIMARYKEY(`score_id`)USINGBTREE,

UNIQUEKEY`score_id`(`score_id`)USINGBTREE

)ENGINE=MyISAM

AUTO_INCREMENT=9CHARACTERSET'utf8'COLLATE'utf8_general_ci'

Ø学生证信息表Student_card:

CREATETABLE`student_score`(

`score_id`INTEGER(11)NOTNULLAUTO_INCREMENT,

`s_id`INTEGER(11)DEFAULTNULL,

`subject`VARCHAR(20)COLLATEutf8_general_ciDEFAULTNULL,

`score`INTEGER(11)DEFAULTNULL,

`level`VARCHAR(20)COLLATEutf8_general_ciNOTNULL,

PRIMARYKEY(`score_id`)USINGBTREE,

UNIQUEKEY`score_id`(`score_id`)USINGBTREE

)ENGINE=MyISAM

AUTO_INCREMENT=9CHARACTERSET'utf8'COLLATE'utf8_general_ci'

;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1