Mybatis基础

2.ORM概述

2.1.流行的ORM框架

1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架(Hibernate)提供实现.

2.Hibernate:目前最流行的ORM框架.设计灵巧,性能一般(自己去控制性能,不是很好控制),文档丰富.(完全自动操作)
是一个完整的ORM框架,常规CRUD我们不需要写一句SQL; 你表面上看到操作时非常简单,其实底层都是不简单的,它都是做了层层的封装,所以性能方面要比我们写原生sql性能要低的多

3Hibernate.MyBatis:本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps和Dao,允许开发人员直接编写SQL(更好灵活).(Sql操作方式)
MyBatis 并不是一个完整的ORM框架,因为我们还需要自己去写全部SQL,如果查询出来数据的列和对象中的 字段不一致,我们还得手动进行一个映射配置
user_name username

2.2.JDBC操作数据库缺陷

首先,通过jdbc也能实现对象实体和数据库关系的映射.那就是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。 也就是各种Dao(UserDao DeptDao等)。
最大的缺点就是:
1 sql写在JAVA代码中改修改sql必须修改代码,需要重新编译。
2 并不是一个ORM框架

2.3.ORM框架的操作数据库关系方式有很多种,常用的有两种
2.3.1.Sql操作方式(对jdbc进行封装)(mybatis的实现方式)
把SQL配置到配置文件中,通过不同SQL中完成对象实体和数据库关系相互转换的操作
在这里插入图片描述2.3.2.完整操作(JPA、Hibenate实现方式)
在这里插入图片描述2.4.ORM框架工作原理
1、以一定的映射方式,把实体模型和数据库关系的映射
2、ORM框架启动时加载这些映射和数据库配置文件
3、ORM通过对最原生jdbc的封装提供更加便利的操作API
4、Dao通过ORM提供的便捷API以对象的方式操作数据库关系。
在这里插入图片描述

3.MyBatis的认识

3.1.MyBatis的起源

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
2013年11月迁移到Github(到网上去搜索一下)。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。
iBATIS提供的持久层框架包括SQL Maps(XML映射配置)和Data Access Objects(Dao)

3.2.MyBatis的介绍
MyBatis 是一个支持普通SQL查询,存储过程( Oracle最后一天)和高级映射的优秀持久层框架。
MyBatis 消除了几乎所有的JDBC代码和手工设置参数以及结果集的检索。
MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis不能自动创建表,如果能够自动建表,必须自己先准备好建表的sql语句。

4.MyBatis完成查询

操作前的准备工作
创建一个java项目?略过

4.1.1.导入相应的9个jar包
在这里插入图片描述
4.1.2.准备相应的表
咱们对数据库进行操作,肯定需要准备表。这没啥好说的。
现在直接引入我们准备好的product表即可:
在这里插入图片描述
4.1.3.准备相应的domain
建一个Product对象,和数据库的表对应
注:类的名称和类型都和我们的product表相对应匹配

public class Product {
   
	private	Long id;
	//商品名称
	private String productName;
	//品牌
	private String brand;
	//供应商
	private String supplier;
	//零售价
	private Double salePrice;
	//进价
	private Double costPrice;
	//折扣比例
	private Double cutoff;
	//商品分类编号
	private Long dir_id;
	 
   //提供getter与setter...
}

4.2.小结
准备步骤:

1 导包
2 建表(product)
3 domain(Product)
4 准备dao层(CRUD)
5 测试(不是必需的)
注意:我们要引哪些包?
1 一定要引入驱动包(不要忘了)
2 导入mybatis的核心包
3 导入mybatis的依赖包

4.3.product的Dao层准备

/**
 * 商品的持久操作
 */
public interface IProductDao {
   
	/**
	 * 添加一个商品
	 */
	void save(Product p);
	
	/**
	 * 更新一个商品
	 */
	void update(Product p);
	
	/**
	 * 删除一个商品
	 */
	void delete(Long id);
	
	/**
	 * 得到一个商品
	 */
	Product get(Long id);
	/**
	 * 得到所有商品
	 */
	List<Product> getAll();
}

5.MyBatis核心配置文件 MyBatis-Config.xml

<configuration>
	<!-- 环境们 (很多环境的意思)
		default:默认使用哪一个环境(必需对应一个环境的id)
	 -->
	<environments default="development">
		<!-- 
			一个环境  id:为这个环境取唯一一个id名称
		-->
		<environment id="development">
			<!--  
				事务管理   type:JDBC(支持事务)/MANAGED(什么都不做)
			-->
			<transactionManager type="JDBC" />
			<!-- 数据源, 连接池  type(POOLED):MyBatis自带的连接池 -->
			<dataSource type="POOLED">
				<!-- 连接数据库的参数 -->
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql:///mydb" />
				<property name="username" value="root" />
				<property name="password" value="admin" />
			</dataSource>
		</environment>
	</environments>
   <!-- 这个mappers代表的是相应的ORM映射文件 -->
	<mappers> 
		<mapper resource="cn/itsource/domain/ProductMapper.xml" /> 
	</mappers> 

</configuration> 

抽取数据库信息配置文件

<configuration>
	<!-- 引入Properties文件 -->
	<properties resource="db.properties"></properties>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<!-- 根据key拿到properties中的value值 -->
				<property name="driver" value="${db.driver}" />
				<property name="url" value="${db.url}" />
				<property name="username" value="${db.username}" />
				<property name="password" value="${db.password}" />
			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值