一、类型别名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学习(贰)的更多相关文章

  1. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  2. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  3. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  4. (原创)mybatis学习二,spring和mybatis的融合

    mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...

  5. (原创)mybatis学习一,夯实基础

    一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  8. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

  9. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

  10. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

随机推荐

  1. flume ng系列之——flume安装

    flume版本:1.5.0 1.下载安装包: http://www.apache.org/dyn/closer.cgi/flume/1.5.0/apache-flume-1.5.0-bin.tar.g ...

  2. 【Web】写个HTML页面去调试HTTP接口方便些

    现在越来越多的系统基本SOA的思想,业务由许多小系统通过远程调用的方式串连起来,其中HTTP的接口在远程调用的方式中颇为常见.看过一些开发人员写完一些接口后,要么按照正常情况调用几次就交给调用方,要么 ...

  3. 启动Print Spooler服务提示:"错误1068,依存服务或无法启动"

    本人windows8操作系统,从网上看到在运行中输入  sc config spooler depend= rpcss 即可,试了下果然有效.具体原因待了解.

  4. oracle, create table, insufficient privileges

    SQL> exec pro_gz_day_report;          ORA-01031: insufficient privileges          ORA-06512: at & ...

  5. 【原创分享】python获取乌云最新提交的漏洞,邮件发送

    #!/usr/bin/env python # coding:utf-8 # @Date : 2016年4月21日 15:08:44 # @Author : sevck (sevck@jdsec.co ...

  6. Servlet异常及其生命周期

    Servlet 异常 在javax.servlet包中定义了两个异常类 ServletException类 ServletException类定义了一个通用的异常,可以被init().service( ...

  7. [SAP ABAP开发技术总结]程序自己以JOB方式运行

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. [SAP ABAP开发技术总结]列表屏幕

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. ZOJ 3819 Average Score(平均分)

    Description 题目描述 Bob is a freshman in Marjar University. He is clever and diligent. However, he is n ...

  10. this call和apply

    this指针总是指向一个对象,大致可以分为以下四种: 1,作为对象的方法调用(this指向该对象) 2,作为普通函数调用 当函数不作为对象的属性被调用时,也就是普通函数方式,此时的this总是指向全局 ...