MyBatis 框架的搭建和配置
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 框架的搭建和配置的更多相关文章
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc
在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试
这一部分的主要目的是 配置spring-service.xml 也就是配置spring 并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)
用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)
引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一 的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
一:创建maven web项目er
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- MyBatis框架基于XML的配置
什么是MyBatis? 答:它是一个持久层框架 说的太简单了吗?那让我们来看一下官方的文档描述: MyBatis有什么作用呢? 1.持久层的零实现 2.可以自动将数据封装到对象里面不需要手工编写映射的 ...
- MyBatis框架的搭建
前言:MyBatis框架的前身是iBatis,本身是Apache的一个开源项目. MyBatis框架是一个半自动的orm映射框架,是实体类和sql语句之间建立映射关系,sql语句写在单独的配置文件中, ...
随机推荐
- Xamarin开发笔记—WebView双项事件调用
1.Xamarin调用WebView: 原理:Xamarin.Forms WebView内置方法xx.Eval(..)可以调用到页面里面的js函数. WebView展示的代码如下: var htmlS ...
- JavaScript严格模式有什么不同
看ES6,瞄到“严格模式”,问了下自己什么是“严格模式”?答案好像不是很明朗,遂总结如下: 严格模式声明:“use strict”; 1.禁止变量未声明就赋值 2.限制动态绑定(属性和方法归属哪个对象 ...
- checkbox全选、全不选实现
<form name=aa1 > <p> <input type=checkbox name="radiot ...
- myeclipse导入项目时出现Exploded location overlaps an existing deployment错误解决方法
版权声明:本文为博主原创文章,转载时请注明原文链接. 今天拿别人的项目,在自己的软件上配置,通过tomcat添加项目时出现了 Exploded location overlaps an existin ...
- 如何让.Net线程支持超时后并自动销毁!
如何让.Net线程支持超时后并自动销毁! 1.使用CancellationTokenSource之基于Task实现方式 CancellationTokenSource source = new Can ...
- Intellij IDEA 2017集成MyBatis三剑客
MyBatis三剑客指的是:MyBatis-Generate.Mybatis Plus.MyBatis-PageHelper MyBatis-Generate 使用 Mybatis Generator ...
- EL表达式拼接字符串
EL表达式拼接字符串<c:set var="types" value="${','}${resMap['vo'].lineType }${','}" &g ...
- linq 批量修改更新
批量修改:var values = Context.Request["values"].JsonDeserialize<Dictionary<string, objec ...
- H5学习第三周
今天主要总结弹性布局 flex使用 1.给父容器添加display flex/inline-flex;属性 2.父容器可以使用的属性值有 >>>flex-direction 属性决定 ...
- Visiual Studio CLR20r3
问题事件名称: CLR20r3 解决方法: 步骤1:开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio To ...