一、概述 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運行結果:
八、小結