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

  MyBatis目前最新版本为MyBatis的-3.4.4,此版本和 MyBatis的-3.4.3 版本是没有变化的,只是因为在Meven Central的3.4.3 JAR中有一个错误,所以释放3.4.4来解决它。下载地址为:https://github.com/mybatis/mybatis-3/releases 。下载之后解压,目录情况如图:

                                

在eclipse中进行环境的搭建和配置。需要导入mybatis-3.4.4.jar包。lib目录下也有很多其他jar包,暂时先不用,然后导入一个操作数据库的jar包,这里我们用的是mysql-connector-java-5.1.7-bin.jar,在src下建立一个sqlmap-config.xml文件,指明了mybatis的配置信息。文件内容模板如下:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<environments default="environment">
<environment id="environment">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" 
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/mydb1" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/Mapper.xml" />
</mappers>
</configuration>

这里需要注意的是数据库连接部分,这里指明了数据库连接信息。

如果用的oracle数据库,需要修改driver和url为oracle的,username和password为你自己的数据库用户名和密码。

然后需要创建一个名为mapper(与<mapper resource="mapper/Mapper.xml" /></mappers>路径一致)的包,然后创建Mapper.xml映射文件,指明映射规则。模板如下:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" 
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="mapper.Mapper">

<!-- 查找所有员工 -->

<select id="findAll" resultType="bean.Emp">
select * from emp
</select>

<!-- 可以写多条语句-->

</mapper>

MyBatis是接口编程,命名空间指定了对应的接口名和路径。

当然需要一个Emp类,和数据库中的emp表字段一样。

需要在mapper包下建立一个Mapper.java的接口。

public List<Emp> findAll();

这个为接口的方法,方法名与映射文件的id名一致,方法的返回值对应映射器的resultType,如果有参数的话,参数对应parameterType。

到此,MyBatis环境已经完成,可以写一个测试类进行测试一下。测试前需要写一个MyBatisUtil类,进行连接数据库。代码如下:

package util;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

public class MybatisUtil {
public static SqlSession getSqlSession(){
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
InputStream is = MybatisUtil.class.getClassLoader().getResourceAsStream("sqlmap-config.xml");
SqlSessionFactory ssf = ssfb.build(is);
SqlSession ss = ssf.openSession();
return ss;
}
@Test
public void test(){
SqlSession ss = MybatisUtil.getSqlSession();
System.out.println(ss);
}
}

运行test测试方法,没有报错,输出org.apache.ibatis.session.defaults.DefaultSqlSession@211af1b1

至此,环境没有问题,可以开始编码了。

MyBatis 框架的搭建和配置的更多相关文章

  1. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc

    在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件

  2. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试

    这一部分的主要目的是 配置spring-service.xml  也就是配置spring  并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...

  3. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)

    用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...

  4. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)

    引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一   的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...

  5. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  6. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目

    一:创建maven web项目er

  7. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  8. MyBatis框架基于XML的配置

    什么是MyBatis? 答:它是一个持久层框架 说的太简单了吗?那让我们来看一下官方的文档描述: MyBatis有什么作用呢? 1.持久层的零实现 2.可以自动将数据封装到对象里面不需要手工编写映射的 ...

  9. MyBatis框架的搭建

    前言:MyBatis框架的前身是iBatis,本身是Apache的一个开源项目. MyBatis框架是一个半自动的orm映射框架,是实体类和sql语句之间建立映射关系,sql语句写在单独的配置文件中, ...

随机推荐

  1. 创建对象的N种模式

    1 new Object() 先创建一个Object实例,然后为它添加属性和方法 var Person = new Object() Person.name = 'hl' Person.sayName ...

  2. [python]-数据科学库Numpy学习

    一.Numpy简介: Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针.这样为了保存一个简单的[1,2,3],需要有3 ...

  3. SQL储存过程

    基本语法 创建存储过程 create procedure sp_name @[参数名] [类型],@[参数名] [类型] as begin ......... end 以上格式还可以简写成: crea ...

  4. 使用hashCode()和equals()方法 - Java

    在这篇文章中,我将指出我对hashCode()和equals()方法的理解.我将讨论它们的默认实现以及如何正确地覆盖它们.我还将使用Apache Commons包中的实用工具类来实现这些方法. has ...

  5. Linux上的防病毒软件ClamAV

    Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布.目前ClamAV主要是使用在由Linux.FreeBSD等Unix-like系统架设的邮 ...

  6. SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)

    1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地 ...

  7. 移动端APP CSS Reset及注意事项CSS重置

    @charset "utf-8"; * { -webkit-box-sizing: border-box; box-sizing: border-box; } //禁止文本缩放 h ...

  8. mysql中group by和order by同时使用无效的替代方案

    前言 最近一年由于工作需要大部分使用的都是NoSql数据库,对关系型数据库感觉越来越陌生,一个由group by和order by 引发的血案由此而生.在此做个记录,以备不时之需. 需求 首先,看一下 ...

  9. Scheme实现二叉查找树及基本操作(添加、删除、并、交)

    表转化成平衡二叉树 其中有一种分治的思想. (define (list->tree elements) (define (partial-tree elts n) (if (= n 0) (co ...

  10. 容易忽略的递归当中的return

    先描述问题. 最近项目有个需求,数据入库失败后延时一定时间然后重新入库:当失败达到一定次数后就不再进行入库,因为项目简单,也不需要异步处理.所以看到这个问题很容易想到用递归去实现. 我最开始的代码ex ...