ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:110.41KB ,
资源ID:9042396      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9042396.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Mybatis 实战使用详细说明docx.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Mybatis 实战使用详细说明docx.docx

1、Mybatis 实战使用详细说明docxMybatis3.1实战1、 前言 22、 什么是mybatis 23、 Mybatis入门实例 24、 Mybatis中的增、删、改、查 85、 Mybatis新特性介绍 106、 mybatis-config.xml中的元素介绍 117、 Mapper配置文件中的用法 188、 Mybatis参数传递 209、 基于注解的sql语句 2110、 动态sql语句 2211、 mybatis中的一对多、一对一、多对多 2412、 自定义类型处理器 2813、 Mybatis缓存的一点说明 3114、 Spring3.1+springmvc+mybatis

2、3.1集成 31备注 40Like模糊查询 40排序 40if元素中的条件语句 411、 前言 随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis。相信很多朋友以前看过ibatis2.x,对ibatis2.x也比较熟悉,随着技术的发展,我们必须跟得上技术发展的步伐,不能永远停留在原来的技术上而不做进一步学习。由于在我的一个新项目中采用了mybatis,为此我发了几天来学习了mybatis,相对hibernate来说,本人感觉mybatis相对来说更加简单,特别是熟悉sql语句的朋友们,你在采用mybatis时,你会觉得跟传统的jdbc方式来操作数据库没什么差

3、别,只是mybatis帮你做了很多原来你在用jdbc来实现时的很多工作。我们来看看mybatis包含了哪些新特性。 Mybatis实现了接口绑定,使用更加方便 对象关系映射的改进,效率更高 MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。在本学习教程中,全方位介绍了mybatis中的各种特性,里面的实例都是采用比较简单的实例来实现,对于有些没有介绍到的特性,大家可以参考官方文档。本教程采用的是mybatis最新的版本mybatis3.1,并结合了maven来写这个教程,所以大家需要对maven有所了解。2、 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高

4、级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。3、 Mybatis入门实例 在maven中加入mybatis、mysql、junit的依赖包: junit junit 4.10 test org.mybatis mybatis 3.1.1 mysql mysql-connector-java 5.1.21 commons-logging commons-logging 1

5、.1.1 log4j log4j 1.2.17 创建数据库 Create table student(id int primary key autoincrement,age int,name varchar(23); 在mysql数据中创建student表。 配置SqlmapConfiguration.xml,在src目录下面的resources目录下面创建此文件,内容如下: 其中外部引入的jdbc.properties内容如下:database.driver = com.mysql.jdbc.Driverdatabase.url = jdbc:mysql:/localhost:3306/m

6、ybatis_01database.user = rootdatabase.password = marcle 创建mapper文件,在resources目录下面的case文件夹下面创建student.xml文件 insert into student (age,name) values (#age,#name) select * from student where id=#id 创建实体类及接口Student类 public class Student implements Serializable private Long id; private int age; private Str

7、ing name; public Long getId() return id; public void setId(Long id) this.id = id; public int getAge() return age; public void setAge(int age) this.age = age; public String getName() return name; public void setName(String name) this.name = name; StudentDao接口public interface StudentDao public Student

8、 select(int id); public void insert(Student student); SqlMapUtil 工具类及数据调用 public class SqlMapUtils private static final Logger logger = LogManager.getLogger(SqlMapUtils.class); private static final String CONFIG_FILE_PATH = mybatis-config.xml; private SqlSessionFactory sessionFactory=null; private S

9、qlSession session=null; private static SqlMapUtils instance=null; public SqlMapUtils() Reader reader=null; try reader = Resources.getResourceAsReader(CONFIG_FILE_PATH); sessionFactory = new SqlSessionFactoryBuilder().build(reader); session = sessionFactory.openSession(); catch (IOException e) / TODO

10、 Auto-generated catch block logger.fatal(IO Exception occured while reading the Configuration File n + e); e.printStackTrace(); finally if(reader!=null) try reader.close(); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); public static synchronized SqlMapUtils getInstance

11、() if (instance = null ) synchronized(SqlMapUtils.class) instance = new SqlMapUtils(); return instance; public SqlSession getSession() if (session = null) throw new RuntimeException(Create SqlSession failed.); return session; 完成上面的步骤后,我们写一个测试类,测试上面所写的内容:public class StudentDaoTest private StudentDao

12、 studentMapper; private SqlSession session; Before public void init() session = SqlMapUtils.getInstance().getSession(); studentMapper = session.getMapper(StudentDao.class); Test public void testInsert() Student student = new Student(); student.setAge(34); student.setName(luce); studentMapper.insert(

13、student); mit(); Test public void testFind() Student student = studentMapper.select(3); System.out.println(student.getName(); After public void end() session.close(); 通过上面的几个步骤,我们就创建了一个完整的mybatis实例,通过这个实例,想必大家对mybatis有个初步的了解了。4、 Mybatis中的增、删、改、查 这部分将向大家介绍对数据库得基本操作:增、删、改、查,在下面的实例中我们仍然以上面讲到的入门列子中的数据库、

14、实体类、SqlmapConfiguration.xml配置文件及sqlMapUtil类,所以在本节中,只写明本节涉及到的内容,对于重复的内容大家可以参考上面的入门列子。1、student.xml配置文件 insert into student (age,name) values (#age,#name) select * from student where id=#id update student set age=#age,name=#name where id=#id delete from student where id=#id 上面配置文件中的insert、delete、updat

15、e、select元素,就是我们所说的增、删、改、查。对上面涉及的属性做简要说明: Id即这个元素唯一编号,必须唯一,不然mybatis找不到要操作的语句 ResultType 结果类型,即我们要返回的数据要转换为什么类型 ParameterType 传入参数类型 ResultMap 结果集map,对于我们实体类中的属性于数据库中的字段设置不一样,我们可以在这里进行配置。 接口 public interface StudentDao public void update(Student student); public void delete(int id); public Student se

16、lect(int id); public void insert(Student student);接口定义很简单,但是接口中的名字必须与student中的id对应起来,如果接口定义的操作在student.xml中找不到对应id的sql语句,将会报错。5、 Mybatis新特性介绍 1、Mybatis实现了接口绑定,使用更加方便。 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。 这可以说是Mybatis最重要的改进。 注意: 虽然Mybatis支

17、持在接口中直接使用annotation的配置方式来简化配置, 不过强烈建议仍然使用xml配置的方式。毕竟annotation的配置方式功能有限且代码入侵性太强。使用xml配置方式才能体现出Mybatis的优势所在 2、对象关系映射的改进,效率更高 相 信很多在使用ibatis2.x的朋友并没有通过ibatis的xml映射文件来实现对象间的关系映射。其实也确实没有必要那么做,因为 ibatis2.x采用的是“嵌套查询”的方式将对象之间的关系通过查询语句的直接拼装来实现,其效果和在DAO或Service中自行封装是一样的。 不过这种方式存在“N+1查询问题”。 概括地讲,N+1查询问题可以是这样引起的: 你执行了一个单独的SQL语句来获取结果列表(就是+1)。 对返回的每条记录,你执行了一个查询语句来为每个加载细节(就是N)。 这个问题会导致成百上千的SQL语句被执行。这通常不是期望的。 而在Mybatis中,除了兼容ibatis2.x中的“嵌套查询”方式外,还提供了直接“嵌套结果”的方式,其效果相当于直接通过一句sql将查询出的dto对象自动封装成所需的对象。 具体实现方法请自行参考My

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1