问题1: 当我在public void actionPerformed(......)事件里面,对数据库作操作
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:dbbank";
Connection db=DriverManager.getConnection(url);
Statement st=db.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("select * from employee"); 之后,我又作了
ResultSet rs2=st.executeQuery("insert into employee vaules(.........)");
rs2.close();rs.close();st.close();db.close(); //注意,以上都可以成功,但改为以下代码就不是了 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:dbbank";
Connection db=DriverManager.getConnection(url);
Statement st=db.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("select * from employee"); 之后,我又作了
ResultSet rs2=st.executeQuery("insert into employee vaules(.........)"); rs2.close(); ResultSet rs3=st.executeQuery("insert into employee vaules(.........)");
rs3.close();
rs.close();st.close();db.close();
//注意rs,rs2的操作都可以完成,但rs3的操作酒不可以,请大家帮忙解答一下!
//我自己在ResultSet rs3=st.executeQuery("insert into employee vaules(.........)");之前,从新建立一个新的数据连接,
结果也不行。问题2:
当我执行问题1中的ResultSet rs2=st.executeQuery("insert into employee vaules(.........)");如果我在values()里面输入中文,之后,
再到sqlserver中察看结果,会发现,在因该显示中文数据的那个字段为乱码,但在sql server2000的查询分析器里,执行insert........
的相同sql语句,就可以显示正常的中文????我的表里的那个字段为nchar类型,请大家解答!
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:dbbank";
Connection db=DriverManager.getConnection(url);
Statement st=db.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("select * from employee"); 之后,我又作了
ResultSet rs2=st.executeQuery("insert into employee vaules(.........)");
rs2.close();rs.close();st.close();db.close(); //注意,以上都可以成功,但改为以下代码就不是了 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:dbbank";
Connection db=DriverManager.getConnection(url);
Statement st=db.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("select * from employee"); 之后,我又作了
ResultSet rs2=st.executeQuery("insert into employee vaules(.........)"); rs2.close(); ResultSet rs3=st.executeQuery("insert into employee vaules(.........)");
rs3.close();
rs.close();st.close();db.close();
//注意rs,rs2的操作都可以完成,但rs3的操作酒不可以,请大家帮忙解答一下!
//我自己在ResultSet rs3=st.executeQuery("insert into employee vaules(.........)");之前,从新建立一个新的数据连接,
结果也不行。问题2:
当我执行问题1中的ResultSet rs2=st.executeQuery("insert into employee vaules(.........)");如果我在values()里面输入中文,之后,
再到sqlserver中察看结果,会发现,在因该显示中文数据的那个字段为乱码,但在sql server2000的查询分析器里,执行insert........
的相同sql语句,就可以显示正常的中文????我的表里的那个字段为nchar类型,请大家解答!
可是第一个问题呢,有人知道么??不会把,偌大个csdn,难道?
insert,update时好像用executeUpdate(),返回是int
---------------------------------------
int len3 = st.executeUpate();还差不多,如果updateQuery,设计也....
JDBC的官方网站好像提到了这个问题哦.
可以吗
那你都换成st.executeUpdate("insert into employee vaules(.........)");试试
数据库的字符集采用的是ISO-8859-1
windows xp 下jvm默认字符集采用的是GBK你要每次操作的时候要转换一下
直接st.executeUpdate("insert .....")
但是我还是不知道楼上的nake兄弟说的在数据库连接时候指定iso-8859-l或gbk,是什么东西?如何指定啊?
但是我还是不知道楼上的nake兄弟说的在数据库连接时候指定iso-8859-l或gbk,是什么东西?如何指定啊?
--------------------------
字符集的问题很麻烦,不是那么简单,
1,sun的jvm缺省的字符集是UTF-8
2,system.out.println();这样的函数会做一个默认转化 UTF-8 -> XXX,XXX表示你的local的默认字符集,比如zh_CN默认是GBK
3,在ORACLE中可以用
select * from v$NLS_PARAMETERS
察看你的当前数据库的字符集,别的数据库怎么看你可以自己查查。
比如com.inet.tds.TdsDriver
的设置
jdbc:inetdae:192.168.200.21:1433?database=hr&charset=GBK&user=sa&password=
你就不用担心中文的问题了
像什么string str2=String(str1.getBytes(),"iso-8859-1")之类的多麻烦啊