mybatis是个ORM(Object Relational Mapping 对象模型到关系模型的映射)框架。解决对象模型到二维表的关系模型的阻抗不匹配的问题。ORM框架在三层结构中,处在持久层,业务层调用持久层,持久层与数据库打交道,完成数据的CRUD操作,事务管理等。
ORM框架一般都需要两个元素来支持数据的持久化,1是建立维护数据库的关联;2是对象模型到关系的映射。对应mybaits的两种配置文件,基础配置文件和映射文件。
官网中文在线教程http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html,也有PDF的版可以下载
开发环境搭建
- 建立maven项目,提供依赖包
在pom.xml加入以下依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency>
- 在src/main/resources下提供基础配置文件(mybatis-config.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> <!-- 引入外部properties文件 --> <properties resource="jdbc.properties" /> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库源 --> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> </configuration>
jdbc.properties文件
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=root
- 创建表
DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(40) NOT NULL, `password` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; INSERT INTO `t_user` VALUES ('1', 'alex', '123'); INSERT INTO `t_user` VALUES ('2', 'bing', '5234');
- 创建实体类
public class User { private int id; private String username; private String password; // 省略getter setter方法 // ... // 重写toString 方法 @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + "]"; } }
- 配置映射文件(User.xml)
<?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="com.alex.app.entity.User"> <select id="selectUser" parameterType="int" resultType="com.alex.app.entity.User"> select * from t_user where id = #{id} </select> </mapper>
- 基础配置文件(mybatis-config.xml)中,使用mappers配置映射文件的指向(代码21-23行)
<?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> <!-- 引入外部properties文件 --> <properties resource="jdbc.properties" /> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库源 --> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 映射文件 --> <mappers> <mapper resource="com/alex/app/entity/User.xml"/> </mappers> </configuration>
- 测试
public class UserTest { @Test public void testSelectUser() { try { // 加载基础配置文件 InputStream in = Resources.getResourceAsStream("mybatis-config.xml"); // 创建SqlSessionFactory SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); // 创建SqlSession SqlSession sqlSession = factory.openSession(); // 执行业务操作 /* selectOne方法说明 * 第一个参数是User.xml的namespace属性 + "." + select标签的id属性 * 第二个参数是id */ String statement = "com.alex.app.entity.User.selectUser"; User user = (User)sqlSession.selectOne(statement,2); System.out.println(user); } catch (IOException e) { e.printStackTrace(); } } }
执行结果:User [id=2, username=bing, password=5234]
相关推荐
NULL 博文链接:https://bijian1013.iteye.com/blog/2313378
mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现...
Mybatis 开发环境搭建,选择: Eclipse 版本,mysql 5.5, jdk 1.8, mybatis3.2.3.jar 包。这些软件工具均可以到各自的官方网站上下载。 整个过程在概如下, 1. 在本教程中,建立 java 工程,但一般都是开发 web 项目...
开发环境 语言: JDK12.0.1 IDE: IDEA 2019.1.3 依赖管理: Maven 数据库: Mysql 5.6.35 示例代码 Spring Boot系列 以下是本人学习Spring Boot的历程总结,前面一部分没有写博文很可惜 只有从第10章才开始写 :...
技术栈 前端:HTML、CSS、JS、BootStrap 后端:Spring,SpringMVC,Mybatis,SpringBoot 数据库:MySQL,Druid连接池 ...环境搭建 第一步:新建Spring项目 选择Spring initialize,点击Next,输入公司名+项目名生成
1、环境搭建 2、模块接线图 3、尿布智能提醒装置流程图_数据格式 4、源码:NB_v1.ino (1)智能提醒装置粘贴在尿布外面,身体腹部处,不与身体直接接触。解决家长害怕 宝宝刮伤的问题,也能够达到多次利用。 (2...
第01课 项目简介、环境搭建 第02课 servlet3.0新特性之@WebServlet(登录示例) 第03课 servlet3.0新特性之@WebServlet_@WebInitParam详解 第04课 servlet3.0新特性之@WebFilter_@WebListener 第05课 JQuery AJAX ...
本毕业设计基于SSM(Spring+Spring MVC+MyBatis)技术,开发了一个篮球系列网上商城。该商城旨在为篮球爱好者提供一个方便、快捷、智能的购物服务,包括商品浏览、购买、支付等功能。 系统主要分为前台和后台两部分。...
以Guns为核心,系统地讲解了如何构建一个日常生产环境实用的基于Spring Boot并且集成springmvc + shiro + mybatis-plus + beetl的后台管理系统。 教程从项目的搭建,如何进行日常开发讲起,利用通俗易懂的实际业务...
BladeX是一款精心设计的微服务架构,提供 SpringCloud 全套解决方案 开源中国首批完美集成 SpringCloud Alibaba 系列组件的微服务架构 基于稳定生产的商业项目升级优化而来,更加贴近企业级的需求 追求企业开发更加...
### 开发环境 - JDK1.8 + - Maven 3.5 + - IntelliJ IDEA ULTIMATE 2019.1 - MySql 5.7 + ### Spring Boot 模块 模块名称|主要内容 ---|--- helloworld|[spring mvc,Spring Boot项目创建,单元测试]...
【课程介绍】技术选型开发环境:Eclipse/Idea ,JDK 1.8以上 后端技术核心框架:SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选): 持久层框架:MyBatis 3.x + Mybatis-plus...
FCat是基于Angular4+SpringCloud的企业级基础功能框架(户权限管理、区域管理、GIS地图、......),其核心设计...开发环境: node-v6.11.0-x64.msi redis3.X jdk1.8 MySQL Server 5.6 maven3.X IntelliJ IDEA webstorm