# 1/16 Servlet 觀念 ###### tags: `Servlet` # 1-193 JDBC 查完沒東西不代表錯只是空值 下指令ResultSet完要確認資料 # 1-194 DataSource介面 一群連線物件(connection objects)連接資料庫 servlet連接JNDI API連線物件 JNDI=java naming directory interface(查介面)管理可用connection pool更有效率(快取) # 1-195 Connection Pooling 實體連線可被多次使用(邏輯連線): 紅色邏輯連線  這個連線不會因客戶端結束而關閉 # 1-195 Connection Cashing(快取) 管理多個連線 Connection Factories(連線工廠):資源管理 Cashing給資料->DataSource # 1-197 Connection Factories 連線給resource manager # 1-198 Naming Services j2ee提供使用者 使用(名稱環境)(Naming Environment) Container 提供資料 Context=初始環境 lntitialContext # 1-199 jndi JDBC java:comp/env/jdbc 跟jdbc要資料有關 # 4-200 資料庫連線 不用get 跳過連線工廠去拿 用dataSource # 4-201 JNDI API使用範圍與步驟 先取得JNDI Naming Initial Context javax.naming.InitialContext ctxt=new InitialContext(); 執行lookup取得Connection factory DataSource去接 ctxt.lookup ctxt.lookup(java:comp/env/jdbc)裡面舉例:像藝名 程式碼不用改改裡面位址 # 4-202 web.xml宣告Connection Factories ```<resource-ref></resource-ref>``` 是用DataSource不是Connection # 4-203 Connection Factory Reference Element 只改上面 jdbc/EmployeeDB (邏輯名稱) res-auth身分驗證(Container) # 4-204 實作Database Query Servlet ``` <resource-ref> <description>MS SQL Server DataSource Example</description> <res-ref-name>jdbc/EmployeeDB</res-ref-name> //修改路徑名稱 <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> //Container身分驗證 </resource-ref> ``` # 4-205 tomcat https://confluence.atlassian.com/conf59/configuring-a-sql-server-datasource-in-apache-tomcat-792499577.html  xml 對照 ``` <res-ref-name>jdbc/EmployeeDB</res-ref-name> ``` # context.xml ``` <Resource name="jdbc/EmployeeDB" auth="Container" type="javax.sql.DataSource" username="sa" password="manager" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;databaseName=DemoLab" maxTotal="100" maxIdle="30" maxWaitMillis="10000" /> ``` # 4-206 DAO(Data Access Object)觀念  # 4-208 DAO DAO讓系統跟底層完全切開來 class提供定義,api標準化 # 4-209 DAO 適合後端不同資料庫,方法名稱標準化,共同的interface(介面),把程式跟資料庫的機制(綁緊緊)decouple 模組化成本降梯 不易壞掉 # Consequences of Using DAO Pattern Resource vendor independence跟廠商沒依賴性(完全獨立) Resource implementation independence維護分開
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up