關於android真機訪問本地電腦伺服器以及訪問資料庫的那點事
因為專案需要最近幾天在搗鼓android訪問伺服器以及伺服器連線本地資料庫相關的問題,沒什麼書籍可以參考,一路搞下來也是磕磕絆絆,好在經過一番努力最後還是成功地實現了功能,這裡就把我踩過的一些坑列舉出來。
前期準備:
我是用sqlserver作為資料庫的,首先要啟用sqlserver的身份驗證登陸,設定賬號密碼,然後關於如何開啟以及開啟相關配置服務(如TCP/IP),網上的文章很多我就不一一贅述了。我在資料庫中建了一張使用者資訊表,然後資料庫的準備工作就這樣完成了。接下來我下載了tomcat作為伺服器,並把它新增到j2ee的eclipse中。
正式步驟:
然後就是正式步驟了,我在eclipse新建了一個 Dynamic web project ,next到最後要記得勾選上 建立web.xml這一項。因為要連線到資料庫所以我引入了sqljdbc4這個包,我把它複製到lib檔案下並右鍵專案----屬性---java build path 中新增對它的引用。然後我在src目錄下了新建了連線工廠類,主要是一些連線資料庫的基本操作,說到這裡就得提到連線資料庫的一個輔助檔案,就是dbconfig.properties,在src目錄下建立了這樣一個檔案並且裡面描敘了連線資料庫的基本資訊,在連線工廠類對其進行操作就能順利連上資料庫了。
dbconfig.properties內容如下:
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
dburl=jdbc:sqlserver://localhost:1433;DatabaseName=gwedu //gwedu是我的資料庫名
user=sa //sa是身份驗證登陸資料庫的賬號
password=654321 //密碼
接下來是伺服器檔案的編寫,我在src目錄下建立了一個繼承於HttpServlet的class類,重寫它的一些方法,doget dopost都可以,在這些方法裡第一步就是連線資料庫(因為我只是為了實現這個功能因此並沒有去搞相關的設計模式,所以程式碼利用率不是很高)然後就是對請求的資料進行各種操作,說到這裡不得不提到,為了方便對資料庫的表在進行操作,我在專案了新建了一個對應的student表並封裝了一些對其增刪查改的操作,我的student類的包名是com.dao,請注意,請注意,你的移動客戶端如果也有student這個類,那麼一定要保證包名是一樣的!!!回來,伺服器檔案編寫好後,我們還要在web.xml檔案增加它的宣告和對映。最後啟動tomcat並把專案部署上去,至此伺服器就搞定了。
web.xml檔案部分內容:
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
最後就是移動客戶端程式碼的編寫,這個不是本文重點就不詳細展開了,除了上文提到的相同實體類包名要一致外,客戶端第二個難點就是ip的確定,我們知道在android虛擬機器上訪問本地電腦伺服器的IP是10.0.2.2 但是真機不是,我的手機連了電腦的wifi,如果你想訪問到電腦上的伺服器,你可以在手機wifi選項中檢視wifi的ip地址,我的是192.168.139.2,那麼電腦的ip就是192.168.139.1 在客戶端程式碼中將ip設定為這個,成功訪問。
以上,便是這篇文章的全部內容。