mybatis教程.docx
- 文档编号:3862466
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:57
- 大小:875.95KB
mybatis教程.docx
《mybatis教程.docx》由会员分享,可在线阅读,更多相关《mybatis教程.docx(57页珍藏版)》请在冰豆网上搜索。
mybatis教程
mybatis实战教程(mybatisinaction)之一:
开发环境搭建
mybatis的开发环境搭建,选择:
eclipsej2ee版本,mysql5.1,jdk1.7,mybatis3.2.0.jar包。
这些软件工具均可以到各自的官方网站上下载。
首先建立一个名字为MyBaits的dynamicwebproject
1.现阶段,你可以直接建立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.0"encoding="UTF-8"?
>
DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN"
"http:
//mybatis.org/dtd/mybatis-3-config.dtd">
mysql: //127.0.0.1: 3306/mybatis"/> 3.建立与数据库对应的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.0"encoding="UTF-8"? > DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN" "http: //mybatis.org/dtd/mybatis-3-mapper.dtd"> select*from`user`whereid=#{id} 下面对这几个配置文件解释下: 1.Configuration.xml是mybatis用来建立sessionFactory用的,里面主要包含了数据库连接相关东西,还有java类所对应的别名,比如 要保持一致,当然这里的resultType还有另外单独的定义方式,后面再说。 2. Configuration.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对应( 重写测试代码 程序代码 publicstaticvoidmain(String[]args){ SqlSessionsession=sqlSessionFactory.openSession(); try{ IUserOperationuserOperation=session.getMapper(IUserOperation.class); Useruser=userOperation.selectUserByID (1); System.out.println(user.getUserAddress()); System.out.println(user.getUserName()); }finally{ session.close(); } } 整个工程结构图现在如下: 运行这个测试程序,就可以看到结果了。 mybatis实战教程(mybatisinaction)之三: 实现数据的增删改查 前面已经讲到用接口的方式编程。 这种方式,要注意的一个地方就是。 在User.xml 的配置文件中,mappernamespace="com.yihaomen.mybatis.inter.IUserOperation",命名空间非常重要,不能有错,必须与我们定义的package和接口一致。 如果不一致就会出错,这一章主要在上一讲基于接口编程的基础上完成如下事情: 1.用mybatis查询数据,包括列表 2.用mybatis增加数据 3.用mybatis更新数据. 4.用mybatis删除数据. 查询数据,前面已经讲过简单的,主要看查询出列表的 查询出列表,也就是返回list,在我们这个例子中也就是List 程序代码 --为了返回list类型而定义的returnMap--> 查询列表的语句在User.xml中 程序代码 --返回list的select语句,注意resultMap的值是指向前面定义好的--> select*fromuserwhereuserNamelike#{userName} 在IUserOperation接口中增加方法: publicList 现在在Test类中做测试 程序代码 publicvoidgetUserList(StringuserName){ SqlSessionsession=sqlSessionFactory.openSession(); try{ IUserOperationuserOperation=session.getMapper(IUserOperation.class); List for(Useruser: users){ System.out.println(user.getId()+": "+user.getUserName()+": "+user.getUserAddress()); } }finally{ session.close(); } } 现在在main 方法中可以测试: 程序代码 publicstaticvoidmain(String[]args){ TesttestUser=newTest(); testUser.getUserList("%"); } 可以看到,结果成功查询出来。 如果是查询单个数据的话,用第二讲用过的方法就可以了。 用mybatis增加数据 在IUserOperation接口中增加方法: publicvoidaddUser(Useruser); 在User.xml中配置 程序代码 --执行增加操作的SQL语句。 id和parameterType 分别与IUserOperation接口中的addUser方法的名字和 参数类型一致。 以#{name}的形式引用Student参数 的name属性,MyBatis将使用反射读取Student参数 的此属性。 #{name}中name大小写敏感。 引用其他 的gender等属性与此一致。 seGeneratedKeys设置 为"true"表明要MyBatis获取由数据库自动生成的主 键;keyProperty="id"指定把获取到的主键值注入 到Student的id属性--> useGeneratedKeys="true"keyProperty="id"> insertintouser(userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress}) 然后在Test中写测试方法: 程序代码 /** *测试增加,增加后,必须提交事务,否则不会写入到数据库. */ publicvoidaddUser(){ Useruser=newUser(); user.setUserAddress("人民广场"); user.setUserName("飞鸟"); user.setUserAge(80); SqlSessionsession=sqlSessionFactory.openSession(); try{ IUserOperationuserOperation=session.getMapper(IUserOperation.class); userOperation.addUser(user); mit(); System.out.println("当前增加的用户id为: "+user.getId()); }finally{ session.close(); } } 用mybatis更新数据 方法类似,先在IUserOperation中增加方法: publicvoidaddUser(Useruser); 然后配置User.xml 程序代码 updateusersetuserName=#{userName},userAge=#{userAge},userAddress=#{userAddress}whereid=#{id} Test类总的测试方法如下: 程序代码 publicvoidupdateUser(){ //先得到用户,然后修改,提交。 SqlSessionsession=sqlSessionFactory.openSession(); try{ IUserOperationuserOperation=session.getMapper(IUserOperation.class); Useruser=userOperation.selectUserByID(4); user.setUserAddress("原来是魔都的浦东创新园区"); userOperation.updateUser(user); mit();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mybatis 教程