既然当成文本插入,字段改成varchar或text不久得了?
在oracle中,没种子端类型都有一定的长度范围,长度太大肯定不行。
而且,一条记录也有长度限制,好像是8000多byte。
在oracle中,没种子端类型都有一定的长度范围,长度太大肯定不行。
而且,一条记录也有长度限制,好像是8000多byte。
解决方案 »
- 新手学习一段时间JAVA之后的疑问
- 页面radio怎么传递到servlet中
- Glassfish Tomcat Eclipse的连接
- 关于HTTP头-MIME 中部分文件编译的问题
- 关于logic:iterate循环的问题
- 在eclipse上面运行servlet的问题,
- 我想写rss reader,怎样做到一有其他站点的rss feed更新,我这边的阅读器马上就提示我?
- 我数据库里的类型是decimal对象,取出来为string对象,0.53显示却是.53,帮帮哦~
- 溢洋论坛调试时出错,不知所故,放上请大侠鉴定!
- angular4如何实时获取input的值
- 我的机器上用的是JBuilder,但是我想学开发EJB,但环境不是很清楚,请指教?
- BBS中的在线人数如何知道?
to cayu(中原) 如何保存,举个例子,谢谢。
TITLE NOT NULL VARCHAR2(80)
CONTENT NOT NULL LONG<%String sSql = "INSERT INTO news VALUES(?,?)";PreparedStatement pstmt = con.prepareStatement(sSql);
String title=request.getParameter("title");
String content=request.getParameter("content");
byte[] pic = content.getBytes("8859_1");
ByteArrayInputStream baisss = new ByteArrayInputStream(pic);
InputStreamReader bais = new InputStreamReader(baisss,"8859_1"); pstmt.setString(1,title);
pstmt.setCharacterStream(2,bais,pic.length);
pstmt.execute();
%>
非常感谢你的代码:我将字符插如了进去,可在读出时中问乱马,请问怎么解决?
代码如下:插入时:
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");
String sql= "INSERT INTO speedfaw.news VALUES(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
String title=request.getParameter("title");
String content=request.getParameter("content");
byte[] pic = content.getBytes("8859_1");
ByteArrayInputStream baisss = new ByteArrayInputStream(pic);
InputStreamReader bais = new InputStreamReader(baisss,"8859_1"); pstmt.setString(1,title);
pstmt.setCharacterStream(2,bais,pic.length);
pstmt.execute();
pstmt.close();
conn.close();
%>读出时:
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");
Statement stmt = conn.createStatement();
String sql="select title,content from speedfaw.news";
ResultSet rs=stmt.executeQuery(sql);
if (rs.next())
{
String title = rs.getString("title");
byte [] blocco = rs.getBytes("content");
//response.setContentType("image/jpeg");
//ServletOutputStream op = response.getOutputStream();
for(int i=0;i<blocco.length;i++)
{
out.write(blocco[i]);
}
}
rs.close();
conn.close();
%>
马上给分,别急,呵呵。
byte [] blocco = rs.getBytes("content");
String strBlocco = new String(blocco.getBytes("iso-8859-1"),"gb2312");//如果不对,就用String strBlocco = new String(blocco);
out.println(strBlocco);
你的 第一种方式我试了,报错,因为 blocco 没有 getBytes 方法。
第二种也试了,不行,还是????。。
gz!
String temp = new String(content.getBytes("GBK","ISO8859-1");
byte[] pic = temp.getBytes("8859_1");睹的时候改为:
String c = new String(blocco,"GBK");
out.println(c);
这样试试!
你的方法也不行,出现的码更乱,呵呵,
你看看:????????锛????? 锛???????Weblogic 5.1??mysql ?????篓掳?篓锛???篓锛??weblogic?篓锛????POOL?? ??锛??锛??????????? servlet 锛??锛????????????锛????????????? mysql ?篓锛????JDBC???锛????????MYSQL?? ?篓锛??????
另外:你的参数是从另一个页面得到的,他应该已经是unicode编码了,反正就是中文问题, 你在插入和渡出试缓缓方法测一下。
还有,用text类型我存取过3000多的汉字,不能满足你的要求吗?
我的代码是显示大文本。现在的问题是英文正常,中文出现乱码,
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,java.util.*,oracle.jdbc.driver.*" %>
<html>
<head>
<title>Untitled</title>
</head><body><form action="testlong.jsp" method="post">
<input type="text" name="title" >
<textarea cols="47" rows="17" name="content"></textarea>
<input type="submit" name="submit1">
</form> </body>
</html>testlong.jsp(写入的代码)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,java.io.*,java.util.*,oracle.jdbc.driver.*" %>
<html>
<head>
<title>testlong</title>
</head><body>
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");
String sql= "INSERT INTO speedfaw.news VALUES(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
String title=request.getParameter("title");
String content=request.getParameter("content");
// byte[] pic = content1.getBytes("8859_1");
String temp = new String(content.getBytes("GB2312"),"8859_1");
byte[] pic = temp.getBytes("8859_1"); ByteArrayInputStream baisss = new ByteArrayInputStream(pic);
InputStreamReader bais = new InputStreamReader(baisss,"8859_1"); pstmt.setString(1,title);
pstmt.setCharacterStream(2,bais,pic.length);
pstmt.execute();
pstmt.close();
conn.close();
%>
</body>
</html>testlong1.jsp(读的代码)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,java.io.*,java.util.*,oracle.jdbc.driver.*" %>
<html>
<head>
<title>testlong1</title>
</head><body>
<%
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");
Statement stmt = conn.createStatement();
String sql="select title,content from speedfaw.news";
ResultSet rs=stmt.executeQuery(sql);
//int c;
if (rs.next())
{
String title = rs.getString("title");
byte [] blocco = rs.getBytes("content");
out.println(blocco.length);
//String strBlocco = new String(blocco.getBytes("iso-8859-1"),"gb2312");
String c = new String(blocco,"GB2312");
out.println(c); }
rs.close();
conn.close();
%>
</body>
</html>
long可以直接写出来的
content=rs.getString("content");
out.print(content);
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,java.util.*,oracle.jdbc.driver.*" %>
<html>
<head>
<title>Untitled</title>
</head><body><form action="testformin.jsp" method="post">
<input type="text" name="title" >
<textarea cols="47" rows="17" name="content"></textarea>
<input type="submit" name="submit1">
</form> </body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,java.io.*,java.util.*,oracle.jdbc.driver.*" %>
<html>
<head>
<title>testlong</title>
</head><body>
<%
// DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// Connection conn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");try
{ String dbdriver = "oracle.jdbc.driver.OracleDriver";
String dbname = "jdbc:oracle:thin:@sgh:1521:sght";
Connection conn=DriverManager.getConnection(dbname,"sgh","sgh");
String sql= "INSERT INTO w_test VALUES(?,?)";
PreparedStatement pstmt=conn.prepareStatement(sql);
String title=request.getParameter("title");
String content=request.getParameter("content"); String tp = new String(title.getBytes("ISO8859-1"),"GBK");
out.print(tp);
String con = new String(content.getBytes("ISO8859-1"),"GBK");
// byte[] pic = content1.getBytes("8859_1");
byte[] pic = con.getBytes("GBK"); ByteArrayInputStream baisss = new ByteArrayInputStream(pic);
InputStreamReader bais = new InputStreamReader(baisss,"GBK"); pstmt.setString(1,tp);
pstmt.setCharacterStream(2,bais,pic.length);
pstmt.execute();
pstmt.close();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
} %>
<script language="javaScript">
</script>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*,java.io.*,java.util.*,oracle.jdbc.driver.*" %>
<html>
<head>
<title>testlong1</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body>
<%
//DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//Connection conn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");
String dbdriver = "oracle.jdbc.driver.OracleDriver";
String dbname = "jdbc:oracle:thin:@sgh:1521:sght";
Connection conn=DriverManager.getConnection(dbname,"sgh","sgh");
Statement stmt = conn.createStatement();
String sql="select title,content from w_test";
ResultSet rs=stmt.executeQuery(sql);
//int c;
while(rs.next())
{
String title = rs.getString("title");
String t = new String(title.getBytes("ISO8859-1"),"GBK");
String tr = rs.getString("content");
out.println(tr); }
rs.close();
conn.close();
%>
</body>
</html>