欢迎来到天天文库
浏览记录
ID:59254624
大小:244.29 KB
页数:6页
时间:2020-09-08
《java读取sqlserver2008数据库的ntext类型.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java读取sqlserver2008的ntext从网上查询到:在数据库(ms-sql)中使用ntext等大文本类型的数据时,当文本长度很大时,(比如超过4000),在使用select语句获得的数据集中将无法直接得到该字段的内容,必须要用其他方法获得。cx在java中可用ResultSet对象存放数据集,但无法直接将结果集中的ntext内容转换为字符串(如使用ResultSet对象的各getString()方法),而要用到ResultSet对象的getBinaryStream()方法。rpZT下面是一段完整地jav
2、a代码,将整个过程放在一个类中,代码中有较详细地说明,这里不再赘述,敬请各位参考、指正:(如有更好的办法请及时说明)j(在代码中每次从数据库读取一个字节,是应为不知道数据库存放页面文件的最小占用空间是否为簇,否则可以一次多读一些了!)//代码起始2importjava.io.InputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.UnsupportedEncodingException;importjav
3、a.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.sql.ResultSet;importjava.sql.DriverManager;importjava.sql.Connection;importjava.lang.ClassNotFoundException;publicclassReadBlobFromDatabase{=,KAvpublicReadBlobFromDatabase(){try{//
4、加载数据库驱动程序,这里使用jdbc-odbc数据桥建立与数据库的连接sClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectionconn=DriverManager.getConnection("jdbc:odbc:srrmis","username","passwd");Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE
5、)//执行查询,获得结果集。在这个SQL语句中,ntext_column是一个ntext类型的字段,}49//约束条件选择index值为2的记录H94yVResultSetrs=stmt.executeQuery("selectntext_columnfrommytablewhere[index]=2")//将记录集中的指针指向第一条记录Fif(rs.next()){//定义整数c,存放InputStream读出来的字节所对应的整数eintc;InputStreamis=rs.getBinaryStream(1);
6、//将二进制数据字节流转换为字符流,编码为16位、低位顺序的双字节国家字符(微机格式)j)InputStreamReaderisr=newInputStreamReader(is,"UnicodeLittle");//循环读取文本对应的字节,直到文本结尾ndwhile((c=isr.read())!=-1){;StringtmpString=""+(char)c;//这里用输出测试读出的结果,如果想将各个字符组合、或执行其他的处理,JX//可以在这里编写代码{9System.out.print(tmpString)
7、;}}}我的配置:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//sqlserver2005或者sqlserver2008需要sqljdbc4.jarStringdbUrl="jdbc:sqlserver://127.0.0.1:1433;databasename=slbs";Stringuser="sa";Stringpwd="sa*&";试了一下报错:com.microsoft.sqlserver.jdbc.SQLServerExc
8、eption:不支持从nvarchar到BinaryStream的转换。原来是我用的驱动不匹配;应用:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");读取成功。不过需要配置jdbc.odbc在win7下配置:名称与Connectionconn=DriverManager.getConnection("jdbc:od
此文档下载收益归作者所有