Jdbc:
jdbc概念理解:
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC是Java提供的一个操作数据库的API。
java database connectivity:是java连接数据库技术的统称。
- 使用jdbc提供的方法,可以发送字符串类型的sql语句到数据库管理软件(MySQL,Oracle等),并且获得语句的执行结果,进而实现数据库数据的crud。
- java只提供jdbc的规范(接口)在java.aql和javax.sql包下。具体实现由第三方数据库厂商完成具体的实现驱动代码(jar),实现代码可能不同,但是方法都相同。
- jdbc本身就是多态的体现,是面向接口编程的,我们要干的事情是用java的接口去接jdbc的具体实现。(jar包:java程序达成的一种压缩包,你可以将这些jar包导入你的项目中,然后你可以使用这个java程序中的类和方法以及属性)
我们平时使用jdbc进行编程,大致需要下面几个步骤:
1,使用jdbc编程需要连接数据库,注册驱动和数据库信息;
2,操作Connection,打开Statement对象;
3,通过Statement对象执行SQL,返回结果到ResultSet对象;
4,使用ResultSet读取数据,然后通过代码转化为具体的POJO(Plain Old Java Objects,普通的Java对象)对象;
5,关闭数据库相关的资源。
MyBatis(半自动,需要手动写sql)
MyBatis是一个持久层ORM框架,底层是在JDBC的基础上进行了扩展和封装。
持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。
将内存中的数据保存到数据库中,以防止重启后数据丢失。
Mybatis需要提供的映射文件包含了一下三个部分:
- sql,
- 映射规则,
- pojo(Plain Old Java Objects,普通的Java对象)。
在Mybatis里面你需要自己编写sql,可以配置动态sql,同时也可以对sql进行优化,通过配置决定你的sql映射规则,也能支持存储过程,所以对于一些复杂和需要优化性能的sql查询它就更加方便。
Mybatis几乎可以做到jdbc所有能做到的事情。
Hibernate(全自动,不需要写sql)
- Hibernate是一个完整的ORM框架,功能更加强大,操作更加简单(性能不好控制),Hibernate是一个完整的ORM框架,使用更加简单,功能更加强大,性能不好控制(中小项目使用的多)
- Mybatis也封装了很多的原生的JDBC,是一个半ORM框架,性能可控,mybatis不是完整的ORM框架,需要自己编写SQL语句。