MyBatis概念和”安装“
MyBatis概念
MyBatis的前身就是iBatis,本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为MyBatis。
MyBatis是一个数据持久层(ORM)框架。
MyBatis是把实体类和sql语句之间建立了映射关系,而Hibernate在实体类和数据库之间建立了映射关系。
总体来说 MyBatis 主要完成两件事情
- 根据 JDBC 规范建立与数据库的连接;
- 通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。
MyBatis的优点
- 基于SQL语法,简单易学。
- 能了解底层组装过程。
- SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
- 程序调试方便。
MyBatis层次结构
MyBatis安装(环境配置)*.* 例子是最好的笔记
- 准配需要的jar包:mybatis-3.2.6.jar和mysql-connector-java-5.1.11-bin.jar
2.创建mybatis-config.xml,并配置数据库环境
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 <configuration>
6 <!-- 环境 -->
7 <environments default="developments">
8 <environment id="mysql">
9 <transactionManager type="JDBC"></transactionManager>
10 <dataSource type="POOLED">
11 <property name="driver" value="com.mysql.jdbc.Driver"/>
12 <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydbone"/>
13 <property name="username" value="root" />
14 <property name="password" value="199751hwl" />
15 </dataSource>
16 </environment>
17 </environments>
18
19 </configuration>
3.创建一个实体Person.java
package com.model.system; public class Person { private Integer persId;
private String persName;
private String persSex;
private String persHobby; public Person() {} public Person(Integer persId, String persName, String persSex, String persHobby) {
super();
this.persId = persId;
this.persName = persName;
this.persSex = persSex;
this.persHobby = persHobby;
} public Integer getPersId() {
return persId;
} public void setPersId(Integer persId) {
this.persId = persId;
} public String getPersName() {
return persName;
} public void setPersName(String persName) {
this.persName = persName;
} public String getPersSex() {
return persSex;
} public void setPersSex(String persSex) {
this.persSex = persSex;
} public String getpersHobby() {
return persHobby;
} public void setpersHobby(String persHobby) {
this.persHobby = persHobby;
} @Override
public String toString() {
return "Person [persId=" + persId + ", persName=" + persName + ", persSex=" + persSex + ", persHobby="
+ persHobby + "]";
} }
4.为实体配置对应的映射文件Person.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.model.system.Person">
<resultMap type="com.model.system.Person" id="person">
<result column="persId" property="persId" />
<result column="persName" property="persName" />
<result column="persSex" property="persSex" />
<result column="persHobby" property="persHobby" />
</resultMap> <!-- 查询用户通过用户ID -->
<select id="queryPersonByPersonId" parameterType="java.lang.Integer"
resultMap="person">
select * from person where persId = #{persId}
</select> <!-- 添加用户通过用户ID -->
<select id="insertPerson" parameterType="java.lang.String"
resultMap="person">
INSERT INTO person(persName,persSex,persHobby) VALUE (#{persName},#{persSex},#{persHobby})
</select>
</mapper>
5.在mybatis-config.xml,添加User.xml映射文件
1 <!-- 添加映射文件 -->
2 <mappers>
3 <mapper resource="com/mapper/system/Person.xml" />
4 </mappers>
6. 调用类(测试类)
1 package com;
2
3 import java.io.IOException;
4 import java.io.Reader;
5
6 import org.apache.ibatis.io.Resources;
7 import org.apache.ibatis.session.SqlSession;
8 import org.apache.ibatis.session.SqlSessionFactory;
9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10
11 import com.model.system.Person;
12
13 public class TestQueryPersonById {
14
15 public static void main(String[] args) throws IOException {
16
17 // 从XML中创建SqlSessionFactory
18 String resource = "mybatis-config.xml";
19
20 Reader reader = Resources.getResourceAsReader(resource);
21 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader, "mysql");
22 // 获取session
23 SqlSession session = ssf.openSession();
24
25 Person person = session.selectOne("com.model.system.Person.queryPersonByPersonId", 1);
26 // 通过命名空间查找sql
27 System.out.println(person);
28 }
29 }
MyBatis概念和”安装“的更多相关文章
- mybatis generator 插件安装及使用
现在Mybatis特别火,但是在开发中却要经常写实体类和配置文件,会不会特别烦人,所以可以利用Mybatis的代码生成插件来生成这部分代码: 1,打开eclipse,点击Help>Softwar ...
- Docker教程:dokcer machine的概念和安装
http://blog.csdn.net/pipisorry/article/details/50920982 Docker machine介绍 做为Docker容器集群管理三剑客之一的Docker ...
- Eclipse MyBatis Generator插件安装
目录 Eclipse MyBatis Generator插件安装 Eclipse MyBatis Generator插件安装 1.进入Eclipse Marketplace [Help] -> ...
- Maven(一)Maven 的概念和安装
Maven 的概念和安装 Maven 是什么 首先 Maven 肯定是一个造福人类的好东西,它可以省去我们构建项目中引入 jar 包时的麻烦,还有利于项目的模块化开发等等等好处.在如今项目中大体都是使 ...
- MyBatis 概念
简介 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyB ...
- 零基础学习java------40---------Maven(maven的概念,安装,maven在eclipse中使用),springboot(spring整合springmvc(注解),spring整合mybatis(常见的配置文件)),前端页面(bootstrap软件)
一 maven 1. Maven的相关概念 1.1 项目开发中遇到的问题 (1)都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行? (2)为什么在我的机器上可以正常打包,而配置管理 ...
- YII框架概念与安装
Yii概念: YII安装: 下载最版本http://www.framework.com 解压至访问目录下 直接打开advanced/init.bat文件输入0之后输入yes 打不开 ...
- MySQL数据库1 - 基本概念及安装
一.数据管理技术的产生和发展: 1.人工管理阶段 - 效率低,成本高(文字) 2.文件系统阶段 - 易于存储,处理速度快,数据形式丰富(文字,声音,图片...磁带,磁盘) 3.数据库系统阶段 - 易于 ...
- Hive从概念到安装使用总结
一.Hive的基本概念 1.1 hive是什么? (1)Hive是建立在hadoop数据仓库基础之上的一个基础架构: (2)相当于hadoop之上的一个客户端,可以用来存储.查询和分析存储在hadoo ...
随机推荐
- 主要DL Optimizer原理与Tensorflow相关API
V(t) = y*V(t-1) + learning_rate*G(x) x(t) = x(t-1) - V(t) 参考:https://arxiv.org/pdf/1609.04747.pdf DL ...
- tensorflow models flags 初步使用
参考官方仓库:https://github.com/tensorflow/models/tree/master/official/utils/flags 测试Demo代码如下: from absl i ...
- 过WAF的小思路
过WAF的小思路 前言 最近在学习了一波CMS漏洞,尝试看了几个菠菜站,有宝塔WAF...向WHOAMI大佬取经回来后,绕过了一个WAF.觉得是时候要认真总结一下了:) 前期的过程 菠菜采用的是Thi ...
- Python面试题小试牛刀
1.声明变量注意事项有那些? 1.变量名只能用字母.数字或下划线的任意组合 2.变量名不能以数字为第一个字符 3.内置函数名不能用 2.如何查看变量在内存中的地址? id(变量名) 3.写代码 a. ...
- client-go实战之一:准备工作
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 人生重开模拟器「GitHub 热点速览 v.21.36」
作者:HelloGitHub-小鱼干 人生是不能重来的,但是 lifeRestart 能满足你的重开心愿.初始值不满意,你可以一直随机生成或者自动添加颜值.智力.运气值,倒是一种"重生&qu ...
- redis存取数据String
一.连接不同数据库和存取String类型值 1.连接数据库 2.set和get多个 3.取值并赋值 取值返回的是赋值改变之前的值: 4.递增和递减 5.字符串尾部加值 6.商品编号自增应用
- window 日志的查看与清理
日志查看: 启动Windows实验台,点击:开始 - 控制面板 - 管理工具 - 事件查看器.如下图所示. 2.在事件查看器中右键应用程序(或安全性.系统.DNS服务器)查看属性可以得到日志存放文件的 ...
- 机器学习——K-Means算法
1 基础知识 相似度或距离 假设有 $m$ 个样本,每个样本由 $n$ 个属性的特征向量组成,样本合集 可以用矩阵 $X$ 表示 $X=[x_{ij}]_{mn}=\begin{bmatrix}x_{ ...
- symfony2已有数据表导入实体时报错 Doctrine does not support reverse engineering from tables that don't have a primary key
先在配置文件 app/config/config.yml中配置 schema_filter: /^(?!(tablename))/ 即可,或者在出现问题表都加上一个id 然后再使用命令 php app ...