《第6章 初识MyBatis.ppt》由会员分享,可在线阅读,更多相关《第6章 初识MyBatis.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis),第6章 初识MyBatis, MyBatis的下载和使用 MyBatis入门程序, 什么是MyBatis MyBatis的工作原理,作业点评,请简述Spring中事务管理的两种方式 请简述如何使用Annotation方式进行声明式事务管理。,预习检查,什么是MyBatis? MyBatis是如何工作的?,学习目标,主讲内容,6.1 什么是MyBatis,MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架。,6.1 什么是MyBatis,MyBatis框架也被称之为
2、ORM(Object/Relation Mapping,即对象关系映射)框架。所谓的ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。,ORM框架的工作原理,6.1 什么是MyBatis,Hibernate,Hibernate是一个全表映射的框架。 通常开发者只需定义好持久化对象到数据库表的映射关系,就可以通过Hibernate提供的方法完成持久层操作。 开发者并不需要熟练的掌握SQL语句的编写,Hibernate会根据制定的存储逻辑,自动的生成对应的SQL,并调用JDB
3、C接口来执行,所以其开发效率会高于MyBatis。 Hibernate也存在一些缺点,例如它在多表关联时,对SQL查询的支持较差;更新数据时,需要发送所有字段;不支持存储过程;不能通过优化SQL来优化性能等。,MyBatis,MyBatis是一个半自动映射的框架。 “半自动”是相对于Hibernate全表映射而言的,MyBatis需要手动匹配提供POJO、SQL和映射关系,而Hibernate只需提供POJO和映射关系即可。 与Hibernate相比,虽然使用MyBatis手动编写SQL要比使用Hibernate的工作量大,但MyBatis可以配置动态SQL并优化SQL,可以通过配置决定SQL
4、的映射规则,它还支持存储过程等。对于一些复杂的和需要优化性能的项目来说,显然使用MyBatis更加合适。,Hibernate与MyBatis有什么区别?,主讲内容,6.2 MyBatis的下载和使用,MyBatis框架的压缩包,Windows系统下MyBatis框架的源码包,Linux系统下MyBatis框架的源码包,MyBatis的依赖包,MyBatis的核心包,MyBatis使用手册,解压后,6.2 MyBatis的下载和使用,使用MyBatis框架非常简单,只需在应用程序中引入MyBatis的核心包和lib目录中的依赖包即可。,注意:如果底层采用的是MySQL数据库,那么还需要将MySQ
5、L数据库的驱动JAR包添加到应用程序的类路径中;如果采用其他类型的数据库,则同样需要将对应类型的数据库驱动包添加到应用程序的类路径中。,主讲内容,6.3 MyBatis的工作原理,加载映射文件,主讲内容,6.4.1 查询客户,CREATE DATABASE mybatis; USE mybatis; CREATE TABLE t_customer ( id int(32) PRIMARY KEY AUTO_INCREMENT, username varchar(50), jobs varchar(50), phone varchar(16) ); INSERT INTO t_customer
6、VALUES (1, joy, doctor, 13745874578); ,6.4.1 查询客户,在Eclipse中,创建一个名为chapter06的Web项目,将MyBatis的核心JAR包、lib目录中的依赖JAR包,以及MySQL数据库的驱动JAR包一同添加到项目的lib目录下, 并发布到类路径中。,2,6.4.1 查询客户,由于MyBatis默认使用log4j输出日志信息,所以如果要查看控制台的输出SQL语句,那么就需要在classpath路径下配置其日志文件。在项目的src目录下创建log4j.properties文件。,3,# Global logging configurati
7、on log4j.rootLogger=ERROR, stdout # MyBatis logging configuration. .itheima=DEBUG # Console output. log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p %t - %m%n,6.4.1 查询客户,在src目录下,创建一个c
8、om.itheima.po包,在该包下创建持久化类Customer,并在类中声明id、username、jobs和phone属性,及其对应的getter/setter方法。,4,public class Customer private Integer id; private String username; private String jobs; private String phone /省略Getter和Setter方法 Override public String toString() return Customer id= + id + , username= + username
9、 + , jobs= + jobs + , phone= + phone + ; ,6.4.1 查询客户,6.4.1 查询客户,在src目录下,创建一个com.itheima.mapper包,并在包中创建映射文件CustomerMapper.xml。, select * from t_customer where id = #id ,5,在src目录下,创建MyBatis的核心配置文件mybatis-config.xml。, ,6,6.4.1 查询客户,6.4.1 查询客户,在src目录下,创建一个com.itheima.test包,在该包下创建测试类MybatisTest,并在类中编写测试方
10、法findCustomerByIdTest()。,public class MybatisTest Test public void findCustomerByIdTest() throws Exception String resource = mybatis-config.xml; InputStream inputStream = Resources.getResourceAsStream(resource SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); S
11、qlSession sqlSession = sqlSessionFactory.openSession(); Customer customer = sqlSession.selectOne(com.itheima.mapper + “.CustomerMapper.findCustomerById”, 1); System.out.println(customer.toString(); sqlSession.close(); ,7,6.4.1 查询客户, select * from t_customer where username like %$value% ,读取配置文件,通过Sql
12、SessionFactory创建SqlSession,根据配置文件构建SqlSessionFactory,1,2,3,使用SqlSession对象操作数据库,4,关闭SqlSession,5,6.4.1 查询客户,6.4.2 添加客户,6.4.2 添加客户,6.4.3 更新客户,6.4.3 更新客户,6.4.4 删除客户,6.4.4 删除客户,本章本章首先对MyBatis框架的概念、特点和下载使用进行了讲解,然后对MyBatis框架的工作原理进行了流程分析,最后通过一个简单的增删改查案例来演示MyBatis框架的基本使用。 通过本章的学习,读者可以了解MyBatis的概念和作用,熟悉MyBatis的工作原理,并能够使用MyBatis框架完成基本的数据库操作。,6.5 本章小结,作业&预习, 本章作业 请简述MyBatis框架与Hibernate框架的区别。 请简述MyBatis的工作执行流程。 预习作业 MyBatis配置文件中的各个元素有什么作用? MyBatis映射文件中有哪些常用元素?,