使用JDBC進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作1.下載Microsoft SQL Server 2005 JDBC 驅(qū)動(dòng)包jar文件 將jar文件引入工程中2.封裝數(shù)據(jù)庫(kù)鏈接的獲取和關(guān)閉操作import java.sql.*;public class BaseDao {\x0d\x0a /**\x0d\x0a * 數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)的字符串,完整的包名加類(lèi)名 在工程中查看添加的jar文件 能看到這個(gè)類(lèi)\x0d\x0a */\x0d\x0a private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; /**\x0d\x0a * 數(shù)據(jù)庫(kù)連接地址\x0d\x0a * \x0d\x0a * DataBaseName=數(shù)據(jù)庫(kù)名稱(chēng) 其它固定\x0d\x0a */\x0d\x0a private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs"; /**\x0d\x0a * 連接數(shù)據(jù)庫(kù)的用戶(hù)名\x0d\x0a */\x0d\x0a private static final String USER = "sa"; /**\x0d\x0a * 用戶(hù)密碼\x0d\x0a */\x0d\x0a private static final String PASSWORD = ""; /**\x0d\x0a * 獲取連接 異常直接拋出 或者捕獲后自定義異常信息再拋出\x0d\x0a */\x0d\x0a public static Connection getConnection() throws Exception {\x0d\x0a Class.forName(DRIVE);\x0d\x0a return DriverManager.getConnection(URL, USER, PASSWORD);\x0d\x0a } /**\x0d\x0a * 關(guān)閉與數(shù)據(jù)庫(kù)的連接 釋放資源\x0d\x0a */\x0d\x0a public static void closeAll(ResultSet resultSet, PreparedStatement pst,\x0d\x0a Connection connection) throws Exception {\x0d\x0a if (resultSet != null)\x0d\x0a resultSet.close();\x0d\x0a if (pst != null)\x0d\x0a pst.close();\x0d\x0a if (connection != null)\x0d\x0a connection.close();\x0d\x0a }}3.創(chuàng)建圖書(shū)的實(shí)體類(lèi)public class Book {\x0d\x0a /**\x0d\x0a * 數(shù)據(jù)庫(kù)主鍵\x0d\x0a */\x0d\x0a private Long id; /**\x0d\x0a * 作者\(yùn)x0d\x0a */\x0d\x0a private String author; /**\x0d\x0a * 書(shū)名\x0d\x0a */\x0d\x0a private String name;\x0d\x0a /**\x0d\x0a * 默認(rèn)構(gòu)造\x0d\x0a *\x0d\x0a */\x0d\x0a public Book() {\x0d\x0a }\x0d\x0a /**\x0d\x0a * 全字段構(gòu)造\x0d\x0a * @param id\x0d\x0a * @param author\x0d\x0a * @param name\x0d\x0a */\x0d\x0a public Book(Long id, String author, String name) {\x0d\x0a this.id = id;\x0d\x0a this.author = author;\x0d\x0a this.name = name;\x0d\x0a }\x0d\x0a /**\x0d\x0a * 以下為讀寫(xiě)屬性的方法\x0d\x0a * @return\x0d\x0a */\x0d\x0a public String getAuthor() {\x0d\x0a return author;\x0d\x0a }\x0d\x0a public void setAuthor(String author) {\x0d\x0a this.author = author;\x0d\x0a }\x0d\x0a public Long getId() {\x0d\x0a return id;\x0d\x0a }\x0d\x0a public void setId(Long id) {\x0d\x0a this.id = id;\x0d\x0a }\x0d\x0a public String getName() {\x0d\x0a return name;\x0d\x0a }\x0d\x0a public void setName(String name) {\x0d\x0a this.name = name;\x0d\x0a }\x0d\x0a}\x0d\x0a4.創(chuàng)建與圖書(shū)表交互的工具類(lèi)import java.sql.Connection;\x0d\x0aimport java.sql.PreparedStatement;\x0d\x0aimport java.sql.ResultSet;\x0d\x0aimport java.util.ArrayList;\x0d\x0aimport java.util.List;public class BookDao {\x0d\x0a /**\x0d\x0a * 添加新書(shū)\x0d\x0a * \x0d\x0a * @param book 要添加入數(shù)據(jù)庫(kù)的圖書(shū) 作者 書(shū)名 必須給定\x0d\x0a */\x0d\x0a public void addBook(Book book) throws Exception {\x0d\x0a // 連接\x0d\x0a Connection connection = null;\x0d\x0a // 執(zhí)行語(yǔ)句\x0d\x0a PreparedStatement pst = null;\x0d\x0a try {\x0d\x0a connection = BaseDao.getConnection();\x0d\x0a // 構(gòu)造執(zhí)行語(yǔ)句\x0d\x0a String sql = "insert into book values(" + book.getAuthor() + ","\x0d\x0a + book.getName() + ")";\x0d\x0a pst = connection.prepareStatement(sql);\x0d\x0a pst.executeUpdate(); } catch (Exception e) {\x0d\x0a // 拋出異常\x0d\x0a throw e;\x0d\x0a } finally {\x0d\x0a // 無(wú)論是否異常 均關(guān)閉數(shù)據(jù)庫(kù)\x0d\x0a BaseDao.closeAll(null, pst, connection);\x0d\x0a }\x0d\x0a } /**\x0d\x0a * 查詢(xún)所有書(shū)籍列表\x0d\x0a */\x0d\x0a public List getBooks() throws Exception {\x0d\x0a // 用于存放查尋結(jié)果的集合\x0d\x0a List books = new ArrayList();\x0d\x0a // 連接\x0d\x0a Connection connection = null;\x0d\x0a // 執(zhí)行語(yǔ)句\x0d\x0a PreparedStatement pst = null;\x0d\x0a // 查詢(xún)結(jié)果\x0d\x0a ResultSet resultSet = null;\x0d\x0a try {\x0d\x0a connection = BaseDao.getConnection();\x0d\x0a // 構(gòu)造查詢(xún)語(yǔ)句\x0d\x0a String sql = "select * from book";\x0d\x0a pst = connection.prepareStatement(sql);\x0d\x0a resultSet = pst.executeQuery(); // 循環(huán)讀取查詢(xún)結(jié)果行\(zhòng)x0d\x0a while (resultSet.next()) {\x0d\x0a // getXXX的參數(shù)為數(shù)據(jù)表列名\x0d\x0a Book book = new Book(resultSet.getLong("id"), resultSet\x0d\x0a .getString("author"), resultSet.getString("name"));\x0d\x0a // 將封裝好的圖書(shū)對(duì)象存入集合\x0d\x0a books.add(book);\x0d\x0a }\x0d\x0a } catch (Exception e) {\x0d\x0a // 拋出異常\x0d\x0a throw e;\x0d\x0a } finally {\x0d\x0a // 無(wú)論是否異常 均關(guān)閉數(shù)據(jù)庫(kù)\x0d\x0a BaseDao.closeAll(resultSet, pst, connection);\x0d\x0a }\x0d\x0a // 返回查詢(xún)結(jié)果\x0d\x0a return books;\x0d\x0a }/***其它方法類(lèi)似上面 只是語(yǔ)句不同*/\x0d\x0a}當(dāng)然 以上只是簡(jiǎn)單的封裝 初學(xué)者可以在理解以上代碼的基礎(chǔ)上 進(jìn)行更高級(jí)的封裝\x0d\x0a5.使用BookDao添加書(shū)籍和獲取所有書(shū)籍列表import java.util.List;/**\x0d\x0a * 測(cè)試類(lèi)\x0d\x0a * @author Administrator\x0d\x0a *\x0d\x0a */\x0d\x0apublic class Test { /**\x0d\x0a * @param args\x0d\x0a * @throws Exception \x0d\x0a */\x0d\x0a public static void main(String[] args) throws Exception {\x0d\x0a //創(chuàng)建工具類(lèi)對(duì)象\x0d\x0a BookDao dao = new BookDao();\x0d\x0a //創(chuàng)建一本圖書(shū)\x0d\x0a Book book = new Book(null,"QQ:495691293","編程菜鳥(niǎo)");\x0d\x0a //添加書(shū)籍到數(shù)據(jù)庫(kù)\x0d\x0a dao.addBook(book);\x0d\x0a \x0d\x0a //獲取所有圖書(shū)列表\x0d\x0a List books = dao.getBooks();\x0d\x0a //輸出結(jié)果\x0d\x0a for (Book b : books) {\x0d\x0a System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName());\x0d\x0a }\x0d\x0a }}

成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供耒陽(yáng)企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為耒陽(yáng)眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。
使用JDBC進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作1.下載Microsoft SQL Server 2005 JDBC 驅(qū)動(dòng)包jar文件 將jar文件引入工程中2.封裝數(shù)據(jù)庫(kù)鏈接的獲取和關(guān)閉操作import java.sql.*;public class BaseDao {
/**
* 數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)的字符串,完整的包名加類(lèi)名 在工程中查看添加的jar文件 能看到這個(gè)類(lèi)
*/
private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; /**
* 數(shù)據(jù)庫(kù)連接地址
*
* DataBaseName=數(shù)據(jù)庫(kù)名稱(chēng) 其它固定
*/
private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs"; /**
* 連接數(shù)據(jù)庫(kù)的用戶(hù)名
*/
private static final String USER = "sa"; /**
* 用戶(hù)密碼
*/
private static final String PASSWORD = ""; /**
* 獲取連接 異常直接拋出 或者捕獲后自定義異常信息再拋出
*/
public static Connection getConnection() throws Exception {
Class.forName(DRIVE);
return DriverManager.getConnection(URL, USER, PASSWORD);
} /**
* 關(guān)閉與數(shù)據(jù)庫(kù)的連接 釋放資源
*/
public static void closeAll(ResultSet resultSet, PreparedStatement pst,
Connection connection) throws Exception {
if (resultSet != null)
resultSet.close();
if (pst != null)
pst.close();
if (connection != null)
connection.close();
}}3.創(chuàng)建圖書(shū)的實(shí)體類(lèi)public class Book {
/**
* 數(shù)據(jù)庫(kù)主鍵
*/
private Long id; /**
* 作者
*/
private String author; /**
* 書(shū)名
*/
private String name;
/**
* 默認(rèn)構(gòu)造
*
*/
public Book() {
}
/**
* 全字段構(gòu)造
* @param id
* @param author
* @param name
*/
public Book(Long id, String author, String name) {
this.id = id;
this.author = author;
this.name = name;
}
/**
* 以下為讀寫(xiě)屬性的方法
* @return
*/
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4.創(chuàng)建與圖書(shū)表交互的工具類(lèi)import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class BookDao {
/**
* 添加新書(shū)
*
* @param book 要添加入數(shù)據(jù)庫(kù)的圖書(shū) 作者 書(shū)名 必須給定
*/
public void addBook(Book book) throws Exception {
// 連接
Connection connection = null;
// 執(zhí)行語(yǔ)句
PreparedStatement pst = null;
try {
connection = BaseDao.getConnection();
// 構(gòu)造執(zhí)行語(yǔ)句
String sql = "insert into book values(" + book.getAuthor() + ","
+ book.getName() + ")";
pst = connection.prepareStatement(sql);
pst.executeUpdate(); } catch (Exception e) {
// 拋出異常
throw e;
} finally {
// 無(wú)論是否異常 均關(guān)閉數(shù)據(jù)庫(kù)
BaseDao.closeAll(null, pst, connection);
}
} /**
* 查詢(xún)所有書(shū)籍列表
*/
public ListBook getBooks() throws Exception {
// 用于存放查尋結(jié)果的集合
ListBook books = new ArrayListBook();
// 連接
Connection connection = null;
// 執(zhí)行語(yǔ)句
PreparedStatement pst = null;
// 查詢(xún)結(jié)果
ResultSet resultSet = null;
try {
connection = BaseDao.getConnection();
// 構(gòu)造查詢(xún)語(yǔ)句
String sql = "select * from book";
pst = connection.prepareStatement(sql);
resultSet = pst.executeQuery(); // 循環(huán)讀取查詢(xún)結(jié)果行
while (resultSet.next()) {
// getXXX的參數(shù)為數(shù)據(jù)表列名
Book book = new Book(resultSet.getLong("id"), resultSet
.getString("author"), resultSet.getString("name"));
// 將封裝好的圖書(shū)對(duì)象存入集合
books.add(book);
}
} catch (Exception e) {
// 拋出異常
throw e;
} finally {
// 無(wú)論是否異常 均關(guān)閉數(shù)據(jù)庫(kù)
BaseDao.closeAll(resultSet, pst, connection);
}
// 返回查詢(xún)結(jié)果
return books;
}/***其它方法類(lèi)似上面 只是語(yǔ)句不同*/
}當(dāng)然 以上只是簡(jiǎn)單的封裝 初學(xué)者可以在理解以上代碼的基礎(chǔ)上 進(jìn)行更高級(jí)的封裝
5.使用BookDao添加書(shū)籍和獲取所有書(shū)籍列表import java.util.List;/**
* 測(cè)試類(lèi)
* @author Administrator
*
*/
public class Test { /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
//創(chuàng)建工具類(lèi)對(duì)象
BookDao dao = new BookDao();
//創(chuàng)建一本圖書(shū)
Book book = new Book(null,"QQ:495691293","編程菜鳥(niǎo)");
//添加書(shū)籍到數(shù)據(jù)庫(kù)
dao.addBook(book);
//獲取所有圖書(shū)列表
ListBook books = dao.getBooks();
//輸出結(jié)果
for (Book b : books) {
System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName());
}
}}
import java.awt.*; \x0d\x0aimport javax.swing.*; \x0d\x0aimport java.awt.event.*; \x0d\x0aimport java.sql.*; \x0d\x0a\x0d\x0aclass LoginFrm extends JFrame implements ActionListener \x0d\x0a{ \x0d\x0aJLabel lbl1=new JLabel("用戶(hù)名"); \x0d\x0aJLabel lbl2=new JLabel("密碼"); \x0d\x0aJTextField txt=new JTextField(15); \x0d\x0aJPasswordField pf=new JPasswordField(); \x0d\x0aJButton btn1=new JButton("確定"); \x0d\x0aJButton btn2=new JButton("取消"); \x0d\x0a\x0d\x0apublic LoginFrm() \x0d\x0a{ \x0d\x0athis.setTitle("登陸"); \x0d\x0aJPanel jp=(JPanel)this.getContentPane(); \x0d\x0ajp.setLayout(new GridLayout(3,2,10,10)); \x0d\x0ajp.add(lbl1);jp.add(txt); \x0d\x0ajp.add(lbl2);jp.add(pf); \x0d\x0ajp.add(btn1);jp.add(btn2); \x0d\x0abtn1.addActionListener(this); \x0d\x0abtn2.addActionListener(this); \x0d\x0a} \x0d\x0a\x0d\x0apublic void actionPerformed(ActionEvent ae) \x0d\x0a{ \x0d\x0aif(ae.getSource()==btn1) \x0d\x0a{ \x0d\x0atry \x0d\x0a{ \x0d\x0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); \x0d\x0aConnection con=DriverManager.getConnection("jdbc:odbc:MyDB","",""); \x0d\x0aStatement cmd=con.createStatement(); \x0d\x0aResultSet rs=cmd.executeQuery("select * from loginAndpassword where login='"+txt.getText()+"' and password='"+pf.getText()+"'"); \x0d\x0aif(rs.next()) \x0d\x0a{ \x0d\x0aJOptionPane.showMessageDialog(null,"登陸成功!"); \x0d\x0a} \x0d\x0aelse \x0d\x0aJOptionPane.showMessageDialog(null,"用戶(hù)名或密碼錯(cuò)誤!"); \x0d\x0a} catch(Exception ex){} \x0d\x0a\x0d\x0aif(ae.getSource()==btn2) \x0d\x0a{ \x0d\x0atxt.setText(""); \x0d\x0apf.setText(""); \x0d\x0a} \x0d\x0a} \x0d\x0a} \x0d\x0a\x0d\x0apublic static void main(String arg[]) \x0d\x0a{ \x0d\x0aJFrame.setDefaultLookAndFeelDecorated(true); \x0d\x0aLoginFrm frm=new LoginFrm(); \x0d\x0afrm.setSize(400,200); \x0d\x0afrm.setVisible(true); \x0d\x0a} \x0d\x0a}
當(dāng)前文章:java登陸界面代碼連接 java登陸頁(yè)面代碼
網(wǎng)址分享:http://chinadenli.net/article34/dojoipe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、App開(kāi)發(fā)、企業(yè)建站、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)