永发信息网

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

答案:5  悬赏:0  手机版
解决时间 2021-11-10 16:11
  • 提问者网友:泪痣哥哥
  • 2021-11-09 23:59
java如何调取数据库中的数据,
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-11-10 00:28
    java使用jdbc技术实现数据库的访问,请先了解jdbc技术
    有很多orm框架对jdbc进行了封装,实现了面向对象的数据库操作,比如hibernate。

全部回答
  • 1楼网友:佘樂
  • 2021-11-10 04:02
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();
}
}
  • 2楼网友:痴妹与他
  • 2021-11-10 03:37
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就是了
  • 3楼网友:鱼忧
  • 2021-11-10 02:37
setLong 是将 sql中的?号 替换为相应的数字,setLong(9,1)是将第一个?号,替换为9
其他的是查询结果、如果有结果、读取各种列,比如getString(2)就是读取第二列追问请问如果想读取第二列第三行的一项怎么写?追答rs.next()是移到下一行
如果是想要第三行,就要三次调用rs.next(),然后getString(2),读取第二列追问哦,多谢
  • 4楼网友:零点过十分
  • 2021-11-10 01:28
setLong 表示设置sql语句中的第1个?号为9。正面的getString表示获取第X列的数据。追问请问如果想读取第二列第三行的一项怎么写?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯