博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己Mybatis的复习整合
阅读量:4142 次
发布时间:2019-05-25

本文共 1749 字,大约阅读时间需要 5 分钟。

Mybatis 的Mapper动态代理开发。

一、首先,需要在res下面新建几个包,包名分别为mapper,model(pojo),test,新建一个xml文件,名为sqlMapconfig。
二、目录:在包下面建立相应的文件。
1.mapper,这一个类别相当于dao+daoimpl层,里面包含“表名”mapper.java+“表名”mapper.xml两个文件,用于实现数据的增删改查。
2.model层是数据库中表的信息,后面可用逆向工程直接生成,里面还可以包含包装类QueryVo,用于数据的查询。
3.测试类是编写一个Junit测试来实现对数据库数据的简单查询。
4.sqlMapconfig,用于连接数据池,用来注入mapper文件所在位置。

三、详解

1.mapper
拿用户订单举例。
UserMapper.java是一个接口,里面是一些抽象方法,类似于dao层示例

UserMapper.xml文件是将这些方法实现,相当于Dao.Impl层,但是又不完全是,因为它需要遵循四个原则,见上图,只有名称相同了,才能进行动态代理开发。

在编写xml文件之前,需要给定命名空间namespace,用于隔离sql,还有一个很重要的作用,后面会讲
xml文件的头部信息:<?xml version="1.0" encoding="UTF-8" ?>
命名空间: ,值就是dao层下面的java文件的URL

xml文件中有很多的标签,	select * from user where id=#{v}其中, id要和java文件中的方法名相同,第二,parameterType要和java文件中的入参类型相同,最后,返回值是一个User对象。注意,如果返回值是对象,就要指明对象文件的位置所在.下面是动态sql的信息:	其中sql片段要在前面做好定义,在标签中使用,采用include标签,		
select * from user
上面就是一个简单的sql片段 这是where if标签和foreach标签的使用
 

idList是QueryVo里面定义的,QueryVo示例:在这里插入图片描述

如果你需要通过QueryVo来查询,就要在里面定义好类型和变量,如果通过list查询所有信息,就要定义List idList;并且生成set和get方法。标签的入参属性改为QueryVo。

2.model
里面就是数据库的一些基本信息,没什么好说的,见下图:
在这里插入图片描述

3.test

test里面是对我们写的方法的调用和测试,先看例子:根据多个id查询用户:
在这里插入图片描述

前面五行是照常写的,后面建一个list集合,添加数据,然后set到波里面,通过实现类userMapper来调用当中的方法实现查询,最后输出。

附:sql语句的写法,一般写法,select * from user where id=#{v} ,里面的v可以随意写,特殊情况,select * from user where username like ‘%${value}%’,

insert: insert into user (username,birthday,sex,address)
value(#{username},#{birthday},#{sex},#{address})
update:update user
set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}
where id=#{id}
在java中用?表示的,都要用 #{内容} 来代替。

你可能感兴趣的文章
九度:题目1034:寻找大富翁
查看>>
第六章 背包问题——01背包
查看>>
51nod 分类
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
性能扩展问题要趁早
查看>>
MySQL-数据库、数据表结构操作(SQL)
查看>>
OpenLDAP for Windows 安装手册(2.4.26版)
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>