JDBC的实现与框架的出现
开始的时候使用的是原始的JDBC操作,后来发展成hibernate,到现在的mybatis
1-原始的JDBC过程如下所示:
加载驱动:Class.forName("com.mysql.jdbc.Driver");
建立连接:DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8", user, password);
编写SQL:String sql="select * from user ";
编译:stmt = conn.createStatement();
执行SQL,封装结果。
这种方式实现的功能比较简单,因为SQL实在Java代码里面实现的,耦合度较高,不容易进行维护,比如,一个完成的SQL,在发布后进行优化SQL,这个时候需要重新找到SQL修改,然后编译,部署,发布等,比较麻烦,而且不知道有多少个地方用到这个优化的SQL,所以不好维护;并且在开发后修改SQL进行是很常见的,这个时候缺点就很明显。
Hibernate的出现,解决了以上的问题,把JDBC与数据库交互并获取数据进行封装,这些过程都有框架进行操作,而不是由程序员进行编写代码
hibernate是持久化框架,并且是全自动化的全映射文件,不需要自己写文件,把Javabean文件映射到对应的数据表中的数据。
优点是:hibernate框架把原始的JDBC一系列操作进行了封装,不需要自己编写SQL语句
缺点也很明显:由于把JDBC全部封装,不需要自己编写SQL,所以不容易对SQL进行优化,而且由于是全映射的,所以hibernate是查询出所有字段的数据,不容易只查询有一个,对SQL进行优化需要学习HQL来解决以上的问题
继hibernate后出现了mybatis框架:
这个框架相较于hibernate而言,最大的好处就是可以自己编写SQL语句,而其他的部分进行封装,把SQL的编写交给开发人员,可以使SQL的编写更有灵活性,并且更容易学些。
由于SQL的编写有开发人员开发,其他的有mybatis框架来执行。所以mybatis是一个半自动化的持久层框架。
Java代码和SQL相分离,功能更清晰,一个专注业务实现,一个专注数据
mybatis的下载路径:
mybatis的开发一般步骤如下所示:
1.导入jar包和MySQL的驱动包
2.创建工程后编写mybatis的配置文件
3.编写JavaBean文件和对应的映射文件
4.把编写的与JavaBean对应的映射文件加入到mybatis的配置文件中
5.编写测试文件,进行数据测试
主要的过程:
通过配置文件获取SqlLSessionFactory,然后从SqlSessionFactory中获取SqlSession,SqlSession就可以操作SQL进行增删改查并返回数据