MyBatis(一) —— 环境搭建

一 什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。(官方解释)

二 为什么使用MyBatis?

1. MyBatis简单实用

MyBatis使用难度相对简单,仅仅需要导入jar包,配置Config的xml文件,以及实现mapper映射文件的编写,就可以使用。

2. MyBatis简化了JDBC代码的实现

在Web开发中,大量冗余复杂的持久层方法的实现大大提高了编程时的工作量,采用MyBatis时仅仅需要使用编写dao接口方法,已经在Mapper.XML中配置编写SQL语句即可

3. MyBatis实现了数据持久层的松耦合

MyBatis中,第二点减少代码开发倒并非重要,因为C3P0等线程池的使用,已经足够降低代码量了,而框架的使用重点在于第三点,实现了数据持久层与业务层的分离,我们可以在不改变Java代码的前提下,对持久层的很多东西进行改变,至于那些东西可以改变,即不需要改动dao层的所有持久层操作都可以改变。如: environment(MySQL,Oracle)的切换,SQL语句的改写(表明,操作等,但是不可以修改参数,返回值等dao层固定的内容,如果修改则需要修改dao)等。。。

三 MyBatis的环境配置

1.Jar包的使用

Jar包主要分为四类(由于直接导入的是新版本,所以有些包不认识,也没用到)

必须使用的包是:

动态代理的jar包:asm,cglib,javassist等

日志包:log4j相关 commons-logging包

mybatis核心包:mybatis包

sql连接包:mysql-connector- java

2.MyBatis配置文件

(1)MyBatis配置文件没有固定位置,因为会使用流的形式手动读取该XML文件,所以不固定位置,不过建议放在src目录下,另外同理配置文件名同样不需要固定。

(2)DTD的使用,DTD本身只是一种语法规则检测器,用于检测你的语法是否合理,以及为你做一些语法补充,这是必要的,无论是Config文件还是mapper文件都是必要的,至于怎么添加

http://www.mybatis.org/mybatis-3/zh/index.html 在中文官方网页中有示例,直接复制就好,不过config应该复制config的,mapper复制mapper的,两者语法不通

配置文件DTD:

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

映射文件DTD:

<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
(3)文件的配置

所有配置都放在configuration中

必须具备的是:

(1)<environments></>:用于配置环境,内部每种环境都使用<environment></>来构成,至少有一个, default属性用于选择当前环境,不过我这里只有一个MySQL的环境,必须。

(2)<environment>中使用JDBC的方式配置属性,不过每种属性的名称早已定义好,且必须使用driver,url,username,password。value值可以直接手动输入,不过我使用的是使用properties文件来松耦合,

使用properties的话,需要使用<properties>标签,声明properties文件位置。

(3)<setting>用于设置Mybatis的相关配置,不过开始不需要使用,不是必须。

(4)<mappers>标签,内部使用<mapper>标签来声明映射文件的位置,确保能够找到,不是必须,但是如果要使用映射文件,必须。

3.在Java中使用MyBaties

这里是一个封装工具类,用于完成一个SqlSession的创建

而SqlSession的实例就是我们SQL语句的执行者

创建步骤为:

(1)使用Resources的getResourceAsStream方法将配置文件读取成Input流,注意的是,这里的Resources应该是ibaties的类

(2)使用SqlSessionFactoryBuilder来创建SqlSession工厂,此处使用工厂模式,不懂自行百度。

(3)再使用工程,执行openSession方法来创建SqlSession,这里就得到了我们想要的sql执行者

(4)另外,由于流的产生,所以需要异常处理,且工具包的使用,不建议讲异常抛出(题外话)

(5)由于SqlSession是一个重型资源,所以不建议使用单例模式一直保存一个SqlSession,且在每次使用结束后建议关闭sqlSession

四 映射文件的配置与使用

1.映射文件的配置

(1)映射文件可以单独完成数据持久层操作,不需要dao与daoImpl的实现就可以完成操作,但是使用不便以及可读性差等原因不在spring中使用,不过这里就当个例子。

(2)映射文件可以看做一个类,mapper中的namespace(命名空间)可以看做一个类的完整路径,前者代表包usermapper看做类名,每一个select或则update等操作都可以看做是一个方法,id是方法名,parameterType则是参数值(不过值得注意的时,再不使用dao的情况下,仅仅只能使用一个参数【object】或则基本类型,多个参数是则使用map存放),resultType则代表返回值类型。

(3)update,insert以及delete等操作,返回值为01的boolean星,不需要定义,但是select必须定义返回值,另外,如果返回值为一个list时,并不是返回一个list,因为mysql查询依旧是指针一样逐条查询,所以返回bean类型就好了。

(4)在标签内部完成SQL语句的编写,对于未知值则可以使用#{}或则${}代替,内部名称,可以是bean类的属性名,可以是,map的key值,可以是@Param定义的变量值,也可以是0等值,根据你传参内容不定,不过${}使用的是拼接sql语句的方式,不建议使用,而#{}使用的是preperedStatement的方式预编译,具有安全性。

2.SqlSession的使用

(1)delete,insert,update不用多说,直接调用就好,第一个参数为上文中namespace(包+类)+id(方法名),第二个参数为传入的参数,有且只有一个。不过MyBatis对于SQL命令是以事务的方式存在的,这三步操作,由于牵涉到数据的变更,所以需要手动调用commit方法提交,而查询不需要。

(2)select操作分为select,selectList,selectMap,这就不用多说了,返回结果不同,select仅仅只能返回一条(一个对象),而list,map则可以返回多条。

(3)list时,需要的resultType必须是bean类,但是map既可以是bean类,也可以是map类型

 

  



原文地址:https://www.cnblogs.com/qqwhsj/p/11006389.html

时间: 2024-10-24 10:51:17

MyBatis(一) —— 环境搭建的相关文章

MyBatis的环境搭建

第一节 MyBatis的环境搭建 2016年3月1日 星期二 13:01 1.找到所需要的Jar 在这个里面需要注意的是对所有的jar要进行 Bulid path操作 2.根据帮助文档完成 www.github.com 找找到对应Mybatis的官方帮助文档 搭建的过程如下: A.引用包 B.需要建立核心配置文件,文档类型 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http:

MyBatis基本环境搭建与MyBatisUtil

本文将介绍MyBatis的环境搭建,本例使用的MyBatis的版本为mybatis-3.2.8.jar.下载地址为:http://download.csdn.net/detail/ma_hoking/8380541.本例使用的数据库为MySQL数据.具体的安装操作请参考:http://blog.csdn.net/mahoking/article/details/42921511. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 首先创建Java项目MyBat

mybatis学习:mybatis的环境搭建

一.mybatis的概述: mybatis是一个持久层框架,用java编写 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接登繁杂过程 它使用了ORM思想实现了结果集的封装 ORM: Object  Relational  Mappging 对象关系映射 简单来说: 就是把数据库表和实体类及实体类的属性对应起来 让我们可以操作实体类就实现操作数据库表 二.mybatis的环境搭建 第一步:创建maven工程并导入坐标 1 <packaging>ja

MyBatis —— 调试环境搭建

MyBatis  —— 调试环境搭建 1. 依赖工具 Maven Git JDK IntelliJ IDEA 2. 源码拉取 从官方仓库 https://github.com/mybatis/mybatis-3 Fork 出属于自己的仓库.为什么要 Fork ?既然开始阅读.调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交. 使用 IntelliJ IDEA 从 Fork 出来的仓库拉取代码. 本文使用的 MyBatis 版本为 3.5.0-SNAPSHOT . 3. 调试 M

mybatis 开发环境搭建

本文转自:http://www.yihaomen.com/article/java/303.htm mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载. 首先建立一个名字为 MyBaits 的 dynamic web project   1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程

基于SpringMVC、Maven以及Mybatis的环境搭建 【转】

搭建环境 1.IDE用的是Eclipse的J2EE版本,要保证装上了Maven,可以使用Eclipse的Install New Software来安装然后点击Next,安装好后重启一次.注意:使用最新版的Eclipse时,可以跳过此步,因为最新版的Eclipse已经内置了Maven.2.安装好了Maven后,不要使用IDE自带的Maven,而是去官方下载一个,然后让IDE的Maven指向你下载安装的Maven路径,如图: 三.创建Maven项目 1.创建一个新的Maven Project,Fil

Maven 项目使用mybatis的环境搭建-基于xml形式实现查询所有的功能

首先了解一下什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型.接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录. 本例子将通过一个简单的查询所有的用户信息的动作来简单的解析如何在Maven项目中使用mybatis. 1.本

mybatis的环境搭建以及问题

1.mybatis中3个重要的类或者接口 1)SqlSessionFactoryBuilder类 用它来创建工厂对象,它重载了9次build()方法,我们常用build(inputstream)来创建工厂. 该类通常在项目中以单例的形式存在. API列表: build(Reader reader) build(InputStream inputStream) build(InputStream inputStream, String environment) 2)SqlSessionFactor

Mybatis入门环境搭建

1.依赖jar包 mybatis-3.2.2.jar  sqlserver2008.jar 2.代码 package ttyouni.model; public class Student { public int ID; public String UserName; public String Password; public int getID() { return ID; } public void setID(int iD) { ID = iD; } public String get

MyBatis之MyBatis环境搭建

MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1.9.6.jar asm-5.1.jar cglib-3.2.4.jar commons-logging-1.2.jar javassist-3.21.0-GA.jar log4j-1.2.17.jar log4j-api-2.3.jar log4j-core-2.3.jar ognl-3.1.12