1查看java源码的编码格式是否与数据库的编码格式一致,不一致则改为一致就ok了
查看java源码的编码格式:点击你创建的项目右键----->属性----->Resource---->右侧的text
file
encoding
2使用格式化参数
String
name
=
new
String(tradenamegetBytes("ISO-8859-1"),"UTF-8");
不知道你的描述是否是你真正的需求,我这里提供有两种方法如下:
1你可以在主界面里设置一个轮询线程,定时1秒,或者半秒查询数据库,如果有变化就更新。
2你可以使用Observer模式。可以使用JDK自带的PropertyChangeSupport这一接口来帮助实现Observer模式。
典型的空指针错误inputNumber1,inputNumber2没有初始化。改为:
JTextField inputNumber1 =new JTextField("",10), inputNumber2=new JTextField("",10);
程序如下(已经为你调试通了,还能出现界面):
--------------------------------------------
(省略)
--------------------------------------------
补充回答1:你把窗口往大设置点如下:setSize(700, 800);
----------------------
(省略)
---------------------------------------------
补充回答2:搂主你好贪心阿,一连串的问题问个没完:给jtable设置值可以通过setValueAt
(object,int,int);
如本问题可设置可这样设置置:
在语句table = new JTable(a, name);后面补充:
tablesetValueAt("98",0,0);
tablesetValueAt("82",0,1);
tablesetValueAt("72",0,2);
就可把成绩98,82,72加入,具体从数据库查询出来的值也可以类似加入!!
-------------------------------------------
补充回答3:看来我不回答你你还真不给分,现在我就回答你:我给你用Access连接好了,你在该java目
录下建立Studentmdb数据库,然后建立一张StuMarkMng表(注意这些名字必须和我说的一致)如下:
StuMarkMng (表名)
属性:StuID(学号),StuName(姓名),StuMark(成绩)
填入记录:040450107,冯某,98。
然后直接运行程序,点击查询就可以了。(本程序连接数据库不需要建立数据源)
如果你还是不会的话告诉我你的邮箱地址,我给你直接发过去。我只给你做了个查询,其他你可以类似的
做下去。程序代码给你修改如下:
---------------------------------------------
import javaawt;
import javaawtevent;
import javasql;
class Win extends JFrame
{
JTable table;
Object a[][];
Object name[] = { "学号", "姓名", "成绩" };
JButton sele, upde, inse, dele;
JTextField inputNumber1 =new JTextField("040450107",10), inputNumber2=new JTextField("",10);
int rows = 1;
JPanel p;
LinkAccess linkaccess = new LinkAccess();
ResultSet rs=null;
Win()
{
sele = new JButton("查询");
seleaddActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent avt)
{
try
{
rs=linkaccessQuery("select from StuMarkMng where
StuID='"+inputNumber1getText()trim()+"'");
if(rs!=null)
{
rsnext();
tablesetValueAt(rsgetString("StuID"),0,0);
tablesetValueAt(rsgetString("StuName"),0,1);
tablesetValueAt(rsgetInt("StuMark"),0,2);
}
}
catch(Exception e){eprintStackTrace();}
}
}
);
upde = new JButton("添加");
a = new Object[rows][3];
table = new JTable(a, name);
p = new JPanel();
padd(new JLabel("学号"));
padd(inputNumber1);
padd(sele);
padd(upde);
add(p, BorderLayoutNORTH);
inse = new JButton("修改");
dele = new JButton("删除");
p = new JPanel();
padd(new JLabel("姓名"));
padd(inputNumber2);
padd(inse);
padd(dele);
add(p, BorderLayoutCENTER);
add(new JScrollPane(table), BorderLayoutSOUTH);
setSize(700, 800);
setVisible(true);
validate();
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
}
}
public class Student
{
public static void main(String args[])
{
Win win = new Win();
}
}
//数据库连接
//----------------------------------------------------------------------------------
class LinkAccess
{
String conStr;
Connection con;
ResultSet rs;
Statement stm;
public LinkAccess()
{
conStr="jdbc:odbc:driver={MicroSoft Access Driver (mdb)};DBQ=Studentmdb";
//String sConnStr = "jdbc:odbc:driver={MicroSoft Access Driver
(mdb)};DBQ=testmdb";
try
{
ClassforName("sunjdbcodbcJdbcOdbcDriver");
con=DriverManagergetConnection(conStr,"sa","sa");
stm=concreateStatement();
}
catch(SQLException e){eprintStackTrace();}
catch(ClassNotFoundException e){eprintStackTrace();}
}
//查询数据库方法
public ResultSet Query(String sql)
{
String sb = new String("");
try
{
rs=stmexecuteQuery(sql);
}
catch(Exception e){eprintStackTrace();}
Systemoutprintln("出据库查询完毕!");
return rs;
}
//更改数据库 *** 作
public void updateData(String sql)
{
Systemoutprintln(sql);
try{stmexecuteUpdate(sql);}catch(Exception e){eprintStackTrace();}
}
}
//----------------------------------
打成JAR后,你的驱动jar 用eclipse是打包不进去的你可以把你的驱动包解压缩,然后双击你自己打的jar,点添加,把解压缩出来的一个文件添加到你的jar包中去 另外一个方法,把你的jar包和驱动包放在同一个目录下应该可以跑
以上就是关于java Swing 向数据库传参数出现乱码怎么办全部的内容,包括:java Swing 向数据库传参数出现乱码怎么办、java swing通过数据库 *** 作从一个子界面向主界面的Jtabel添加数据怎么立即自动更新且不 *** 作主界面、高分求助JAVA高手等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)