发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

我快颠了,找不出问题所在,请大侠们求救!!!

2004-06-15 15:33
赞助商链接

本人用的是Jbuilder9,最近我在做一个系统,就差密码那部分就OK了.情况是这样的:
问题一:
其他部分的数据插入,查询,更新,删除,连接等我都是用Jbuilder来帮我完成的,Jbuilder9都有相应的组件.当然啦,组件jdbNavToolBar这个组件已经具有数据插入,查询,更新,删除的功能了,数据连接是用database来实现的.问题就在于,我想分别做"插入,查询,更新,删除"这四个按钮来实现数据的操作就不懂如何做了(当然,组件jdbNavToolBar有这个功能).不知道有没有大侠会用Jbuilder9来做这方面的按钮事件?3
问题二:(补充java环境: Jbuilder9,j2sdk1.4.2_04,SQL Server 7.0数据库系统)
(提示:以下是一个成功添加的事件)我打算自己写事件程序.我做了一个"添加产品"的页面,里面有:"名称,负责人,所属部门,单位,单价,描述"6个label和6个jTextField.以下是"添加按钮"程序代码:
void jButtonadd_actionPerformed(ActionEvent e) {
String strSQL;
String name;
String principal;
String depart;
String unit;
String unitprice;
String comment;

//判断是否产品为空
if (jTextFieldname.getText().trim().equals(""))
{JOptionPane.showMessageDialog(null,"产品名称不可为空,请确认!") ;
return;
}
if (jTextFieldperson.getText() .trim() .equals("") )
{JOptionPane.showMessageDialog(null,"负责人不可为空,请确认!") ;
return;
}
if (jTextFielddep.getText() .trim() .equals("") )
{JOptionPane.showMessageDialog(null,"产品所属部门不可为空,请确认!") ;
return;
}
//生成sql语句
name=jTextFieldname.getText().trim() ;
principal=jTextFieldperson.getText() .trim() ;
depart=jTextFielddep.getText() .trim() ;
unit=jTextFieldcompany.getText() .trim() ;
unitprice=jTextFieldprice.getText().trim() ;
comment=jTextFieldcomment.getText() .trim() ;
strSQL="insert into ProductInfo(Name,Principal,Depart,Unit,Unitprice,Comment) values ('";
strSQL=strSQL+name +"','";
strSQL=strSQL+principal +"','";
strSQL=strSQL+depart+"','";
strSQL=strSQL+unit

+"','";
strSQL=strSQL+unitprice +"','";
strSQL=strSQL+comment +"'";
strSQL=strSQL+")";
//执行数据库语句
if (db.executeSql(strSQL))
{JOptionPane.showMessageDialog(null,"添加成功") ;}
else
{JOptionPane.showMessageDialog(null,"添加失败,请重新添加") ;}
}


以上的db.executeSql(strSQL)是DBManager类的一个实例,是用来连接数据库用的.以下是DBManager类的程序代码:
package productmanager;
//;引入sql包
import java.sql.*;
import com.borland.dx.sql.dataset.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004.6.7</p>
* <p>Company: </p>
* @author:黄健桓
* @version 1.0
*/
//数据库操作类
public class DBManager {
//定义数据集
ResultSet rs;
//创建指定的数据库URL
String url = "jdbc:datadirect:sqlserver://202.129.21.125:1433;DataBaseName=productsystem ";
String username = "sa";
String password = "";

//缺省构造方法
public DBManager() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//查询方法,返回查询结果集
public ResultSet getResult(String sql) {
try {
//加载驱动程序
Class.forName("com.ddtek.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sql);
return rs;
}
//异常处理
catch (Exception e) {
System.out.println("getResult-----" + e.toString());
return null;
}
}
public boolean executeSql(String sql) {
try {
Class.forName("com.ddtek.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(url,username,password) ;
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
conn.commit() ;
return true;
}
catch (Exception e) {
System.out.println("executeSql------"+e.toString() );
return false;
}
}
private void jbInit() throws Exception {
}
}


好了,以上这些都是可以成功执行添加操作的代码,这"问题二"我写了以上这些都是做为铺垫用的,以下才是我的问题所在.(这里主要说明了我的代码没有错,包括数据库连接类也没错.)言归正传:前面我说我就差做用户密码登陆,修改,删除这方面的操作.恩,对于这个问题我是这么想的:"只要DBManager可以完成数据库连接,然后我做了表'Userinfo'----是用来保存用户信息的,里面有Username,Password,Power这三个字段,这里就做好了事件的准备工夫了.
以下是我要添加用户的程序代码,如下:
void jButtonOK_actionPerformed(ActionEvent e) {
String strSQL;
String name;
String pass;
String power;
name=jTextFieldUserLogin.getText().trim() ;
pass=jPassword.getText().trim() ;
power=jComboBoxpower.getSelectedItem().toString().trim();
strSQL="insert into productuser(Username,Password) values ('";
strSQL=strSQL+name +"','";
strSQL=strSQL+pass +"','";
strSQL=strSQL+power +"','";
strSQL=strSQL+")";

if (db.executeSql(strSQL))
{JOptionPane.showMessageDialog(null,"添加成功") ;}
else
{JOptionPane.showMessageDialog(null,"添加失败,请重新添加") ;}

}

}



以上这段代码在Jbuiler9中没有红色画线提示有错,在编译中也可以顺利编译(以上可能我有打错的地方,可能是我在这打错,请谅解!我的程序是可以正常编译的).在我测试是否能添加用户时:就老是弹出"添加失败,请重新添加"提示框(那是我写的提示框-----"{JOptionPane.showMessageDialog(null,"添加失败,请重新添加" "看到吧?是我写的.这段程序代码我检查过N遍了,甚至后来我是copy前面添加产品的代码的,只是修改insert到Userinfo表中,修改了所插入的字段而已.可为什么就是插入不了数据,就连我后面做Update数据的事件一出现一些问题(就是有的代码的功能可用,测试编译程序时:有一些不能用,有一些有没有用.可是这些都是应该可以正常执行才对呀!!!???我百思不得其解,这已经折磨我到现在好几天了,公司又催我交货,救命呀!!我实在受不了了,公司也只有我一个人用java的,问又没人问,本人又是菜鸟级的,只好把希望寄托在这里了,请各位大侠一定一定得帮帮小弟!!
My E-mail:hjh303cn2003@163.net
或者在这里回复也好.
谢了!




2004-06-19 15:44

如果你是在学习J2EE,我倒是可以尝试帮助你。

发现你用GUI直接调用JDBC这样类似两层结构的东西来做系统,我只能袖手旁观。这么痛苦,不如用Deplhi或VB做,何必一定要顶着Java的明目呢?

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com