導航:首頁 > 編程大全 > java資料庫的封裝

java資料庫的封裝

發布時間:2024-03-30 10:55:06

1. java資料庫連接封裝類

try{
class.forName(driver);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}

錯了,應該寫在方法裡面。。。

public Connection getConnection()
{
try{
class.forName(driver);
connection = DriverManager.getConnection(URL,username,password);
}
catch (SQLException e1)
{
e1.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
return connection;
}
或者把他放在構造方法里。專
當然是:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
編譯肯定不對。屬

2. 急:怎麼把java類封裝成SDK,還要放入連接池,怎麼搞啊,大神們

呵呵 這哥們是新手 從描述問題上來看就可以看出 你的意圖估計是這樣:

你想把一個類或一些類打包成jar文件,至於這個jar文件有什麼api,我從你所說的連接池來看應該是創建資料庫連接的一些api吧,你想把這些連接丟給連接池來管理,對嗎?


首先,你封裝好的創建連接的api,系統初始化時就創建一定數量的的連接。

第二,把這些連接丟給連接池。

第三,讓連接池來維護你的連接,如果連接池中的連接數少於你定的閥值,就讓其再調用你之前封裝的api創建一些連接,再納入連接池中。如此循環。

第四,程序要使用連接就直接從連接池中取。


//初始化連接池
StringconnUrl="jdbc:mysql://your.database.domain/yourDBname";
Stringdriver="com.mysql.jdbc.Driver";
privateMap<java.sql.Connection,String>connectionPool=null;
privatevoidinitPool(){
try{
connectionPool=newHashMap<java.sql.Connection,String>();
Class.forName(driver);
java.sql.Connectioncon=DriverManager.getConnection(dbUrl);
for(intpoolInd=poolSize;poolInd<0;poolInd++){
connectionPool.put(con,"AVAILABLE");
}
}

//取連接
publicjava.sql.ConnectiongetConnection()throwsClassNotFoundException,SQLException
{
booleanisConnectionAvailable=true;
for(Entry<java.sql.Connection,String>entry:connectionPool.entrySet()){
synchronized(entry){
if(entry.getValue()=="AVAILABLE"){
entry.setValue("NOTAVAILABLE");
return(java.sql.Connection)entry.getKey();
}
isConnectionAvailable=false;
}
}
if(!isConnectionAvailable){
Class.forName(driver);
java.sql.Connectioncon=DriverManager.getConnection(connUrl);
connectionPool.put(con,"NOTAVAILABLE");
returncon;
}
returnnull;
}

//釋放連接
publicvoidcloseConnection(java.sql.Connectionconnection)throwsClassNotFoundException,SQLException{
for(Entry<java.sql.Connection,String>entry:connectionPool.entrySet()){
synchronized(entry){
if(entry.getKey().equals(connection)){
//
entry.setValue("AVAILABLE");
}
}
}
}


基本上連接池的實際工作原理就是這樣,當然建議使用開源現成的C3P0,DBCP。

3. JAVA中封裝的問題,為什麼使用封裝,封裝的意義是什麼

個人理解可能不對,有更好的回答也請回復我
1.為什麼要用封裝,封裝簡單的說能屏蔽方法的復雜性,比如只要知道方法的參數類型就可以使用方法,再說降低模塊之間的耦合性,就是模塊之間的聯系,讓之相互獨立,能提高系統的健壯性,就是不容易崩潰,相應的對應的方法也變得很多,有重復。你說的公開的類型,不一定能滿足所有功能需求,多個模塊公用一個方法,為了滿足各個需求不斷修改,代碼量龐大,功能很多,但是一出問題,系統就全亂套了。
2.封裝不只有set和get。你往後學就知道了。
3.封裝整個父類嗎? 這個不需要吧,java 有繼承,是多態的表現形式,此外還能實現介面,都能滿足要求,再比如抽象類也可以實現部分功能的傳遞或者方法規范的傳遞。

4. 我用java 查詢資料庫中表的一個欄位內容,該欄位全是數字如何封裝封裝後又如何取出來

你查詢數據查詢後就是一個ResultSet對象
拿個例子來說吧
一個查詢語句
select name,age,sex from user
你查詢後得到一個ResultSet rs
然後你去循環這個rs
while(rs.next()){
String name = rs.getString("name");
String age= rs.getString("age");

}
或者你寫一個bean 例如是User.java
裡面有 name age sex 對象的屬性和getXXX(),setXXX()方法
那就可以這樣寫
User user = new User()
while(rs.next()){
user.setName(rs.getString("name"));
user.setAge( rs.getString("age"));

}
如果有邏輯要用到name或者age
你就可以直接用這個user裡面的數據了

5. java對資料庫操作的封裝是怎麼樣的

java本身對資料庫沒有封裝,對資料庫封裝好的有hibernate,ibatis(mybatis),hibernate封裝的比較徹底,基本操作不用自己寫SQL語句,ibatis的話還是要自己寫SQL語句,比較靈活.

6. java資料庫封裝

package com.lc.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Datebase{
public Connection conn=null;
public Statement stmt=null;
public ResultSet rs=null;
public PreparedStatement preparedstmt=null;
private static String dbDriver="com.mysql.jdbc.Driver";
private static String dbUrl="jdbc:mysql://localhost/graatedmanager?useUnicode=true&characterEncoding=gb2312";
private static String dbUser="root";
private static String dbPwd="root";
//打開資料庫連接
public Datebase(){}

public static Connection getConnection()
{
java.sql.Connection conn=null;
try
{
Class.forName(dbDriver);
conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);
}
catch(Exception e)
{
e.printStackTrace();
}
if(conn==null)
{
System.err.println("警告:資料庫連接失敗!");
}
return conn;

}

//讀取結果集
public ResultSet doQuery(String sql)
{
try
{
conn=Datebase.getConnection();
stmt=((java.sql.Connection) conn).createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}
catch(SQLException e)
{
e.printStackTrace();
}
return rs;
}

//更新數據
public int Prepared_doUpdate(String sql,String parameters[])
{
int result=0;
try
{
conn=Datebase.getConnection();
preparedstmt=conn.prepareStatement(sql);
/* for(int i=0;i<parameters.length;i++)
{
System.out.println(parameters[i]);
}*/
if(parameters!=null)
{
for(int i=0;i<parameters.length;i++)
{
preparedstmt.setString(i+1,parameters[i]);
}
}
result=preparedstmt.executeUpdate();
}
catch(SQLException e)
{
e.printStackTrace();
System.out.println("操作失敗");
result=0;
}
return result;

}

//更新數據
public int doUpdate(String sql)
{
int result=0;
try
{
conn=Datebase.getConnection();
stmt=((java.sql.Connection) conn).createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
result=stmt.executeUpdate(sql);
}
catch(SQLException e)
{
result=0;
}
return result;
}

//關閉資料庫連接
public void closeConnection()
{
try
{
if(rs!=null)
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
if(conn!=null)
((Statement) conn).close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

7. java:」將資料庫操作封裝成介面「是什麼意思要是封裝成類我明白是全裝在類里的意思,可介面不是沒

就是定義介面,完你的類去實現介面

之後在外面調用的時候是通過介面new實現類去調用鏈接。

這是java中的一種多態表現,是想讓你實現這個。。

閱讀全文

與java資料庫的封裝相關的資料

熱點內容
如何判斷兩列是否相同的數據 瀏覽:25
安卓系統微信文件夾 瀏覽:19
xp打開word找不到文件 瀏覽:488
文件名占容量 瀏覽:882
環型槽如何編程 瀏覽:290
excel怎麼分列每一列的第二行數據 瀏覽:240
美味餐廳13安卓版完整 瀏覽:708
請先卸載本地app什麼意思 瀏覽:639
廣東有什麼土建材料網站 瀏覽:613
安卓手機究竟應該給app什麼許可權 瀏覽:137
怎樣給特定文件夾加密碼 瀏覽:168
win10卡在85 瀏覽:421
excel文件怎麼無法打開 瀏覽:970
java文件路徑截取 瀏覽:271
html5公司網站 瀏覽:545
linux內核編譯arm 瀏覽:529
關於如何修改公司章程制度的文件 瀏覽:283
先進企業紅頭文件在哪裡找 瀏覽:546
皮卡堂升級攻略視頻 瀏覽:388
html寬度代碼 瀏覽:919

友情鏈接