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基础使用的更多相关文章

  1. myBatis 基础测试 表关联关系配置 集合 测试

    myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...

  2. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  3. MyBatis基础入门《二十》动态SQL(foreach)

    MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...

  4. mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存

    关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybat ...

  5. mybatis基础系列(三)——动态sql

    本文是Mybatis基础系列的第三篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(二)--基础语法.别名.输入映射.输出映射 mybatis基础系列(一)--mybatis入门 动态 ...

  6. mybatis基础系列(二)——基础语法、别名、输入映射、输出映射

    增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...

  7. mybatis基础系列(一)——mybatis入门

    好久不发博客了,写博文的一个好处是能让心静下来,整理下之前学习过的一些知识一起分享,大神路过~ mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...

  8. MyBatis基础入门《十九》动态SQL(set,trim)

    MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...

  9. MyBatis基础入门《十八》动态SQL(if-where)

    MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...

  10. MyBatis基础入门《十七》动态SQL

    MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > ...

随机推荐

  1. Git的详细使用

    关于Git的详细使用,下面博主的博客写的非常的详细! 可以参考一下. https://blog.csdn.net/qq_19835247/article/details/104620042 人生需要准 ...

  2. 水滴app

    在选择了软件工程专业之后,指导教师也让我们参加到了学长学姐的作业之中来,使用学长学姐们的软件并写出自己的使用评价以及自己的一些小评价. 这体验的是第三十二组学长们的软件,他们的队名是自然选择,他们做的 ...

  3. txt工具大全(TXT文件合并、txt批量替换、编码转换器)

    http://www.wocaoseo.com/thread-301-1-1.html txt是我们在seo中常用的处理对象,但是在这个处理过程中可能有些细节需要注意,比如有些有编码问题,我们就需要编 ...

  4. ES5和ES6的继承对比

    ES5的继承实现,这里以最佳实践:寄生组合式继承方式来实现.(为什么是最佳实践,前面有随笔讲过了,可以参考) function Super(name) { this.name = name; } Su ...

  5. 【Android】Android开发启动app弹出一张广告图片,Dialog可以查看大图,查看某个图片功能

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...

  6. HTTPS的简介

    一.什么是HTTPS HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版.现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面. HTTPS主要作用是: (1) ...

  7. D - 英文题 (多组背包)

    The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a gian ...

  8. Zabbix Server宕机报“__zbx_mem_malloc(): out of memory (requested 96 bytes)”

    早上登录Zabbix的时候,发现其提示"Zabbix server is not running: the information displayed may not be current& ...

  9. Python爬Boss,找工作,快人一步!!!

    通过职位搜索"Python开发",看下搜索的结果: https://www.zhipin.com/job_detail/?query=python开发&city=10102 ...

  10. 微信开发者工具集成GitHub,多人协调开发,上传拉取等

    一,准备环境 1,提前安装git环境和GitHub做集成,不做多解释: 1,准备微信项目代码: 2,创建GitHub仓库: 二,创建GitHub仓库 1,创建一个空的GitHub仓库,不要任何文件和不 ...