感言帖 时光飞梭,时间从来不会有一丝一毫的想停歇一会儿,永远都是不紧不慢地遵循着自己的节奏不停地往前走。回想起来到杭州创智播客,黑马程序员已然过了一个半月了,想起当时的心情与现在的心情对比,已然有了些许不一样的改变。 来到了创智播客,黑马程序员让我学到了很多东西,也接触了很多关于电脑程序,软件的很多相关知识,知道了一个软件的底层是如何实现的。比如这几天学习的JDBC。 JDBC (Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。也知道了什么是数据库驱动 驱动:两个设备(应用)之间通信的桥梁。 那么为什么学习JDBC呢? 没有JDBC的时候,如果现在要开发一套系统,使用Java连接MySQL数据库,那么这时候Java程序员需要了解MySQL驱动API,如果使用Java连接Oracle数据库,那么这个时候Java程序员需要了解Oracle数据库驱动API。 SUN公司提供一套统一的规范(接口)。然后各个数据库生产商提供这套接口的实现。这套接口规范就是JDBC的规范。 JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。 在编程的过程中,很多都是与我们现实生活中相关的,比如编程中的面向对象思想,面向接口编程,以及面向过程等等。 面向过程就是什么事都是一步一步自己做,就像生活中的厨师炒菜,要洗菜,切菜,放调料,翻炒,盛菜,上桌。 而面向对象思想就是复杂的事情简单化,从执行者变成指挥者,只要提供食材,把厨师炒好的菜盛上就可以了。 而面向接口编程 像J2EE 中的API规范基本上都是接口,由各应用服务器来实现,比如:WebSphere 按照这个接口实现自己的,WebLogic也按照这个接口实现自己的,作为开发者来说我们根本就不用去管谁是怎样实现的,只要按照J2EE的API来写就可以了,根本用不着导入它们的实现包,实际上具体的是由它们自身完成了。接口说白了,也就是定死了一个框,具体的是糊红纸还是糊黑纸我们都用不着去管的,我们只要知道它是个框,提供了哪些方法就够了。
举个简单的JDBC 的例子吧,比如有个BaseDao接口,现在有MySQLDao实现了一个(我们可以把具体的实现类配在配置文件中,再通过反射进行实例化),也就类似这样的:
BaseDao dao = (BaseDao)(Class.forName(Config.getDaoName()).newInstance());
其中Config.getDaoName() 可以获得配置文件中的配置,比如是:com.bao.dao.impl.MySQLDao。之后,那些人开始要烧钱了,要改用Oracle 了,这样我们只要按BaseDao的定义,再实现一个OracleDao就可以了,再将配置文件中的配置改为:com.bao.dao.impl.OralceDao就可以了,而在已经写好的代码中,我们可以一行不改的进行了数据库移植,这个就是面向对象设计原则中的“ 开-闭原则” 在项目中的意义:
接口在项目就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。 采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于公司来说,意义更大。 连接池的概述 什么是连接池 其实就是装有连接的容器,使用连接的时候,可以从池子中获得连接,使用完成之后归还给连接池 连接池概念的规范 1,用池子管理连接,这样可以重复使用连接 2,不用自己创建连接,而是通过池子获取连接 3,使用完连接之后,调用连接的close()方法,其实不是关闭连接,而是把连接归还给了池子 4,连接池技术可以完成连接的再次利用 占用了空间 ---效率提升 空间换时间 04-Druid开源连接池的使用 Druid配置方式可以使用属性文件配置的,文件名称没有规定但是属性文件中的key要一定的。 // 从属性文件中获取: Properties properties = new Properties(); properties.load(new FileInputStream("src/druid.properties")); DataSource dataSource = DruidDataSourceFactory.createDataSource(properties); 改写工具类 改写原因 连接池对象应该是一个应用只创建一次就可以的,不需要每次使用都创建一个新的连接池。 多年之后,再回想起现在所学的,可能早已忘记;多年之后,再回想起现在与同学们的生活,可能早已没有那么的刻骨铭心;多年之后,再回想起现在学习的精神,可能早已没有了现在斗志,但这都是我的生活,都是我生命的一部分。
|