Java采用setAsciiStream方法检索数据库指定内容实例解析
本文实例展示了Java采用setAsciiStream()方法检索数据库的实例代码。使用参数查询必须在SQL语句执行之前对参数进行赋值,赋值是使用PreparedStatement对象的SetBoolean()、SetInt()、SetString()、SetObject()、SetNull()等方法来实现。这些方法建立了Java数据类型和SQL数据类型的映射。JDBC可以使用输入流作为SQL语句的输入参数,设置输入流的方法有三个:setAsciiStream()、setUnicodeStream()、setBinaryStream()。本例采用了setAsciiStream()方法,此方法将ASCII码值输入到SQL的Longvarchar类型的参数中。执行查询后会返回一个ResultSet对象,该对象包括查询语句返回的存放有查询结果的表,通过使用ResultSet对象的next()方法可以获得记录集的下一条记录。使用ResultSet对象的getInt()、getString、getBoolean()、getByte()、getObject()等方法来获得记录中的数据。使用这些方法是根据返回值的需要来确定。使用isNull()方法可以判断输出参数是否为空。本例中使用了getString()来获取学生的姓名、年龄、住址、电话信息,使用了getInt()方法来获取学生的班级号码。
程序实现步骤如下:
1.编写useParameterResultSet类的基本框架,在该类中仅包括main()方法,在main()方法中先加载驱动程序,建立与数据库的连接,对数据库执行一般查询,接着执行参数查询,最后执行存储过程。
2.该类的全部代码如下:
//使用了JDBC类、DriverManager类和系统输出,所以需要引入如下的包: importjava.sql.*; importjava.io.*; //importjava.util.*; classuseParameterResultSet { publicstaticvoidmain(Stringargv[]) { Stringurl="jdbc.odbc:useDSN"; Stringname,age,address,telephone; intcno; java.sql.ResultSetrs; try { //加载驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //建立连接 Connectioncon=DriverManager.getConnection(url,"sa",""); //创建文件输入流 Filefile=newFile("d:/java/usefile.txt"); intflength=2; InputStreamfis=newFileInputStream(file); //创建PreparedStatement对象 Stringsqlstr="select*fromstudentwhereage=?"; PreparedStatementps=con.prepareStatement(sqlstr); //设置输入参数 ps.setAsciiStream(1,fis,flength); //获得结果集 rs=ps.executeQuery(); //输出结果集 System.out.println("查询结果:"); while(rs.next()) { name=rs.getString("name"); age=rs.getString("age"); cno=rs.getInt("classno"); address=rs.getString("address"); telephone=rs.getString("telephone"); System.out.println(name+""+age+""+cno+""+address+""+telephone); } con.close(); } catch(Exceptione) { System.out.println(e.getMessage()); e.printStackTrace(); } } }
感兴趣的读者可以动手测试一下本文所述实例,相信会给大家的Java项目开发起到一定的帮助作用。