伊莉討論區
標題:
用java jdbc載mysql
[打印本頁]
作者:
hook_38
時間:
2010-7-9 09:11 AM
標題:
用java jdbc載mysql
package
db;
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
jdbcmysql
{
private
Connection con =
null
;
//Database objects
//連接object
private
Statement stat =
null
;
//執行,傳入之sql為完整字串
private
ResultSet rs =
null
;
//結果集
private
PreparedStatement pst =
null
;
//執行,傳入之sql為預儲之字申,需要傳入變數之位置
//先利用?來做標示
private
String dropdbSQL =
"DROP TABLE User "
;
private
String createdbSQL =
"CREATE TABLE User ("
+
" id INTEGER "
+
" , name VARCHAR(20) "
+
" , passwd VARCHAR(20))"
;
private
String insertdbSQL =
"insert into User(id,name,passwd) "
+
"select ifNULL(max(id),0)+1,?,? FROM User"
;
private
String selectSQL =
"select * from User "
;
public
jdbcmysql
()
{
try
{
Class.forName
(
"com.mysql.jdbc.Driver"
)
;
//註冊driver
con = DriverManager.getConnection
(
"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=Big5"
,
"root"
,
"12345"
)
;
//取得connection
//jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=Big5
//localhost是主機名,test是database名
//useUnicode=true&characterEncoding=Big5使用的編碼
}
catch
(
ClassNotFoundException e
)
{
System.out.println
(
"DriverClassNotFound :"
+e.toString
())
;
}
//有可能會產生sqlexception
catch
(
SQLException x
) {
System.out.println
(
"Exception :"
+x.toString
())
;
}
}
//建立table的方式
//可以看看Statement的使用方式
public
void
createTable
()
{
try
{
stat = con.createStatement
()
;
stat.executeUpdate
(
createdbSQL
)
;
}
catch
(
SQLException e
)
{
System.out.println
(
"CreateDB Exception :"
+ e.toString
())
;
}
finally
{
Close
()
;
}
}
//新增資料
//可以看看PrepareStatement的使用方式
public
void
insertTable
(
String name,String passwd
)
{
try
{
pst = con.prepareStatement
(
insertdbSQL
)
;
pst.setString
(
1
, name
)
;
pst.setString
(
2
, passwd
)
;
pst.executeUpdate
()
;
}
catch
(
SQLException e
)
{
System.out.println
(
"InsertDB Exception :"
+ e.toString
())
;
}
finally
{
Close
()
;
}
}
//刪除Table,
//跟建立table很像
public
void
dropTable
()
{
try
{
stat = con.createStatement
()
;
stat.executeUpdate
(
dropdbSQL
)
;
}
catch
(
SQLException e
)
{
System.out.println
(
"DropDB Exception :"
+ e.toString
())
;
}
finally
{
Close
()
;
}
}
//查詢資料
//可以看看回傳結果集及取得資料方式
public
void
SelectTable
()
{
try
{
stat = con.createStatement
()
;
rs = stat.executeQuery
(
selectSQL
)
;
System.out.println
(
"ID\t\tName\t\tPASSWORD"
)
;
while
(
rs.next
())
{
System.out.println
(
rs.getInt
(
"id"
)
+
"\t\t"
+
rs.getString
(
"name"
)
+
"\t\t"
+rs.getString
(
"passwd"
))
;
}
}
catch
(
SQLException e
)
{
System.out.println
(
"DropDB Exception :"
+ e.toString
())
;
}
finally
{
Close
()
;
}
}
//完整使用完資料庫後,記得要關閉所有Object
//否則在等待Timeout時,可能會有Connection poor的狀況
private
void
Close
()
{
try
{
if
(
rs!=
null
)
{
rs.close
()
;
rs =
null
;
}
if
(
stat!=
null
)
{
stat.close
()
;
stat =
null
;
}
if
(
pst!=
null
)
{
pst.close
()
;
pst =
null
;
}
}
catch
(
SQLException e
)
{
System.out.println
(
"Close Exception :"
+ e.toString
())
;
}
}
public static
void
main
(
String
[]
args
)
{
//測看看是否正常
jdbcmysql test =
new
jdbcmysql
()
;
test.dropTable
()
;
test.createTable
()
;
test.insertTable
(
"yku"
,
"12356"
)
;
test.insertTable
(
"yku2"
,
"7890"
)
;
test.SelectTable
()
;
}
}
作者:
威月
時間:
2010-8-2 11:22 PM
感謝您的分享~
剛好派的上用場^^
作者:
foxyman9
時間:
2010-8-19 11:10 AM
我想這對我是非常有幫助的
感謝大大的分享
作者:
www10240mb
時間:
2015-12-20 01:09 PM
感謝大大的技術提供,增長我的知識。
作者:
zaq12345
時間:
2020-4-4 01:12 AM
很詳細的 demo code ....
感謝分享
歡迎光臨 伊莉討論區 (http://www.llnm0w0.eyny.com/)
Powered by Discuz!