您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > mybatis入门到精通
mybatis入门到精通以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下mybatis,因此就有了这个系列的mybatis教程.什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlanOldJavaObjects,普通的Java对象)映射成数据库中的记录.orm工具的基本思想无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:1.从配置文件(通常是XML配置文件中)得到sessionfactory.2.由sessionfactory产生session3.在session中完成对数据的增删改查和事务提交等.4.在用完之后关闭session。\5.在java对象和数据库之间有做mapping的配置文件,也通常是xml文件。mybatis实战教程(mybatisinaction)之一:开发环境搭建mybatis的开发环境搭建,选择:eclipsej2ee版本,mysql5.1,jdk1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。首先建立一个名字为MyBaits的dynamicwebproject1.现阶段,你可以直接建立java工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。2.将mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar拷贝到web工程的lib目录.3.创建mysql测试数据库和用户表,注意,这里采用的是utf-8编码创建用户表,并插入一条测试数据程序代码CreateTABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`userName`varchar(50)DEFAULTNULL,`userAge`int(11)DEFAULTNULL,`userAddress`varchar(200)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;InsertINTO`user`VALUES('1','summer','100','shanghai,pudong');到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。1.在MyBatis里面创建两个源码目录,分别为src_user,test_src,用如下方式建立,鼠标右键点击JavaResource.2.设置mybatis配置文件:Configuration.xml,在src_user目录下建立此文件,内容如下:程序代码?xmlversion=1.0encoding=UTF-8?!DOCTYPEconfigurationPUBLIC-//mybatis.org//DTDConfig3.0//EN=Usertype=com.yihaomen.mybatis.model.User//typeAliasesenvironmentsdefault=developmentenvironmentid=developmenttransactionManagertype=JDBC/dataSourcetype=POOLEDpropertyname=drivervalue=com.mysql.jdbc.Driver/propertyname=urlvalue=jdbc:mysql://127.0.0.1:3306/mybatis/propertyname=usernamevalue=root/propertyname=passwordvalue=password//dataSource/environment/environmentsmappersmapperresource=com/yihaomen/mybatis/model/User.xml//mappers/configuration3.建立与数据库对应的javaclass,以及映射文件.在src_user下建立package:com.yihaomen.mybatis.model,并在这个package下建立User类:程序代码packagecom.yihaomen.mybatis.model;publicclassUser{privateintid;privateStringuserName;privateStringuserAge;privateStringuserAddress;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetUserAge(){returnuserAge;}publicvoidsetUserAge(StringuserAge){this.userAge=userAge;}publicStringgetUserAddress(){returnuserAddress;}publicvoidsetUserAddress(StringuserAddress){this.userAddress=userAddress;}}同时建立这个User的映射文件User.xml:程序代码?xmlversion=1.0encoding=UTF-8?!DOCTYPEmapperPUBLIC-//mybatis.org//DTDMapper3.0//EN=com.yihaomen.mybatis.models.UserMapperselectid=selectUserByIDparameterType=intresultType=Userselect*from`user`whereid=#{id}/select/mapper下面对这几个配置文件解释下:1.Configuration.xml是mybatis用来建立sessionFactory用的,里面主要包含了数据库连接相关东西,还有java类所对应的别名,比如typeAliasalias=Usertype=com.yihaomen.mybatis.model.User/这个别名非常重要,你在具体的类的映射中,比如User.xml中resultType就是对应这里的。要保持一致,当然这里的resultType还有另外单独的定义方式,后面再说。2.Configuration.xml里面的mapperresource=com/yihaomen/mybatis/model/User.xml/是包含要映射的类的xml配置文件。3.在User.xml文件里面主要是定义各种SQL语句,以及这些语句的参数,以及要返回的类型等.开始测试在test_src源码目录下建立com.yihaomen.test这个package,并建立测试类Test:程序代码packagecom.yihaomen.test;importjava.io.Reader;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importcom.yihaomen.mybatis.model.User;publicclassTest{privatestaticSqlSessionFactorysqlSessionFactory;privatestaticReaderreader;static{try{reader=Resources.getResourceAsReader(Configuration.xml);sqlSessionFactory=newSqlSessionFactoryBuilder().build(reader);}catch(Exceptione){e.printStackTrace();}}publicstaticSqlSessionFactorygetSession(){returnsqlSessionFactory;}publicstaticvoidmain(String[]args){SqlSessionsession=sqlSessionFactory.openSession();try{Useruser=(User)session.selectOne(com.yihaomen.mybatis.models.UserMapper.selectUserByID,1);System.out.println(user.getUserAddress());System.out.println(user.getUserName());}finally{session.close();}}}现在运行这个程序,是不是得到查询结果了。恭喜你,环境搭建配置成功,接下来第二章,将讲述基于接口的操作方式,增删改查。整个工程目录结构如下:除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!mybatis实战教程(mybatisinaction)之二:以接口的方式编程前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:session.selectOne(com.yihaomen.mybatis.models.UserMapper.selectUserByID,1)其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细过程:在src_user源码目录下建立com.yihaomen.mybatis.inter这个包,并建立接口类IUserOperation,内容如下:程序代码packagecom.yihaomen.mybatis.inter;importcom.yihaomen.mybatis.model.User;publicinterfaceIUserOperation{publicUserselectUserByID(intid);}请注意,这里面有一个方法名selectUserByID必须与User.xml里面配置的select的id对应(selectid=selectUserByID)
本文标题:mybatis入门到精通
链接地址:https://www.777doc.com/doc-4458060 .html