永发信息网

java如何调取数据库中的数据,

答案:5  悬赏:0  手机版
解决时间 2021-11-10 16:11
java如何调取数据库中的数据,
最佳答案
    java使用jdbc技术实现数据库的访问,请先了解jdbc技术
    有很多orm框架对jdbc进行了封装,实现了面向对象的数据库操作,比如hibernate。

全部回答
1.提取单条记录
//import java.sql.*;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:%%1";
con=DriverManager.getConnection(url,%%2,%%3);
stmt=conn.createStatement();
stmt.executeUpdate(%%4);
rs=stmt.executeQuery(%%5);
}catch(Exception e){
e.printStackTrace();
}
finally{
try {
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

3.显示表格

String[] colHeads=%%4;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:%%1";
conn=DriverManager.getConnection(url,%%2,%%3);
stmt=conn.createStatement();
rs=stmt.executeQuery("SELECT count(*) as au_count from "+%%5);
rs.next();
int iCount=rs.getInt("au_count");
Object[][] data=new Object[iCount][];
int i=0;
rs=stmt.executeQuery("SELECt * from "+%%5);
while(rs.next()){
data[i]=new Object[iCount];
data[i][0]=rs.getString("au_fname");
data[i][1]=rs.getString("Phone");
data[i][2]=rs.getString("City");
i++;
}
JTable table=new JTable(data,colHeads);
JScrollPane jsp=new JScrollPane(table);
getContentPane().add(jsp);
}catch(Exception e){
e.printStackTrace();
}
finally{
try {
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
6.关闭时关闭连接
//import java.sql.*;
addWindowListener(new WindowAdapter{
public void windowClosing(WindowEvent wevent){
if(stmt!=null){
try {
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

7.执行命令
//import java.sql.*;
Connection conn=null;
PreparedStatement pst=null;
try {
conn=DriverManager.getConnection(url);
pst=conn.prepareStatement("Insert Into grade(%%1) Values (?)");
pst.setInt(1,%%2);
//pst.setString(2,%%2);
pst.addBatch();
pst.executeBatch();
} catch (SQLException e){
e.printStackTrace();
}
finally{
try {
if (pst != null)
pst.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
preparedStatement是预处理sql,setLong就是给上面的sql设置where条件,ResultSet是执行sql后返回的结果集,然后就是遍历结果集取值了追问请问如果想读取第二列第三行的一项怎么写?请问如果想读取第二列第三行的一项怎么写?追答PreparedStatement pst = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = pst.executeQuery();
if(rs.absolute(2)){//读取第二列
int i = rs.getInt(3);//第三行
}

实际应用中不应该这么死板,可以取完结果集后,再遍历取List就是了
setLong 是将 sql中的?号 替换为相应的数字,setLong(9,1)是将第一个?号,替换为9
其他的是查询结果、如果有结果、读取各种列,比如getString(2)就是读取第二列追问请问如果想读取第二列第三行的一项怎么写?追答rs.next()是移到下一行
如果是想要第三行,就要三次调用rs.next(),然后getString(2),读取第二列追问哦,多谢
setLong 表示设置sql语句中的第1个?号为9。正面的getString表示获取第X列的数据。追问请问如果想读取第二列第三行的一项怎么写?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求职者就应该放低身段吗
这台华硕的本本买亏了,你们觉得呢
找不一样的地方,十处
19岁出来工作2年半,月收入5000很奇怪吗??
支付宝花呗开通开通花呗显示你的安全验证没有
一根铅芯掉到水里了,水还能喝吗?
老公现在拒绝和我啪啪啪,每次都要我去缠他很
醒悟跟觉悟在意思上有什么区别
nvr搜索不到球机?
经常访问恶意网站对手机有危害吗?
word里像羊字一样的符号怎么写
我想借款一万元
如果女朋友在和你交往时与以前男朋友发生关系
珍惜生命的名言
今天高速免费吗
推荐资讯
7月24号2:16时出生的男宝宝名字叫江宏杰这个
林甸县公安局东兴派出所地址在什么地方,我要
漳州有什么好玩的地方???
佛智通达净无碍,一念普知三世法,皆从心识因缘
用铝锅蒸饭蒸馒头行吗
通货膨胀是什么意思?对期货有什么影响?
哭嫁是什么意思
有对“谋士神”酒了解的吗
3d一年开出几次1,4,7
网页分几种类型 分页式,一站式 瀑布流还有什
南广高铁中有那些站
用什么方法去除青椒的辣味?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?