mybatis基础使用
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回
目录结构

一、导包
导入mybatis包及其所依赖的lib包
二、根据表创建相应的实体类
三、创建mybatis的配置文件sqlMapConfig.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 <!-- 和spring整合后 environments配置将废除 -->
7 <environments default="development">
8 <environment id="development">
9 <!-- 使用jdbc事务管理 -->
10 <transactionManager type="JDBC" />
11 <!-- 数据库连接池 -->
12 <dataSource type="POOLED">
13 <property name="driver" value="com.mysql.jdbc.Driver" />
14 <property name="url"
15 value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
16 <property name="username" value="root" />
17 <property name="password" value="root" />
18 </dataSource>
19 </environment>
20 </environments>
21
22 <!-- 加载映射文件 -->
23 <mappers>
24 <mapper resource="cn/tx/mapper/PersonTestMapper.xml"/>
25 </mappers>
26 </configuration>
二、配置映射文件PersonTestMapper.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 <!-- namespace:命名空间,用于隔离sql,规范映射文件包的全路径 -->
6 <mapper namespace="cn.tx.mapper.PersonTestMapper">
7 <!-- resultMap用来解决属性与数据库表中列名不一致的情况 -->
8 <resultMap type="cn.tx.model.Person" id="BaseResultMapper">
9 <id column="id" property="id"/>
10 <result column="name" property="name"/>
11 <result column="gender" property="gender"/>
12 <result column="address" property="address"/>
13 <result column="birthday" property="birthday"/>
14 </resultMap>
15 <!--
16 id:sql语句唯一标识
17 parameterType:参数的类型
18 resultType:返回结果的类型
19 -->
20 <select id="selectPersonById" parameterType="java.lang.Integer" resultType="cn.tx.model.Person">
21 select * from person_test where id = #{id}
22 </select>
23
24 <select id="selectPersonCount" resultType="java.lang.Integer">
25 select count(*) from person_test
26 </select>
27 </mapper>
三、运行测试
1 public class TestMyBatis {
2 private SqlSessionFactory sqlSessionFactory;
3 @Before
4 public void setUp() throws Exception {
5 //读取配置文件
6 InputStream is = Resources.getResourceAsStream("sqlMapConfig.xml");
7 //创建sqlSessionFactory
8 sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
9 }
10
11 @Test
12 public void selectPersonById() {
13 //获得sqlSession
14 SqlSession sqlSession = sqlSessionFactory.openSession();
15 try {
16 Person person = sqlSession.selectOne("cn.tx.mapper.PersonTestMapper.selectPersonById", 1);
17 System.out.println(person);
18 } catch (Exception e) {
19 e.printStackTrace();
20 }finally {
21 sqlSession.close();
22 }
23 }
24 @Test
25 public void selectPersonCount(){
26 SqlSession sqlSession = sqlSessionFactory.openSession();
27 try {
28 Integer count = sqlSession.selectOne("cn.tx.mapper.PersonTestMapper.selectPersonCount");
29 System.out.println(count);
30 } catch (Exception e) {
31 e.printStackTrace();
32 }finally {
33 sqlSession.close();
34 }
35 }
36
37 }
mybatis基础使用的更多相关文章
- myBatis 基础测试 表关联关系配置 集合 测试
myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...
- JAVA之Mybatis基础入门--框架搭建与简单查询
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...
- MyBatis基础入门《二十》动态SQL(foreach)
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...
- mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存
关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybat ...
- mybatis基础系列(三)——动态sql
本文是Mybatis基础系列的第三篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(二)--基础语法.别名.输入映射.输出映射 mybatis基础系列(一)--mybatis入门 动态 ...
- mybatis基础系列(二)——基础语法、别名、输入映射、输出映射
增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...
- mybatis基础系列(一)——mybatis入门
好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...
- MyBatis基础入门《十九》动态SQL(set,trim)
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...
- MyBatis基础入门《十八》动态SQL(if-where)
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...
- MyBatis基础入门《十七》动态SQL
MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > ...
随机推荐
- 利用OpenCV进行H264视频编码的简易方式
在Python下,利用pip安装预编译的opencv库,并实现h264格式的视频编码. 1. 安装OpenCV $ pip install opencv-python 建议在python虚拟环境下安装 ...
- SpringBoot中加载XML配置
开篇 在SpringBoot中我们通常都是基于注解来开发的,实话说其实这个功能比较鸡肋,但是,SpringBoot中还是能做到的.所以用不用是一回事,会不会又是另外一回事. 涛锅锅在个人能力能掌握的范 ...
- 游戏UI系统设计
1.需要实现的功能 UI界面的管理(窗体加载.窗体显示.窗体隐藏.窗体销毁等) UI分层次(比如弹窗.广播信息需要在上层) UI界面的出场.入场动画 UI界面的显示效果(比如带透明背景.带高斯模糊背景 ...
- 面试:为了进阿里,又把并发CAS(Compare and Swap)实现重新精读一遍
该系列文章已收录在公众号[Ccww技术博客],原创技术文章第一时间推出 前言 在面试中,并发线程安全提问必然是不会缺少的,那基础的CAS原理也必须了解,这样在面试中才能加分,那来看看面试可能会问那些问 ...
- js+canvas画随机4位验证码
啥都不说了,复制代码吧!!! <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 小程序开发-基础组件icon/text/progress入门
小程序的基础组件--基础内容 基础内容分为三大组件: 1. icon--图标 index.wxml <view class="group"> <block wx: ...
- VMware Workstation Pro15安装路径、修复等问题
我的VMware Worstation 昨晚报错,无法打开虚拟机,VMware Authorization Services 也无法启动,于是卸载重装,结果仍然无法启动VMware Authoriza ...
- 剑指 Offer 42. 连续子数组的最大和
题目描述 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值. 要求时间复杂度为\(O(n)\). 示例1: 输入: nums = [-2,1,-3,4,-1,2,1 ...
- Python学习—Anaconda详细 下载、安装与使用,以及如何创建虚拟环境,不仅仅只有安装步骤哦
上一期我们介绍了Python.Pycharm.Anaconda三者之间的关系以及使用,这一期主要详细介绍如何在Windows上下载和安装工具Anaconda,然后使用其自带的conda管理不同项目的虚 ...
- 异步(async)编程
思考:为什么要使用异步编程? 我们先看看同步方法和异步方法之前在程序中执行的逻辑: 1. 同步方法 static void Main(string[] args) { Console.WriteLin ...