发表于: 2019-08-29 23:16:17

1 610


今天完成的事:
1、总结JDBC和JDBCTemplate的区别,以及JDBCTemplate是否体现spring的特点。
(1)JDBC即Java访问数据库的一种规范,可以看做是一个接口。使用Java语句来执行sql语句,操作数据库。
JDBC的原理就是通过Connection这个类获取数据库的连接,然后通过PreparedStatement类处理SQL语句,再通过它的.setObject方法传入数据,最后通过方法.executeUpdate()和.executeQuery()执行更新。
详细步骤即:
导入、注册驱动;
建立数据库连接;
创建执行sql的对象;
定义sql语句;
执行sql语句;
遍历查询结果(如果需要的话);
处理抛出的任何异常;
处理事务;
释放资源。
JDBCTemplate则是Spring框架对JDBC的封装的模板。
Spring对数据库的操作在JDBC上做了深层次的封装,使用Spring的注入功能,可以把DataSource(数据库连接池)注册到JDBCTemplate中。
详细步骤即:
建立数据库连接;
创建jdbcTemplate对象;
定义sql语句;
调用方法执行sql语句;
输出结果。
关于两者之间的区别,但看步骤其实相差的并不多,但是JDBC操作数据库需要每次都连接,处理sql语句,输入数据,释放资源,关闭数据库,还可能忘记关闭数据库而导致连接占用。而JDBCTemplate所省略的步骤恰恰就是比较繁琐、重复性很高的部分,在JDBC中这些代码占据了较大的篇幅,增加了代码的复杂性,主要的sql语句并不突出。JDBCTemplate将一些步骤分到xml配置文件中,不仅提高了数据修改的简便性,大大简化了数据库的操作,还使得代码简洁,sql语句清晰明了通过JDBCTemplate我们只需要更改部分内容即可,不需要进行全局修改,Spring将替我们完成所有JDBC底层细节处理工作,帮我们省去了很多麻烦。
其实查看了Mybatisa的大概步骤,发现连sql语句都放到xml文件中了,感觉xml文件的重要性越来越大了,将一些可能会经常修改的数据放置在xml文件中,方便后期的维护,也能简化代码,编程思路清晰明了。
(2)关于JDBCTemplate是否体现spring的特点,首先看下什么是spring。
Spring是一个轻量级的IOC和AOP容器框架。Spring是非侵入式的(所谓非侵入式就是远程调试而不植入),基于spring开发的应用一般不依赖于spring的类。
而IOC:
IOC,另外一种说法叫DI(Dependency Injection),即依赖注入。它并不是一种技术实现,而是一种设计思想。在任何一个有实际开发意义的程序项目中,我们会使用很多类来描述它们特有的功能,并且通过类与类之间的相互协作来完成特定的业务逻辑。这个时候,每个类都需要负责管理与自己有交互的类的引用和依赖,代码将会变的异常难以维护和极度的高耦合。而IOC的出现正是用来解决这个问题,我们通过IOC将这些相互依赖对象的创建、协调工作交给Spring容器去处理,每个对象只需要关注其自身的业务逻辑关系就可以了。在这样的角度上来看,获得依赖的对象的方式,进行了反转,变成了由spring容器控制对象如何获取外部资源(包括其他对象和文件资料等等)。
AOP:
面向切面编程,Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发(所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则),应用对象只关注业务逻辑,不再负责其它系统问题(如日志、事务等)。Spring支持用户自定义切面。
面向切面编程是面向对象编程的有力补充。面向对象编程将程序分成各个层次的对象,面向切面的程序将运行过程分解成各个切面。
容器:Spring是个容器,因为它包含并且管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。
框架:Spring作为一个框架,提供了一些基础功能,(如事务管理,持久层集成等),使开发人员更专注于开发应用逻辑。
目前来看的话,对于依赖这个是有所体会的,IOC将这些相互依赖对象的创建、协调工作交给Spring容器去处理,每个对象只需要关注其自身的业务逻辑关系就可以了。面向切面还有待理解,而JDBCTemplate是否体现spring的特点,按理说JDBCTemplate就是spring提供的,肯定有spring的一些特点,但其实现在只是见识了组件之间的耦合性降低以及低入侵、代码污染极低的特点,其他的还有待深入学习和理解。。
Spring的优点:
(1)使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑。
(2)可以提供众多服务,事务管理,WS等。
(3)AOP的很好支持,方便面向切面编程。
(4)对主流的框架提供了很好的集成支持,如hibernate,Struts2,JPA等。
(5)Spring DI机制降低了业务对象替换的复杂性。
(6)Spring属于低侵入,代码污染极低。
(7)Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部。
        Spring的缺点:
(1)jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器。
(2)Spring不支持分布式,这也是EJB仍然在用的原因之一。
2、查看了Spring的相关知识,环境配置、容器、bean定义、作用域、生命周期、依赖注入等等等等。。然而并没有什么用,根本就看的晕晕乎乎的,没有记住。。只是大概的了解容器的相关知识。
Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件。而这些对象被称为 Spring Beans。
容器通过阅读配置元数据提供的指令,容器知道对哪些对象进行实例化,配置和组装。配置元数据可以通过 XML,Java 注释或 Java 代码来表示。 Spring IOC 容器利用 Java 的 POJO 类和配置元数据来生成完全配置和可执行的系统或应用程序。

其他详细信息有待后续上手理解。。网址:http://wiki.jikexueyuan.com/project/spring/overview.html
3、根据实例编写Mybatis代码。
最初是使用之前的maven进行实例编写,但是不知道为啥添加mybatis的依赖就是下载不了,百度也没有找到有效的方法,于是干脆重新建立maven,成功下载mybatis。然后想到之前老是报错source1.5不支持try-with-resources方法,当时找的方法不管用,重新尝试了一下,就直接把默认版本改过来了,可能是之前那个maven尝试太多东西,被玩坏了。。
 
mybatis依赖                                                                   source版本修改
Mybatis实例运行成功,首先准备一个表格,创建实体类Mybatis01,然后建立全局配置文件mybatisConfig.xml,在其中配置数据源,然后指定加载映射文件MybatisMap01.xml文件,随后建立映射文件MybatisMap01.xml,在其中命名空间,定义sql语句,入参数据类型以及返回的数据类型。最后建立测试文件,通过一系列操作,调用方法操作数据库。

测试文件

这里可以直接复制路径,比较方便,安全

需注意要导入这个类的resources类型

需注意要导入这个类的类型

全局配置文件mybatisConfig.xml

映射文件MybatisMap01.xml

实体类
按照这些jar包进行依赖添加,另外还有数据库连接jar包、连接池jar包、测试jar包、mybatis的jar包。

总结:
1、熟悉了JDBC和JDBCTemplate的具体步骤,总结两者的区别,了解了spring的特点,以及JDBCTemplate是否体现spring的特点。还有待深入学习和理解。。
2、查看了Spring的相关知识,环境配置、容器、bean定义、作用域、生命周期、依赖注入等等等等。。然而并没有什么用,根本就看的晕晕乎乎的,没有记住。。只是大概的了解容器的相关知识。其他详细信息有待后续上手理解。。
3、Mybatis实例运行成功,首先准备一个表格,创建实体类Mybatis01,然后建立全局配置文件mybatisConfig.xml,在其中配置数据源,然后指定加载映射文件MybatisMap01.xml文件,随后建立映射文件MybatisMap01.xml,在其中命名空间,定义sql语句,入参数据类型以及返回的数据类型。最后建立测试文件,通过一系列操作,调用方法操作数据库。
明天计划的事:
1、了解mybatis每个步骤的意义,以及各个单词的含义。
2、尝试复杂些的mybatis实例,动手操作。
3、进行步骤17。
遇到的问题:
今天遇到的主要问题就是mybatis的依赖老是红色报错,无法下载,重新建立maven后解决问题。
收获:
1、熟悉了JDBC和JDBCTemplate的具体步骤,总结两者的区别,了解了spring的特点,以及JDBCTemplate是否体现spring的特点。还有待深入学习和理解。。
2、查看了Spring的相关知识,环境配置、容器、bean定义、作用域、生命周期、依赖注入等等等等。。然而并没有什么用,根本就看的晕晕乎乎的,没有记住。。只是大概的了解容器的相关知识。其他详细信息有待后续上手理解。。
3、Mybatis实例运行成功,了解了详细步骤,具体见上文。
4、验证了解决source1.5不支持try-with-resources方法报错的问题,pom文件中添加下列代码即可。
 
source版本修改

返回列表 返回列表
评论

    分享到