package basic;
創(chuàng)新互聯(lián)主營(yíng)南宮網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,南宮h5小程序制作搭建,南宮網(wǎng)站營(yíng)銷推廣歡迎南宮等地區(qū)企業(yè)咨詢
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 JDBC {
public void findAll() {
try {
// 獲得數(shù)據(jù)庫驅(qū)動(dòng)
//由于長(zhǎng)時(shí)間不寫,驅(qū)動(dòng)名和URL都忘記了,不知道對(duì)不對(duì),你應(yīng)該知道的,自己改一下的哈
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
// 創(chuàng)建連接
Connection conn = DriverManager.getConnection(url, userName,
password);
// 新建發(fā)送sql語句的對(duì)象
Statement st = conn.createStatement();
// 執(zhí)行sql
String sql = "select * from users";
ResultSet rs = st.executeQuery(sql);
// 處理結(jié)果
while(rs.next()){
//這個(gè)地方就是給你的封裝類屬性賦值
System.out.println("UserName:"+rs.getString(0));
}
// 關(guān)閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(){
try {
//步驟還是那六個(gè)步驟,前邊的兩步是一樣的
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url,userName,password);
//這里的發(fā)送sql語句的對(duì)象是PreparedStatement,成為預(yù)處理sql對(duì)象,因?yàn)榘礂l件刪除是需要不定值的
String sql = "delete from users where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(0, 1);
int row = ps.executeUpdate();
if(row!=0){
System.out.println("刪除成功!");
}
// 關(guān)閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我只寫了查詢和刪除,添加、修改和刪除非常之像,這是因?yàn)椴樵儗?duì)數(shù)據(jù)庫沒有改動(dòng),而增刪改都對(duì)數(shù)據(jù)庫進(jìn)行了修改,所以這三個(gè)非常像……呵呵,你自己看著辦吧
方法很簡(jiǎn)單
SQL.ADD(select FEILEI from dbconfig group by FEILEI)
SQL.OPEN()
WHILE(NOT EOF)
{
SQL2.ADD(SELECT * FROM dbconfig WHERE FEILEI =FIELDBYNAME("FEILEI "))
WHILE(NOT EOF)
{
......//顯示數(shù)據(jù)
}
}
以上是實(shí)現(xiàn)功能的方式 具體代碼和語法自己寫吧,兩層循環(huán)嵌套就OK
需要到Eclipse來實(shí)現(xiàn)。
1、首先我們使用數(shù)據(jù)庫連接工具HeiDiSQL來連接本機(jī)的mysql數(shù)據(jù)庫,
2、使用該工具創(chuàng)建一個(gè)test數(shù)據(jù)庫,
3、在該數(shù)據(jù)庫中創(chuàng)建一張student表,該表中有id、name和age字段,我們同時(shí)給數(shù)據(jù)庫添加數(shù)據(jù),如下圖所示。
4、我們創(chuàng)建一個(gè)Student類,并為該類分別創(chuàng)建id、name和age屬性,并用private修飾符進(jìn)行限定。接下來我們?yōu)檫@些屬性創(chuàng)建getter和setter方法,如下圖所示。
5、我們創(chuàng)建一個(gè)數(shù)據(jù)庫連接類,用于配置數(shù)據(jù)庫連接的屬性,如數(shù)據(jù)庫的驅(qū)動(dòng)、URL、用戶名和密碼。
6、我們創(chuàng)建完數(shù)據(jù)庫的連接后,使用getConnection()方法獲取連接,
7、使用close()方法關(guān)閉連接。我們?cè)谑褂胢ysql時(shí)需要添加smysql驅(qū)動(dòng)的jar包。
8、接下來我們創(chuàng)建MVC模式中的數(shù)據(jù)持久化層,首先我們創(chuàng)建一個(gè)TestDao接口,用于定義獲取數(shù)據(jù)的方法。
9、接下來我們創(chuàng)建TestDaoImpl實(shí)現(xiàn)類,并且實(shí)現(xiàn)TestDao接口,重寫該接口中的方法,如下圖所示。
10、我們將數(shù)據(jù)以集合的形式返回,此時(shí)需要?jiǎng)?chuàng)建TestSverlet類進(jìn)行業(yè)務(wù)邏輯處理。我們首先創(chuàng)建一個(gè)構(gòu)造方法,并在構(gòu)造方法中獲取數(shù)據(jù)庫的連接。
11、我們創(chuàng)建的TestServlet類繼承了HttpServlet類,并重寫了父類的doGet()方法,我們?cè)谠摲椒ㄖ袆?chuàng)建TestDaoImpl的對(duì)象,并調(diào)用getAllStudent()方法進(jìn)行數(shù)據(jù)的查詢,并將查詢的結(jié)果放入到request的屬性中,同時(shí)使用RequestDispatcher將請(qǐng)求轉(zhuǎn)發(fā)到student.jsp。
12、我們創(chuàng)建一個(gè)student.jsp的文件,在該文件中使用EL表達(dá)式和JSTL標(biāo)簽來獲取request范圍的屬性數(shù)據(jù),即上一步驟的查詢結(jié)果。
13、最后我們需要在web.xml文件中配置該Servlet的請(qǐng)求路徑等信息,如下圖所示。
14、以上步驟完成后我們使用Tomcat啟動(dòng)該項(xiàng)目,按照請(qǐng)求路徑訪問便可在頁面表格中獲取到數(shù)據(jù)庫的查詢結(jié)果。
??DBUtils用的最多的莫過于其結(jié)果集的處理,畢竟僅僅得到一個(gè)ResultSets是沒有。而結(jié)果集的處理正是依賴于ResultSetHandler 接口及其實(shí)現(xiàn)類。 以下內(nèi)容,我們著重分析該接口及其實(shí)現(xiàn)類的源碼并給出使用方法。
ArrayHandler
ArrayListHandler
BeanHandler
BeanListHandler
MapHandler
MapListHandler
用的不是特別多但是 業(yè)務(wù)中會(huì)有涉及的需要知曉
ColumnListHandler
ScalarHandler
KeyedHandler