一、概述 java
二、JDBC数据库
三、项目引用jar包app
注:在finally中反向关闭资源jsp
rs.close();工具
stmt.close();性能
conn.close();spa
四、建立配置文件读取数据库信息对象
load方法IO操做消耗资源,所以建立工具类将读取属性文件封装,使用单例模式,控制工具类实例生成的个数,提高程序性能。接口
(私有构造方法,而且在该方法中读取属性文件;建立getInstance方法限制对象的数量,只能有一个)ci
五、使用JDBC实现信息的增长、删除、修改
更换Statement对象为PreparedStatement,插入数据使用占位符:
六、建立BaseDao
将NewsDao转换成接口,下降耦合:
建立实现类包,建立实现类NewsDaoImpl(将BaseDao和NewsDao放入dao包中):
验证:
七、使用数据源、链接池达到重用数据库链接的目的,提升性能
在Tomcat中配置数据源的步骤:
经过JNDI根据name获取数据源:
若是结果为null,修改这个地方:
异常处理:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at main.java.com.ljb.dao.BaseDao.getConnection2(BaseDao.java:59)
at main.java.com.ljb.dao.BaseDao.executeUpdate(BaseDao.java:91)
at main.java.com.ljb.dao.impl.ProductDaoImpl.add(ProductDaoImpl.java:97)
at main.java.com.ljb.dao.impl.ProductDaoImpl.main(ProductDaoImpl.java:157)
Exception in thread "main" java.lang.NullPointerException
at main.java.com.ljb.dao.BaseDao.executeUpdate(BaseDao.java:93)
at main.java.com.ljb.dao.impl.ProductDaoImpl.add(ProductDaoImpl.java:97)
at main.java.com.ljb.dao.impl.ProductDaoImpl.main(ProductDaoImpl.java:157)
数据源由Tomccat容器建立,所以必须启动Tomcat,运行该项目
JNDIdemo。jsp运行结果:
八、小结