mybatis学习笔记一(入门)
昨天看了一下mybatis,学习了一下有很多东西还不懂,但是想把一些知道的记录一下,如有错误请大家多多指点。
mybatis它是apche的一个开源项目,它以前的没名字并不是叫mybatis而是叫ibatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis[1]。
1. 与其他的框架区别
mybatis和hibernate差不多都是,都属于优秀持久层的框架,主要负责访问数据库。但是和hibernate还是有区别的,hibernate是数据纯属的面对对象变成,我们的所有操作基本都是在操作对象,我们根本就不用去负责sql语句,这样会导致我们失去了对sql语句的控制。而mybatis虽说也是在对象进行操作但是不同于hibernate,mybatis可以自己来写sql语句,这样显得更加容易控制一些。
2. 项目演示
2.1 创建数据库和表
2.2 mybatis所需要的jar包
mybatis-3.3.0.jar(mybatis包)
mysql-connector-java-5.1.13-bin.jar(mysql的链接驱动jar包)
2.3mybatis配置文件
我一般都喜欢在项目你在创建一个源码包用来存放配置文件(New->source folder)
在源码包中写一个mybatis.xml文件在这个文件中编写mybatis的配置
<?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><!-- 这是mybatis的配置,我们的配置都写在这里面 -->
<properties resource="jdbc.properties"/>
<!--properties标签用于 引入properties文件,在下面属性中我们要引用到properties中的内容 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/><!-- 事务管理 -->
<dataSource type="POOLED"><!-- 数据源 -->
<property name="driver" value="${jdbc.driverClass}"/>
<!-- 指定哪一个驱动 ,从properties中引用-->
<property name="url" value="${jdbc.url}"/>
<!-- 指定哪一个链接url -->
<property name="username" value="${jdbc.user}"/>
<!-- 指定哪一个链接用户 -->
<property name="password" value="${jdbc.password}"/>
<!-- 指定哪一个链接密码 -->
</dataSource>
</environment>
</environments>
<!-- 注册映射关系文件 -->
<mappers>
<!-- 以mapper的形式将指定的映射文件关联进来 -->
<mapper resource="com/home/entity/userMapper.xml"/>
</mappers>
</configuration>
2.4 properties配置文件
2.5 编写实体类
该实体类要与数据库中的表相对应,在类(User)中写个tostring方法便于我们查看
package com.home.entity; /**
* 此类是:user实体类
* @author hpc
* @2017年1月10日下午9:36:59
*/
public class User {
private Integer user_id;
private String user_name;
private String user_pwd;
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_pwd() {
return user_pwd;
}
public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}
@Override
public String toString() {
return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_pwd=" + user_pwd + "]";
} }
2.6 编写映射关系文件
文件名可以随意但是为了一目了然的效果,我们通常是 类名+mapper.xml命名(userMapper.xml)。写完后将我们写好的映射文件在mybatis.xml文件中的mappers标签中注册。
<?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属性一定是唯一的(包名+文件名 就可以了)-->
<mapper namespace="com.home.entity.userMapper" >
<!-- select标签是一个mybatis的查询标签
属性:
id:要是唯一的不能有重复,因为mybatis通过它来找到所写语句
parameterType:查询语句需要的参数,这里也就是指#{id}中的id类型
resultType:数据库查询结果以什么类型返回
-->
<select id="loadUser" parameterType="int" resultType="com.home.entity.User">
<!-- 这是我们的查询语句 -->
select *
from users
where user_id=#{id}
<!--#{id}是我们要查询是传入的参数 -->
</select>
</mapper>
2.7 编写测试类
package com.home.mybatis; import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.home.entity.User; public class TestApp {
public static void main(String[] args) throws IOException {
// mybatis的配置文件
String resource = "mybatis.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = TestApp.class.getClassLoader()
.getResourceAsStream(resource);
// 构建SqlSessionFactory,通过SqlSessionFactory来获取session
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);
// 通过SqlSessionFactory获取session
SqlSession session = sf.openSession();
// 你要执行个哪一个sql,指定方式是:mapper标签的namespace属性+查询语句标签的id属性(namespace+id)
String statement = "com.home.entity.userMapper.loadUser";
// 查询一条记录,给他指定的sql和参数,参数要与你配置时给定参数类型一致否则会报类型异常
User user = session.selectOne(statement, 1);
// 打印user
System.out.println(user);
}
}
2.8 效果展示
mybatis学习笔记一(入门)的更多相关文章
- 【MyBatis学习笔记】
[MyBatis学习笔记]系列之预备篇一:ant的下载与安装 [MyBatis学习笔记]系列之预备篇二:ant入门示例 [MyBatis学习笔记]系列之一:MyBatis入门示例 [MyBatis学习 ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现
项目结构 基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...
- mybatis学习笔记之基础复习(3)
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...
- mybatis学习笔记之基础框架(2)
mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足s ...
- Mybatis学习笔记汇总(包括源码和jar包)
博客整理 Mybatis学习笔记(一)--对原生jdbc中问题的总结 Mybatis学习笔记(二)--Mybatis框架 Mybatis学习笔记(三)--入门程序 MyBatis学习笔记(四)--入门 ...
- Mybatis学习笔记导航
Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- WebSocket学习笔记——无痛入门
WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报 分类: 物联网学习笔记(37) 版权声明:本文为博主原 ...
随机推荐
- 工作经常使用的SQL整理
工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战 ...
- Android系统源码导入到eclipse
1.把eclipse工程配置文件复制到android源码根目录下 cp development/ide/eclipse/.classpath ./ 2. 在android源码根目录下新建文 ...
- MVC 4 插件化架构简单实现
转ASP.NET MVC 4 插件化架构简单实现-思路篇 用过和做过插件的都会了解插件的好处,园子里也有很多和讨论,但大都只些简单的加载程序集什么的,这里主要讨论的就是使用 ASP.NET MVC ...
- ios学习之常见问题记录
使用Core Data的好处和缺点? 首先这是apple官方极力推荐的,使用它而不是SQLite.好处有大概这么几点:1.减少你model层的代码量,减少50%-70%.无需测试和优化.2.提供了内存 ...
- MVC TO LINQ
// // GET: /Home/ TestTryEntities Db = new TestTryEntities(); public ActionResult Index() { return V ...
- c语言,求字符数组的长度
练手代码,适用初级码农: #include<stdlib.h> #include<stdio.h> #include<assert.h> int count(con ...
- ul和li实现分两列(多列)布局显示
简单语句实现DIV+CSS分两列(多列)布局显示 <style type="text/css"> .my ul { width: 210px; } .my li { w ...
- .net 配置文件 分析 EntityName 时出错
今天用C#读写XML文档,总出现下面的错误: 分析 EntityName 时出错.行1,位置9. 出错地方的源程序为: //...... pathEle.InnerXml = reducedStr(v ...
- C#常用的数据格式转换
用DataFormatString格式化GridView 在 GridView里面显示数据,要显示的数据有好多位小数,就想让它只显示两位小数,在delphi里,直接用DisplayFormat就行了, ...
- 设置共享文件夹,samba和chmod到底谁的权限大
1,必备知识.已经知道的请跳过. 首先科普一下这两个东西:samba和chmod其实是完全不同层面的东西,一个是共享服务协议,一个是权限设置语句.但是他们有一个共同的用途:可以用来实现设置一个共享文件 ...