寫(xiě)一個(gè)公共類(lèi),如下:

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),昭陽(yáng)企業(yè)網(wǎng)站建設(shè),昭陽(yáng)品牌網(wǎng)站建設(shè),網(wǎng)站定制,昭陽(yáng)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,昭陽(yáng)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
import?java.sql.*;
public?class?ConnectDB?{
//數(shù)據(jù)庫(kù)用戶名
String?userName="sa";
//數(shù)據(jù)庫(kù)密碼
String?userPassword="123456";
//數(shù)據(jù)庫(kù)的URL,包括連接數(shù)據(jù)庫(kù)所使用的編碼格式
String?url="jdbc:sqlserver://localhost:1433;databaseName=stu";
//定義一個(gè)連接對(duì)象
Connection?dbConn;
//錯(cuò)誤信息串
String?errMes;
public?ConnectDB()?{
//初始化操作
errMes="";
dbConn=null;
}
//連接數(shù)據(jù)庫(kù)
public?Connection?getConn()?{
try?{
//聲明所用的類(lèi)包
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//獲得數(shù)據(jù)庫(kù)的連接對(duì)象
dbConn=?DriverManager.getConnection(url,userName,userPassword);
}?catch(Exception?e)?{
dbConn?=?null;
errMes=e.toString();
}
return?dbConn;
}
//獲取錯(cuò)誤信息
public?String?getErrMes()?{
return?errMes;
}
}
這個(gè)不叫封裝,一般叫部署
把開(kāi)發(fā)的web網(wǎng)站部署到web服務(wù)器,連接數(shù)據(jù)庫(kù)服務(wù)器
C#只是一種語(yǔ)言,按樓主的意思是需要一種開(kāi)發(fā)web應(yīng)用程序的技術(shù)就是asp.net,只不過(guò)它用的是C#語(yǔ)言
sql也只是數(shù)據(jù)庫(kù)查詢語(yǔ)言,我們一般選擇具體的數(shù)據(jù)庫(kù)產(chǎn)品,比如sqlserver
就像我們不會(huì)說(shuō),我用聊天工具和你聯(lián)系,而說(shuō)的是我用QQ和你聯(lián)系..
這樣看你用C# 語(yǔ)言開(kāi)發(fā)的是什么類(lèi)型的項(xiàng)目了。
1.B/S結(jié)構(gòu)的程序在部署的時(shí)候是需要將你的程序放在一個(gè)web容器中來(lái)運(yùn)行的例如IIS。然后在部署數(shù)據(jù)庫(kù),微軟的數(shù)據(jù)庫(kù)允許我們將數(shù)據(jù)庫(kù)以文件的形式提取出來(lái)存放在項(xiàng)目的某一個(gè)文件當(dāng)中,但是這也是需要一個(gè)前提的,就是你部署的這臺(tái)計(jì)算機(jī)已經(jīng)有SQL server 的客戶端才可以這樣使用。
2.C/S結(jié)構(gòu)的程序不需要web容器的平臺(tái)可以直接運(yùn)行在客戶的機(jī)器上,但是在如果你的程序用到數(shù)據(jù)庫(kù)的話還是需要對(duì)數(shù)據(jù)庫(kù)進(jìn)步部署的。
如果你想將你的程序和數(shù)據(jù)捆綁在一起的話可以選擇一個(gè)比較輕量級(jí)的數(shù)據(jù)庫(kù),比如微軟的Access 它是附加上office中的,使用它是可以實(shí)現(xiàn)程序和數(shù)據(jù)一起打包的
package?com.second.dao;
import?java.lang.reflect.InvocationTargetException;
import?java.lang.reflect.Method;
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.PreparedStatement;
import?java.sql.ResultSet;
import?java.sql.ResultSetMetaData;
import?java.sql.SQLException;
import?java.util.ArrayList;
import?java.util.List;
public?class?JDBCUtilDao?{
private?static?Connection?con?=?null;
private?static?PreparedStatement?ps?=?null;
private?static?ResultSet?rs?=?null;
public?static?Connection?PrintCon()?{
return?con;
}
public?static?PreparedStatement?PrintPs()?{
return?ps;
}
public?static?ResultSet?PrintRs()?{
return?rs;
}
/**
*?準(zhǔn)備驅(qū)動(dòng)
*/
static?{
try?{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
}?catch?(ClassNotFoundException?e)?{
//?TODO?Auto-generated?catch?block
System.out.println("加載驅(qū)動(dòng)失敗!");
e.printStackTrace();
}
}
public?static?Connection?getConnection()?{
try?{
con?=?DriverManager.getConnection(
"jdbc:jtds:sqlserver://192.168.6.110/sql_second",?"sa",
"123");
//?System.out.println(con);
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
System.out.println("連接失敗!");
e.printStackTrace();
}
return?con;
}
/**
*?關(guān)閉連接
*?
*?@param?rs
*????????????結(jié)果集對(duì)象
*?@param?ps
*????????????會(huì)話對(duì)象
*?@param?con
*????????????連接對(duì)象
*/
public?static?void?closeAll(ResultSet?rs,?PreparedStatement?ps,
Connection?con)?{
try?{
if?(null?!=?rs)?{
rs.close();
}
if?(null?!=?ps)?{
ps.close();
}
if?(null?!=?con)?{
con.close();
}
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
/**
*?設(shè)置參數(shù)
*?
*?@param?params
*?@param?ps
*/
public?static?void?setParams(ListString?params,?PreparedStatement?ps)?{
if?(params?!=?null)?{
for?(int?i?=?0;?i??params.size();?i++)?{
try?{
ps.setString(i?+?1,?params.get(i));
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
}
/**
*?實(shí)現(xiàn)增、刪、改
*?
*?@param?sql
*????????????sql語(yǔ)句
*?@param?params
*????????????參數(shù)
*?@return?修改的行數(shù)
*/
public?static?int?doUpdata(String?sql,?ListString?params)?{
int?result?=?0;
try?{
//?判斷是否連接?不連接就把數(shù)據(jù)庫(kù)連上
if?(null?==?con?||?con.isClosed())?{
con?=?getConnection();
}
//?得到會(huì)話
ps?=?con.prepareStatement(sql);
//?設(shè)置參數(shù)
setParams(params,?ps);
//?得到結(jié)果,即改變行數(shù)
result?=?ps.executeUpdate();
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?finally?{
closeAll(null,?ps,?con);
}
return?result;
}
/**
*?查詢
*?
*?@param?T
*?@param?sql
*?@param?params
*?@param?t
*?@return
*/
public?static?T?ListT?qureyAll(String?sql,?ListString?params,
ClassT?t)?{
//?用一個(gè)集合接受返回的數(shù)據(jù)
ListT?list?=?new?ArrayListT();
//?判斷是否連接
try?{
if?(null?==?con?||?con.isClosed())?{
con?=?getConnection();
}
//?操作對(duì)象
ps?=?con.prepareStatement(sql);
//?設(shè)置參數(shù)
setParams(params,?ps);
//?返回結(jié)果集
rs?=?ps.executeQuery();
//?取出t中的說(shuō)有方法
Method[]?method?=?t.getDeclaredMethods();
//?取出說(shuō)有列名和列數(shù)
ResultSetMetaData?rsmd?=?rs.getMetaData();
//?獲得列數(shù)
int?count?=?rsmd.getColumnCount();
//?取出每個(gè)列列名放入數(shù)組中
String[]?columns?=?new?String[count];
for?(int?i?=?0;?i??columns.length;?i++)?{
columns[i]?=?rsmd.getColumnName(i?+?1);
}
//?循環(huán)結(jié)果集
while?(rs.next())?{
T?s?=?(T)?t.newInstance();
//?第一個(gè)循環(huán)控制列數(shù)
for?(int?i?=?0;?i??columns.length;?i++)?{
//?第二個(gè)循環(huán)控制方法名
for?(int?j?=?0;?j??method.length;?j++)?{
String?setName?=?"set"?+?columns[i];
if?(setName.equalsIgnoreCase(method[j].getName()))?{//?set+列名相同就是這個(gè)類(lèi)得方法名
String?typeName?=?rsmd.getColumnTypeName(i?+?1);//?得到數(shù)據(jù)庫(kù)中列名的類(lèi)型
//?int
//?varchar..
//System.out.println(typeName);
if?(typeName.equals("INTEGER")
||?typeName.equals("int?identity")
||?typeName.equals("int"))?{
method[j].invoke(s,?rs.getInt(columns[i]));
}?else?if?(typeName.equals("DECIMAL"))?{
method[j].invoke(s,?rs.getDouble(columns[i]));
}?else?if?(typeName.equals("VARCHAR2"))?{
method[j].invoke(s,?rs.getString(columns[i]));
}?else?if?(typeName.equals("money"))?{
method[j].invoke(s,?rs.getFloat(columns[i]));
}?else?if?(typeName.equals("datetime"))?{
//?System.out.println(rs.getTimestamp(columns[i]));
method[j]
.invoke(s,?rs.getTimestamp(columns[i]));
}?else?{
method[j].invoke(s,?rs.getString(columns[i]));
}
}
}
}
list.add(s);
}
closeAll(rs,?ps,?con);
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(InstantiationException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IllegalAccessException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IllegalArgumentException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(InvocationTargetException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
return?list;
}
/**
*?查詢
*?
*?@param?sql
*?@param?obj
*?@return
*/
public?static?ResultSet?getInfoos(String?sql,?Object[]?temp)?{
ResultSet?rs?=?null;
try?{
if?(con?==?null?||?con.isClosed())?{
getConnection();
}
ps?=?con.prepareStatement(sql);
for?(int?i?=?1;?i??temp.length;?i++)?{
ps.setObject(i,?temp[i]);
}
rs?=?ps.executeQuery();
}?catch?(SQLException?e)?{
e.printStackTrace();
}
return?rs;
}
public?static?void?main(String[]?args)?{
//?JDBCUtilDemo?jd?=?new?JDBCUtilDemo();
//?System.out.println(jd.getConnection());
//?if(jd.updateByUserId("8888"?)){
//?System.out.println("OK");
//?}else{
//?System.out.println("NO");
//?}
}
}
這是以前寫(xiě)的一個(gè)類(lèi),你看看有幫助不
try{
class.forName(driver);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
錯(cuò)了,應(yīng)該寫(xiě)在方法里面。。。
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;
}
或者把他放在構(gòu)造方法里。
當(dāng)然是:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
編譯肯定不對(duì)。
分享名稱(chēng):sqlserver封裝,sqlsugar封裝
路徑分享:http://chinadenli.net/article49/dsidshh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、服務(wù)器托管、網(wǎng)站建設(shè)、建站公司、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)