1.查询用executeQuery,返回结果集,返回类型为ResultSet,增删改用executeUpdate,返回影响的行数,返回类型为int。具体的可参看java的API:executeQuery public ResultSet executeQuery(String sql) throws SQLException Executes the given SQL statement, which returns a single ResultSet object. Parameters: sql - an SQL statement to be sent to the database, typically a static SQL SELECT statement Returns: a ResultSet object that contains the data produced by the given query; never null Throws: SQLException - if a database access error occurs or the given SQL statement produces anything other than a single ResultSet object--------------------------------------------------------------------------------executeUpdate public int executeUpdate(String sql) throws SQLException Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement. Parameters: sql - an SQL INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing Returns: either the row count for INSERT, UPDATE or DELETE statements, or 0 for SQL statements that return nothing Throws: SQLException - if a database access error occurs or the given SQL statement produces a ResultSet object
to:acefr() 这些我都知道,但我想看一个具体实例,最好是使用swing做的界面,最好是表格化输出的。而且如果我的数据库(比如SQL Server 2000)中有多个表,那么我要对某个表进行操作的话是不是只要在SQL语句中写明就可以了,而在数据库连接中不需要注明是那个表? 另:1、2问题的分我马上开贴另给。 to: foregump(临江一笑) 问题1的分我另开贴给你。
它的用法和executeQuery(String SQL)一样吗?也是将SQL语句作为它的参数吗?
“返回值是添加、删除、修改的记录的条数”——就是说它的返回类型为int了?
public ResultSet executeQuery(String sql)
throws SQLException
Executes the given SQL statement, which returns a single ResultSet object. Parameters:
sql - an SQL statement to be sent to the database, typically a static SQL SELECT statement
Returns:
a ResultSet object that contains the data produced by the given query; never null
Throws:
SQLException - if a database access error occurs or the given SQL statement produces anything other than a single ResultSet object--------------------------------------------------------------------------------executeUpdate
public int executeUpdate(String sql)
throws SQLException
Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement. Parameters:
sql - an SQL INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing
Returns:
either the row count for INSERT, UPDATE or DELETE statements, or 0 for SQL statements that return nothing
Throws:
SQLException - if a database access error occurs or the given SQL statement produces a ResultSet object
用法和executeQuery(String SQL)一样
返回类型为int
祝你好运~!@
testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html> 具体的可以参见帖子:http://www.csdn.net/develop/Read_Article.asp?Id=17769
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:"+dsnname+"",""+DBusername+"",""+DBpwd+""); //建立数据库连接
java.sql.Statement stmt = con.createStatement(); //建立Statement对象
ResultSet rs; //建立ResultSet(结果集)对象
%>当然,你也可以选择写成javabean有关数据库连接还可以考虑使用数据库连接池。这一类的帖子可以参见:CSDN_数据库连接池java实现小结帖子ID:http://www.csdn.net/Develop/Article/18/18434.shtm
<%
String str1 = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:"+dsnname+"",""+DBusername+"",""+DBpwd+""); //建立数据库连接
java.sql.Statement stmt = con.createStatement(); //建立Statement对象
ResultSet rs; //建立ResultSet(结果集)对象String SQL = "select * from temptable";//查询的sql语句;增删改操作改为相应的sql语句
rs = stmt.executeQuery(SQL);//如果是增删改操作,那么这里改为stmt.executeQuery(SQL);就可以的while(rs.next())//增删改操作这里就不用了。
{
str1 = rs.getString(1);//rs.getString是说该字段数据类型为String,如果是int的话就用rs.getInt(1);
out.print(str1);
}
%>你也可以把对数据库的操作封装成一个类,写成javabean在程序中调用。你也可以参见《JSP Examples and Best Practices》一书中的第21页起的例子,描述的非常详细。英文版的.pdf格式的下载地址在www.7yue.com。上面还有很多很好的书籍,呵呵。
/******这一段的有关数据库连接最好try,catch一下****/
String str1 = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:"+dsnname+"",""+DBusername+"",""+DBpwd+""); //建立数据库连接
java.sql.Statement stmt = con.createStatement(); //建立Statement对象
ResultSet rs; //建立ResultSet(结果集)对象String SQL = "select * from temptable";//这是查询的sql语句,增删改操作只要改动相应的sql语句即可。
rs = stmt.executeQuery(SQL);//增删改操作这里就要相应改为:stmt.executeUpdate(SQL);while(rs.next())//这句一定要,否则会出现无效的光标状态的错误,如果是增删改操作则整段都不用了
{
str1 = rs.getString(1);//如果字段类型为int则用rs.getInt(1);其它类型相应变动
out.print(str1);//显示str1,也就是数据库中的数据
}
%>你也可以把有关数据库的操作封装成类,写成javabean在程序中调用本问题可以参见《JSP Examples and Best Practices》一书中第21页起的例子,写的很详细。呵呵
这些我都知道,但我想看一个具体实例,最好是使用swing做的界面,最好是表格化输出的。而且如果我的数据库(比如SQL Server 2000)中有多个表,那么我要对某个表进行操作的话是不是只要在SQL语句中写明就可以了,而在数据库连接中不需要注明是那个表?
另:1、2问题的分我马上开贴另给。
to: foregump(临江一笑)
问题1的分我另开贴给你。
能给出3的例子吗?谢谢了!呵呵。
stmt.close();
con.close();
不过好像只要rs.close();就可以了,Java会自动关闭stmt和con的。
还是谢谢你。
我准备结贴了,虽然你没有给我实例,但是还是谢谢你的解答,我准备再开贴给你50分。