Mybatis学习(贰)
一、类型别名typeAlias
1、在mapper文件中:实体作为resultType,多次书写在配置文件中,每次需要书写权限名(com.baizhi.yanxj.entity.User),代码比较繁琐。
2、类型别名配置
在mybatis-config.xml中配置:
<typeAliases>
<typeAlias type="com.baizhi.yanxj.entity.User" alias="别名"></typeAlias>
</typeAliases>
注意:
1、对于DAO接口的方法,书写完一个方法就必须测试,只要有一个方法书写错误,可能导致整个测试都失败
2、sql必须测试,在mapper文件中,sql语句没有";"
二、配置文件参数
1、在mybatis-config.xml文件中,关于数据库连接相关的参数可能会经常改变,对mybatis-cofig维护降低,把连接数据库相关的参数,书写在一个小的配置文件中(jdbc.properties),在mybatis-cofig中动态获取
2、开发步骤
1)书写小的配置文件jdbc.properties
2)在mybatis-conf.xml中引入小的配置文件(jdbc.properties)
3)动态获得值 ${键名}
三、补充Mybatis批量删除
1、在JDBC中
sql="delete from t_user where id=?"
for(int i=0;i<ids.length;i++){
pstmt.setInt(1,ids[i];
pstmt.addBatch();
}
pstmt.executeBatch();
等效sql:delete from t_user where id in(1,2,3)
2、mybatis批删
<delete id="批删的方法">
delete from t_user where id in
<foreach collection="list|array" item="ids" open="(" separator="," close=")">
#{ids}
</foreach>
</delete>
四、Mybatis+Struts2整合
1、MVC
M:entity
DAO :Mybatis
Service :Mybatis 事务{
//1、通过工具类获得SQLSession
SqlSession session = MybatisUtil.getSqlSession();
//2、获得DAO
PersonDAO dap = session.getMapper(PersonDAO.class);
//3、调用DAO方法完成业务
dao.xxx();
//4、事务提交或者回滚
session.commit();/session.rollback();
finally{
//通过工具类关闭session
MybatisUtil.closeSession();
}
}
C: Struts2
V:jsp struts2标签+OGNL
2、Struts2+Mybatis整合
1)搭建环境
a、导入jar包:strut2相关jar+mybatis核心jar+ojdbc5.jar
b、引入配置文件:
struts.xml
mybatis-config.xml
mapper.xml
log4j.properties
c、初始化配置
web.xml中配置struts2的核心过滤器
mybatis-config.xml配置
3、补充source folder
配置文件经常放置在source folder,项目部署后,自动部署在WEB-INF/classes/的根目录下,等效与放在src目录下
五、参数的绑定(pstmt.setXXX(index,value)).
1、参数只有一个
1)八种基本类型+String+java.util.Date:参数不需要绑定
public User selectById(int id);
<select id="selectById" resultType="User">
select id,username,password from t_user where id=#{id}
</select>
2)参数为一个实体:参数绑定为实体的属性名称
2、多参数的绑定(分页int begin ,int end)
1)通过下标进行参数的绑定:可读性差,不建议使用
2)采用注解的方式进行参数的绑定【重点】
3)通过map集合绑定参数(古老)
分页:
DAO接口方法中:
mapper文件:
业务层:
Mybatis学习(贰)的更多相关文章
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- (原创)mybatis学习一,夯实基础
一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- 【Todo】Mybatis学习-偏理论
之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html <SSM(SpringMVC+Spring+Myba ...
- MyBatis学习系列三——结合Spring
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
随机推荐
- oracle 主键自增
将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id number(6), userid varchar2(20 ...
- 【转载】理解C语言中的关键字extern
原文:理解C语言中的关键字extern 最近写了一段C程序,编译时出现变量重复定义的错误,自己查看没发现错误.使用Google发现,自己对extern理解不透彻,我搜到了这篇文章,写得不错.我拙劣的翻 ...
- 巧遇"drwxr-xr-x."权限
drwxr-xr-x. 是SELinux的问题 REDHAT6之后安全提高所以设置的 关闭SELINUX就好了 因为新版本ls把多acl和selinux属性加进去了,与系统无关,新版本的ls代码使用1 ...
- JAVA开发--游戏24点
也比较简单,写的不好,代码里用到了LOOKANDFELL,QUAQUA8.0的包 package com.Game24; import java.awt.Container; import java. ...
- java正则API简单解析
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...
- observer观察者模式
观察者模式(有时又被称为发布-订阅Subscribe>模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,让 ...
- 8.mybatis动态SQL模糊查询 (多参数查询,使用parameterType)
多参数查询,使用parameterType.实例: 用户User[id, name, age] 1.mysql建表并插入数据 2.Java实体类 public class User { public ...
- python_way ,day7 面向对象 (初级篇)
面向对象 初级篇 python支持 函数 与 面向对象 什么时候实用面向对象? 面向对象与函数对比 类和对象 创建类 class 类名 def 方法名(self,xxxx) 类里面的方法,只能 ...
- sciencesoftware科学软件
软件名称 软件分类 二级分类 更新日期 下载 GMS(Groundwater Modeling Solution) 10 地球地理软件 水资源 2014-09-28 下载 Data Desk 7 经济 ...
- 排序算法 & 迷宫的深度, 广度优先
内容提要 1. 我掌握的排序算法的时间复杂度 2. 我掌握的6种排序算法(插入, 冒泡, 选择, 归并, 快速, 希尔) 3. 迷宫的搜索方法(深度优先 + 广度优先) 各种排序的时间复杂度 名称 稳 ...