mybatis的环境搭建
mybatis是一个持久层框架,其主要思想就是想将程序中大量的SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置.
使得SQL与程序代码分离,即在不修改程序代码的情况下,直接在配置文件中修改SQL.
mybatis的搭建步骤
下载jar包并部署包
mybatisjar下载网址:https://github.com/mybatis/mybatis-3/releases,mybatis压缩包解压后结构目录如下
此外lib目录下存放着编译依赖包如下
最后只需把jar包放入项目的此lib 目录下即可
或者选中项目右键 build path
进入此窗口
单击第二个按钮直接从本地进行添加jar,亦或者按下按钮从此工作空间的项目中选择jar进行添加
编写mybatis核心配置文件
在此之前需要调整下xml的代码提示(引入dtd文件)
请先看第6点
- 选择window → preferences
- 搜索xml → xml catalog出现如下窗口
add → file system 选择你所需要的文件dtd
这两个文件都是经常使用的所以都添加进去
key 需要与配置文件中的
此部分相同
所以key是 -//mybatis.org//DTD Config 3.0//EN,那么dtd文件到哪里找呢?
- 所需的dtd文件都在mybatis解压后的 mybatis-3.4.4\org\apache\ibatis\builder\xml 下面如图
创建核心配置文件
- 找到如下窗口 → next
- 选择第一个 → next
选择第二个 → 选择config → next→finish即可
- 此时创建好的xml文件便会自动生成如下代码
编写核心配置文件
话不多说直接上代码
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <!-- 引入database.propeerties -->
- <properties resource="database.properties"/>
- <!-- 配置mybatis的log实现log4j -->
- <settings>
- <setting name="logImpl" value="LOG4J"/>
- </settings>
- <typeAliases>
- <package name="cn.smbms.pojo"/>
- </typeAliases>
- <!-- 配置mybatis多套运行环境 -->
- <environments default="development">
- <environment id="development">
- <!-- 配置事物管理,采用jdbc的事物管理 -->
- <transactionManager type="JDBC"/>
- <!-- POOLED:mybatis自带的数据源,jndi:基于Tomcat的数据源 -->
- <dataSource type="POOLED">
- <property name="driver" value="${driver}"/>
- <property name="url" value="${url}"/>
- <property name="username" value="${user}"/>
- <property name="password" value="${pwd}"/>
- </dataSource>
- </environment>
- </environments>
- <!-- 将mapper文件加入到配置文件中 -->
- <mappers>
- <mapper resource="cn/smbms/dao/UserMapper.xml"/>
- </mappers>
- </configuration>
属性 | 作用 |
configuration | 配置文件的根元素节点 |
propertes | 通过resource属性从外表知道properties属性文件,该属性文件描述数据库的相关配置 |
settings | 设置mybatis运行中的一些行为,比如此处设置mybatis的log日志实现为LOG4J,即使用log4j实现日志功能 |
environments | 表示配置mybatis的多套运行环境,将SQL映射到多个不同的数据库上,元素节点中可配置多个,但必须指定默认运行环境 |
environment | 配置mybatis的一套运行环境,需指定运行环境id,事务管理,数据源配置等相关信息 |
mappers | 作用是告诉mybatis去哪里找SQL映射文件(该内容是开发者定义的映射SQL语句),整个项目可以有1个或多个 |
mapper | mappers的子元素节点,具体知道SQL映射文件的路径,其中resource属性表SQL映射文件的路径 |
创建实体类并为其创建DAO接口
结构如下
创建sql映射文件
代码如下
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="cn.smbms.dao.UserMapper">
- <!-- 查询用户表记录数 -->
- <select id="count" resultType="int">
- select count(1) as count from smbms_user
- </select>
- <!-- 查询用户列表 -->
- <select id="getUserList" resultType="User">
- select * from smbms_user
- </select>
- </mapper>
- mapper:映射文件的根元素节点,只有一个属性namespace
- namespace:用于区分不同的mapper,全局唯一.
- select:表示查询语句,是mybatis最常用的元素之一,常用属性如下
- id属性:改命名空间下唯一标识符
- resultType属性:表示SQL语句返回值类型,第一个select返回的是int,后者则是user类型
编写测试类运行
工具类代码如下
- package cn.smbms.utils;
- import java.io.InputStream;
- import org.apache.ibatis.io.Resources;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.apache.ibatis.session.SqlSessionFactoryBuilder;
- public class MyBatisUtil {
- private static SqlSessionFactory factory;
- static {
- try {
- //获取mybatis-config.xml文件的输出流
- InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
- factory=new SqlSessionFactoryBuilder().build(is);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static SqlSession createSqlSession() {
- return factory.openSession(false); //默认true自带提交事务
- }
- public static void closeSqlSession(SqlSession sqlSession) {
- if(null!=sqlSession) {
- sqlSession.close();
- }
- }
- }
测试类代码方法一 基于mapper接口方式操作如下
- public static void main(String[] args) {
- Logger logger = Logger.getLogger(Test.class);
- SqlSession sqlSession =null;
- List<User> userList = new ArrayList<>();
- try {
- sqlSession = MyBatisUtil.createSqlSession();
- userList = sqlSession.getMapper(UserMapper.class).getUserList();
- for (User user : userList) {
- logger.debug("testGetUserList UserCode:"+user.getUserCode()+"and userName:"+user.getUserName());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }finally {
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
基于mapper接口方式操作此接口必须对应select映射SQL语句中的id对应
测试类代码方法二 运行映射SQL语句
- public static void main(String[] args) {
- Logger logger = Logger.getLogger(Test.class);
- SqlSession sqlSession =null;
- List<User> userList = new ArrayList<>();
- try {
- sqlSession = MyBatisUtil.createSqlSession();
- //直接运行已映射的SQL语句
- userList = sqlSession.selectList("cn.smbms.dao.UserMapper.getUserList");
- for (User user : userList) {
- logger.debug("testGetUserList UserCode:"+user.getUserCode()+"and userName:"+user.getUserName());
- }
- } catch (Exception e) {
- e.printStackTrace();
- logger.error(e);
- }finally {
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
在使用SQLsession实例执行已映射的语句,没有与id所对应的方法也不会出错,即使UserMpper这个接口没有也不会影响运行结果.
mybatis的环境搭建的更多相关文章
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- 基于Maven的Spring + Spring MVC + Mybatis的环境搭建
基于Maven的Spring + Spring MVC + Mybatis的环境搭建项目开发,先将环境先搭建起来.上次做了一个Spring + Spring MVC + Mybatis + Log4J ...
- mybatis学习:mybatis的环境搭建与入门
一.mybatis的概述: mybatis是一个持久层框架,用java编写 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接登繁杂过程 它使用了ORM思想 ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_1 回顾Mybatis的环境搭建-实现查询所有功能
先回顾Mybits的环境搭建,. 直接next 直接点击finish 创建好的项目. 所有东西都自己写不现实,约束文件的头部还是拷贝过来 导入依赖坐标,Mybits mysql的驱动 log4j 单元 ...
- 项目SpringMVC+Spring+Mybatis 整合环境搭建(2)-> 测试Spring+Mybatis 环境
测试前期准备 第一步:创建easybuy数据库,设置utf-8格式 第二步:创建表test_tb CREATE TABLE `test_tb` ( `id` int(11) NOT NULL AUTO ...
- 【Mybatis】环境搭建
SqlMapConfig.xml(MyBatis配置文件) <?xml version="1.0" encoding="UTF-8" ?> < ...
- Maven 项目使用mybatis的环境搭建-基于xml形式实现查询所有的功能
首先了解一下什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. ...
- mybatis的环境搭建以及问题
1.mybatis中3个重要的类或者接口 1)SqlSessionFactoryBuilder类 用它来创建工厂对象,它重载了9次build()方法,我们常用build(inputstream)来创建 ...
- 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_06.mybatis的环境搭建
创建实体类,实现Serializable接口 属性名和数据库的字段名保持一致 Date字段需要导入包 生成gettter和setter,再生成一个ToString的方法 创建持久层Dao 创建接口 里 ...
随机推荐
- SpringMVC(二)高级应用
一.参数绑定-----集合类型 二.数据回显(例如提交表单失败了,数据没有丢失) 三.上传图片 四.json数据的交互 五.restful 支持 六.拦截器
- (转)不看绝对后悔的Linux三剑客之awk实战精讲
原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...
- ACdream 1427—— Nice Sequence——————【线段树单点更新,区间查询】
Nice Sequence Time Limit: 4000/2000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Su ...
- CSS中的IFC和BFC入门
CSS中的IFC和BFC入门 提到CSS,首先会想到的就是盒模型,如果对于盒模型不是很理解的,看这里.这是一个基础的系列,看了盒模型还可以看看box-sizing,好了不多说了,下面介绍今天的重点 ...
- ElasticSearch之QueryBuilders
1.termsQuery A filer for a field based on several terms matching on any of them 翻译过来:基于以下几个方面对其中任何匹配 ...
- python.h没有那个文件或目录解决方法
我用的是Deepin Linux,这应该是linux平台的问题,别的linux os也是执行安装,命令不同而已,windows和Mac不太清楚. 如果你使用的是python2.x,那么使用下面的语句: ...
- 生产消费者模式与python+redis实例运用(基础篇)
根据这个图,我们举个简单的例子:假如你去某个餐厅吃饭,点了很多菜,厨师要一个一个菜的做,一个厨师不可能同时做出所有你点的菜,于是你有两个选择:第一个,厨师把所有菜都上齐了,你才开始吃:还有一个选择,做 ...
- codevs 1664 清凉冷水
1664 清凉冷水 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 闷热的夏天,威斯康辛州的奶制品地区提供冷水供奶牛 ...
- Python高效开发实战——Django、Tornado、Flask、Twisted
今天要推荐的就是这本书,内容涉及四种主流的Python Web开发框架,零基础完成网站搭建.数据库设计.前后端开发,全方位领悟Python原理与应用. 最新最全的框架实战,尽在这本书,可搜索亚马逊.京 ...
- 详细讲解:tp3.2.3生成验证码并进行验证(ajax校验返回及自定义返回)
TP3.2.3的验证码也是比较经典的小功能,框架对这个小功能的封装还是比较完美的,废话不多说,开始记录 1.总体效果: (1)初始界面 (2)自定义的返回校验效果: (3)ajax的校验返回: 2.代 ...