package com.star.util;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 模塊名稱:用來連接數據庫的方法
* 類的作用:連接數據庫的類
* dbName=null;//連接數據庫的名稱
* dbUserName=null;//連接數據庫賬號
* dbUserPass=null;//連接數據庫的密碼
* post=null;//連接數據庫的端口號
* dbServert=null;//連接數據的IP
* 製作時間:2011-8-17
* 製作人:willian
*/
public class BaseDao {
/**
* dbName=null;//連接數據庫的名稱
* dbUserName=null;//連接數據庫賬號
* dbUserPass=null;//連接數據庫的密碼
* post=null;//連接數據庫的端口號
* dbServert=null;//連接數據的IP
* CRMDATA
*/
public String dbName="databaseName";//連接數據庫的名稱
public String dbUserName="root";//連接數據庫賬號
public String dbUserPass="root";//連接數據庫的密碼
public String post="3306";//連接數據庫的端口號
public String dbServert="127.0.0.1";//連接數據的IP
public CallableStatement call;//調用存儲過程
private Connection con;//打開連接
private Statement stat;//執行語句的
private ResultSet re;//接收集合
private boolean boo = false;
public static int dd=1;
static{
switch (dd) {
case 1:
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("加載mysql驅動成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("沒有mysql加載驅動");
}
break;
case 2:
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("連接SQL2005成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("麼有加載SQL2005驅動");
}
break;
default:
System.out.println("沒有你要連接的數據庫");
break;
}
}
/**
* 打開數據庫的方法
* @return 打開成功就返回true 否則就是 false
*/
public boolean open(){
switch (dd) {
case 1:
try{
con = DriverManager.getConnection(
"jdbc:mysql://"+dbServert+":"+post+"/"+dbName+"", dbUserName, dbUserPass);
boo = true;
stat = con.createStatement();
System.out.println("打開mysql數據庫成功");
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
boo = false;
}
break;
case 2:
try {
con=DriverManager.getConnection(
"jdbc:sqlserver://"+dbServert+":"+post+";databaseName="+dbName+"", dbUserName,dbUserPass);
stat=con.createStatement();
System.out.println("打開SQL2005數據庫成功");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
default:
System.out.println("沒有你要連接的數據庫");
break;
}
return boo;
}
/**
* 添加和刪除的方法
* @param sql
* @return 返回1和2,1成功,2失敗
*/
public int exit(String sql){
int a = 0;
try {
a = stat.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
this.clos();
System.out.println("添加失敗");
}finally{
this.clos();//關閉數據庫
}
return a;
}
/**
* 查詢的方法返回的是個結果集
* @param sql
* @return
*/
public ResultSet select(String sql){
try {
re = stat.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("查詢失敗");
}
return re;
}
/**
* 調用存儲過程
* @param callName 存儲過程的名稱
* @param Volume 獲取存儲過程的個數
* @return 返回0 = 1
*/
public int call(String callName,String[] Volume){
int a = 0;
int i = 0;
try{
call = con.prepareCall("{ call " + callName + " }");
for (i = 0; i < Volume.length; i++) {//獲取多個存儲過程的數據集
call.setString(i + 1, Volume[i]);//運行數據集
}
call.execute();//提交存儲過程
}catch (Exception e) {
// TODO: handle exception
this.clos();
}finally{
this.clos();
}
return a;
}
/**
* 關閉數據的關閉
*/
public void clos(){
try{
if (re!=null) {//關閉數據集
re.close();
}
if (stat!=null) {//關閉執行語句
stat.close();
}
if (con!=null) {//關閉連接
con.close();
}
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println("關閉數據庫失敗");
}
}
/**
* 關閉存儲過程的方法
*/
public void callclos(){
if (call!=null) {
try {
call.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 連接數據庫的測試方法
* @param args
*/
public static void main(String[] args) {
BaseDao db = new BaseDao();
db.open();
}
}
三•JDBC常用的方法
package com.star.schedule.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.star.util.BaseDao;
/**
* 模塊作用:SQL的執行語句的方法
* 查詢數據庫表裏面的總行數
*
* @author 王世興
* 製作時間:2010-12-17
*
*/
public class Eexit {
/**
* SQL 執行的方法 返回一個整數 1代表成功 0代表不成功
* @return
*/
public int setExit(String sql){
int a = 0;//返回的參數默認的是0
BaseDao db = new BaseDao();
db.open();
a = db.exit(sql);//執行添加的方法成功就給a複製
if (a>0) {
System.out.println("添加成功"+sql);
}else{
System.out.println("添加失敗"+sql);
}
return a;//返回參數
}
/**
* 需要輸入SQL語句
* 獲取總行數 在查詢總行數的字段是:counts
*
* @param sql
* 查詢的SQL語句
*
* @return 總行數 是整形
*/
public int getCounts(String sql) {
ResultSet re;
int a = 0;// 總行數默認爲0
BaseDao db = new BaseDao();
db.open();// 打開數據庫
re = db.select(sql);
if (re != null) {// 判斷查詢數據集不能爲空
try {
re.next();
String c = re.getString("counts");// 獲取總行數的字段
if (c != null) {
a = Integer.parseInt(c);// 把字符串轉換成整數
} else {
System.out.println("總行數不能爲0");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.clos();
}
} else {
db.clos();
}
return a;
}
/**
* 需要輸入Sql語句
* 查詢單個數據沒有獲取值的時候可以用
* 有此數據就返回true
* 沒有此數據就返回false
* @param sql
* @return
*/
public boolean getDangeSelect(String sql){
boolean d = false;
BaseDao db = new BaseDao();
db.open();
ResultSet re = db.select(sql);//執行添加的方法成功就給a複製
if (re!=null) {
db.clos();
d = true;
} else {
db.clos();
d = false;
}
return d;
}
}
JDBC連接數據庫的筆記和例子
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.