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语句写在单独的配置文件中, ...
随机推荐
- 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)
前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...
- 10.并发包阻塞队列之ArrayBlockingQueue
上一节中对并发包中的非阻塞队列ConcurrentLinkedQueue的入队.出队做了一个简要的分析,本文将对并发包中的阻塞队列做一个简要分析. Java并发包中的阻塞队列一共7个,当然他们都是线程 ...
- Spring学习(23)--- AOP之Introductions应用
简介允许一个切面声明一个实现指定接口的通知对象,并且提供了一个接口实现类来代表这些对象 由<aop:aspect>中的<aop:declare-parents>元素声明该元素用 ...
- Deep Q-Network 学习笔记(二)—— Q-Learning与神经网络结合使用(有代码实现)
参考资料: https://morvanzhou.github.io/ 非常感谢莫烦老师的教程 http://mnemstudio.org/path-finding-q-learning-tutori ...
- 简单介绍phpcms以及phpcms如何安装?
一.先大体介绍一下phpcms,及存放位置 1.将phpcms放在www目录下的phpcms,并解压 其中,readme 没什么用,重要的是install_package; 2.打开install_p ...
- while和do while循环的简要概述
循环结构 1.while结构 在英文中"while"这个词的意思是"当",而在 Java 程序设计中,也可以将其理解为"当",其语法结构是: ...
- flask笔记一
最近学习flask,由于web开发方面接触的并不是很多,所以看官方文档有点焦头烂额,好多的概念不理解. <Flask web 开发>比较基础,先用这本书做个入门. 1.Flask实例化对象 ...
- explode和implode的运用
$kesu_list=DD('Kesu.Kesu')->kesu_list(); foreach($kesu_list[0] as $key=>$val){ $reason_id_list ...
- php二进制流文件
<?php $img_file = 'test.png'; // $fp = fopen($img_file, 'rb'); // $content = fread($fp, filesize( ...
- django-xadmin隐藏菜单不显示
环境:https://github.com/y2kconnect/xadmin-for-python3.git python3.5 django1.9.12 在adminx.py中的Admin类增加属 ...