下面是一個從 mysql 數(shù)據(jù)庫獲取用戶信息的例子,可以參考一下:
創(chuàng)新互聯(lián)建站溝通電話:028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)建站網(wǎng)頁制作領(lǐng)域十多年,包括成都報廢汽車回收等多個行業(yè)擁有豐富的網(wǎng)站運維經(jīng)驗,選擇創(chuàng)新互聯(lián)建站,為網(wǎng)站保駕護航。
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.ResultSet;
import?java.sql.SQLException;
import?java.sql.Statement;
import?java.util.ArrayList;
import?java.util.List;
//?用戶類,存儲單個用戶信息
class?User?{
private?int?id;
private?String?name;
public?User(int?id,?String?name)?{
this.id?=?id;
this.name?=?name;
}
public?int?getId()?{
return?id;
}
public?void?setId(int?id)?{
this.id?=?id;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
@Override
public?String?toString()?{
return?"User?[id="?+?id?+?",?name="?+?name?+?"]";
}
}
public?class?Demo1?{
public?static?void?main(String[]?args)?throws?ClassNotFoundException,?SQLException?{
//?本例使用?mysql?數(shù)據(jù)庫,演示將數(shù)據(jù)庫?test?的?tb_users?表中的用戶信息
//?放到?List?中
//?加載數(shù)據(jù)驅(qū)動
Class.forName("com.mysql.jdbc.Driver");
//?數(shù)據(jù)庫連接字符串,?此例數(shù)據(jù)庫為?test
String?url?=?"jdbc:mysql://localhost:3306/test";
String?user?=?"root";????//?數(shù)據(jù)庫用戶名
String?password?=?"";????//?數(shù)據(jù)庫密碼
//?打開一個數(shù)據(jù)連接
Connection?conn?=?DriverManager.getConnection(url,?user,?password);
Statement?stmt?=?conn.createStatement();
//?獲取表?tb_users?所有用戶信息到結(jié)果集中
ResultSet?rs?=?stmt.executeQuery("SELECT?id,?name?FROM?tb_users");
//?定義一個存放用戶信息的?List
ListUser?users?=?new?ArrayList();
//?提取用戶信息,并將用戶信息放入?List
while?(rs.next())?{
//?獲取用戶ID
int?id?=?rs.getInt(1);
//?獲取用戶名
String?name?=?rs.getString(2);
users.add(new?User(id,?name));
}
rs.close();
stmt.close();
conn.close();
//?顯示用戶信息
for?(User?u?:?users)?{
System.out.println(u);
}
}
}
你的問題應(yīng)該從兩個方面進行分析
第一、使用java內(nèi)嵌式數(shù)據(jù)庫
在程序中使用
Derby和HSQLDB等java內(nèi)嵌式數(shù)據(jù)庫,只需在程序中將數(shù)據(jù)庫配置好即可,是程序?qū)S玫摹?/p>
可以達到你所說的java數(shù)據(jù)庫程序不需要配置在任何機器上運行。
但是,內(nèi)嵌式數(shù)據(jù)庫的處理能力很低,只適合小數(shù)據(jù)量的程序使用。
第二、使用Oracle、MSSql、MySql等數(shù)據(jù)庫
首先這些數(shù)據(jù)庫軟件需要安裝,即使不在本機安裝也需要在一臺可以訪問到的機器上安裝,然后使用jdbc訪問。
如果程序安裝在已經(jīng)安裝這些數(shù)據(jù)庫的機器上,你只需要將程序的數(shù)據(jù)庫訪問指向本機即可。
但是,在本機安裝數(shù)據(jù)庫的機器很少,大部分都是訪問網(wǎng)絡(luò)上的數(shù)據(jù)庫,這就需要你引入配置文件。
在配置文件中進行參數(shù)配置。當然,你可以寫一些默認配置,當實際環(huán)境與默認配置不同時就需要修改默認配置。
所以說不用配置的程序其實是符合你默認配置的程序,你需要根據(jù)不同的系統(tǒng)或環(huán)境組織自己的默認配置文件。
沒有萬能的東西,只能是適應(yīng)大部分,而且需要你在編寫程序時提前考慮針對各種運行環(huán)境的變化。
有問題請留言吧
import java.sql.*;
public class DataBasePractice {
public static void main(String[] args) {
//聲明Connection對象
Connection con;
//驅(qū)動程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要訪問的數(shù)據(jù)庫名mydata
String url = "jdbc:mysql://localhost:3306/mydata";
//MySQL配置時的用戶名
String user = "root";
//MySQL配置時的密碼
String password = "root";
//遍歷查詢結(jié)果集
try {
//加載驅(qū)動程序
Class.forName(driver);
//1.getConnection()方法,連接MySQL數(shù)據(jù)庫??!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.創(chuàng)建statement類對象,用來執(zhí)行SQL語句?。?/p>
Statement statement = con.createStatement();
//要執(zhí)行的SQL語句
String sql = "select * from student";
//3.ResultSet類,用來存放獲取的結(jié)果集?。?/p>
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("執(zhí)行結(jié)果如下所示:");
姑且當樓主的程序用的是JDBC連接數(shù)據(jù)庫吧(不貼代碼讓人猜是真不好回答?。?,樓主全文搜索
"DBManager.getConnection",就會找到下面這樣的一句話:
DBManager.getConnection("....................");
打點的部分也可能是參數(shù)寫的,反正就是找到了這么句話吧,重點就是這個打點的地方,參數(shù)的話,請看參數(shù)內(nèi)容,內(nèi)容大致如下:
jdbc:[某種數(shù)據(jù)庫]://[IP地址]:[端口號]/[庫名]?user=[賬戶]password=[密碼]
舉個mysql的例子:
jdbc:mysql://localhost:3306/test?user=rootpassword=root
這樣你就你的代碼是連接的什么數(shù)據(jù)庫了,樓主期待代碼是SQL Server數(shù)據(jù)庫吧,呵呵。
如果不是,那你就決定是自己裝一個,還是改造代碼啦?當然你還要根據(jù)別人代碼去創(chuàng)建數(shù)據(jù)庫。
給個SQL Server的例子
//加載JDBC驅(qū)動
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
//建立數(shù)據(jù)庫連接,取得Connection對象
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);
//后面就可以寫操作數(shù)據(jù)庫的代碼了
Java程序向數(shù)據(jù)庫中插入數(shù)據(jù),代碼如下:
//首先創(chuàng)建數(shù)據(jù)庫,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置數(shù)據(jù)源(odbc);//然后再eclipse中創(chuàng)建類(ConnDb,Test,TestBean)ConnDb功能為連接數(shù)據(jù)庫,查詢,插入,刪除,修改數(shù)據(jù)的類,Test為含有main方法的測試類,TestBean為數(shù)據(jù)表中的字段屬性及set,get方法//以下是ConnDb代碼:package db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;public class ConnDb {public Connection startConn(Connection conn){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:數(shù)據(jù)庫","用戶名", "密碼"); } catch (Exception e) { System.out.println("連接數(shù)據(jù)庫時出現(xiàn)錯誤"); } return conn; } public ArrayList executeQuery(String sql){ Connection conn = null; Statement stmt = null; ResultSet rs = null; ArrayList list = new ArrayList(); try { conn = startConn(conn); stmt = conn.createStatement(); rs = stmt.executeQuery(sql);//sql為sql語句例如"select * from 表名",從main方法中傳進來,這里用的是ArrayList 類將查詢結(jié)果存儲起來 while(rs.next()){ TestBean tb = new TestBean(); tb.setTid(rs.getString("tid")); tb.setTname(rs.getString("tname")); tb.setTinfo(rs.getString("tinfo")); list.add(tb); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ closeConn(rs,stmt,conn); } return list; } public void executeUpdate(String sql){ Connection conn = null; Statement stmt = null; try { conn = startConn(conn); stmt = conn.createStatement(); stmt.executeUpdate(sql); } catch (SQLException e) { System.out.println("修改,插入或者刪除數(shù)據(jù)庫數(shù)據(jù)時發(fā)生錯誤!"); }finally{ closeConn(stmt,conn); } } public void closeConn(ResultSet rs,Statement stmt,Connection conn){ try { if(rs != null){ rs.close(); } if(stmt != null){ stmt.close(); } if(conn != null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("關(guān)閉數(shù)據(jù)庫的時候發(fā)生錯誤!"); } } public void closeConn(Statement stmt,Connection conn){ try { if(stmt != null){ stmt.close(); } if(conn != null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("關(guān)閉數(shù)據(jù)庫的時候發(fā)生錯誤!"); } }}
親,說明你沒有main函數(shù),才會沒有java application..你的main方法名寫錯了。。