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 > ...
随机推荐
- 01.图文理解RDB和AOF两种持久化机制
一.RDB和AOF两种持久化机制的介绍 RDB:对redis中的数据执行周期性的持久化,每隔一个时刻生成一个RDB文件,这个RDB文件包含这个时刻所有的数据. AOF:记录每条写入命令,以append ...
- vue中页面卡顿,使用懒加载
为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题. 懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载. 常用的懒加载方式有两种:即使用vue异步组件 和 ES中的imp ...
- jQuery入口函数与JavaScript入口函数的区别
jQuery 的入口函数是在 html 所有标签 (DOM) 都加载之后就会去执行 JavaScript 的 window.onload 时间是等到所有内容,包括外部图片之类的文件加载完成 ...
- Jmeter逻辑控制器,简单操作
1. 2. 循环控制器可以设置请求的循环次数或永久循环, . 作用:改控制器下的取样器请求可以循环运行. 3. 请求需要拖拽到循环控制器里, 4.循环次数乘以线程数 得到如下图: 成功了 二. 事务 ...
- Agumaster添加股票日交易爬虫画面
- 20190923-08Linux压缩和解压类 000 016
gzip/gunzip 压缩 1.基本语法 gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令) 2.经验技巧 (1)只能压缩文 ...
- HTML绘制表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- App测试理论简介
一.App测试常见关注点 1.App的功能测试 功能测试都是我们首要测试的,只有功能实现了才算符合上线发布的最低标准.我们需要检测产品功能是否已实现.产品功能是否符合设计要求.产品功能是否有重复.产品 ...
- shell数组的用法
在shell里面想获取某个变量的值,使用$符开头,如:$a或者${a}即可. 获取数组长度 arr_length=${#arr_number[*]}或${#arr_number[@]}均可,即形式:$ ...
- Dubbo必须会的知识点
前言 应用架构演变: 单一架构ORM:单机构建网站,是一个高内聚版本,所有功能部署在一起.通过一个容器和JSP/Servlet技术或通过一些开源的框架如SSM以及SSH,通过数据库管理系统来存储数据. ...