初识Mybatis

MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。
MyBatis的前身是ibatis,但是在配置sql的语法上有明显的区别,并且spring目前的版本封装mybatis,至于mybatis-spring.jar文件也是mybatis团队复杂开发的jar包,用于和spring整合。之前ibatis的源码托管方是apache,而mybatis是google。
mybatis的结构主要分三层1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
null(2)数据处理层[1]:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。
它主要的目的是根据调用的请求完成一次数据库操作。

(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西
将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
首先明白Mybatis的构建,它和JDBC最大的差别就是能够实现半自动化,它的sql语句由很大的灵活性,能实现数据库的数据交互。对于刚入门的新手比较好学习。
1.首先先导入mybatis-3.3.1.jar和mysql-connector-java-5.1.18-bin.jar两个jar包。通过SqlSession语句来获取数据库信息,通过配置文件来构建SqlSessionFactory,之后再通过SqlSessionFactory打开一个数据库会话。

'public SqlSession getSqlSession() throws IOException'
{
//通过配置文件来获取数据库信息
Reader reader=Resources.getResourceAsReader("Mybatis/config/Configuration.xml");
//通过配置文件来构建一个SqlSessionFactory
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
//通过SqlSessionFactory打开一个数据库会话
SqlSession sqlSession=sqlSessionFactory.openSession();
return sqlSession;
}

2.配置好xml文件,Configuration.xml文件是实现MyEclipse和mysql数据库的数据交互
里面填写你的数据库类型,还有连接的数据库名字,连接好你的数据库驱动,然后还有你的用户名和密码

3.MyEclipse建立与数据库表与之相对应的Bean

4.然后就是配置与数据库表相对应的xml文件,我们与MyEclipse工具之间,实现数据交互也是通过里面的sql语句。(查看mysql数据库的程序是Navicat for MySQL)
你要对哪个数据库里面的多少张表进行操作,就建立与之相对应的多少个xml文件.

接下来是关于配置xml文件的一些标签作用

<mapper namespace="mybatis.servce.IStudent">

  <resultMap type="mybatis.bean.Student" id="Student">
   <!-- 拥有主键的话就用ID标签 -->
    <id column="ID" jdbcType="INTEGER" property="id"/> 
    <result column="NAME" jdbcType="VARCHAR" property="name"/>
  </resultMap>
  </mapper>

namespace:xml文件的唯一的名字
type:你数据库表对应的bean的位置
column:数据库列的名字,也就是上面的ID(可能会改变)
jdbcType:列的属性,数据库里是int,这里用Integer
property:对应你bean层的属性名字

接下来是xml里面对应的sql语句

   <select id="queryStudentList"  parameterType="mybatis.bean.Student" resultMap="Student">
    select s.ID S_ID,s.NAME,t.ID,t.TEACHER,t.STUDENT_ID,g.ID,g.MATH,g.ENGLISH,g.CHCHINESE from Student s left join (Teacher t,Grade g)
    on s.ID=t.STUDENT_ID and s.ID=g.STUDENT_ID  where
    <if test="name !=null and !"".equals(name.trim())"> s.NAME=#{name}</if>
  </select>

先说明一下在配置xml中有几种标签与sql语句很相似

  • select
  • delete
  • update
  • insert
    它们在这里是标签,你使用哪种sql语句,就使用哪一个标签,否则会出现错误
    id:按我的话说就是方法名字,在这个XML文件中要唯一
    parameterType:从外面传回来的数据类型(只能有一个数据类型)
    resultMap:返回的数据类型
    中间则是sql语句

collection标签:
一对多的意思就是,一条信息对于其他多条信息,比如一个学生被多个老师教过
association标签:
一对一:一条信息对一条信息,比如人和身份证
多对一:多条信息对一条信息,各科学习成绩和学生
!!!注意:千万要把这两个标签区分看来,你的bean层也需要把各个信息都分开来
如果你出现一些空指针的错误,不妨在那里找找原因

搜狗截图17年07月17日2245_2.png

比较详细的视频资源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容