A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡卿 中级黑马   /  2012-6-11 21:57  /  1447 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 胡卿 于 2012-6-11 21:58 编辑
  1. /*
  2. 需求:数据库的操作
  3. 1.连接数据库  JBDC Hibernate
  4. 2.操作数据库  create upate delete
  5. 3.关闭数据库连接
  6. */
  7. class User
  8. {
  9.    public void InfoOperate(UserInfoDao ui)
  10.    {
  11.        ui.add(user);
  12.        ui.delete(user);
  13.    }
  14. }
  15. interface UserInfoDao//Dao:data access object
  16. {
  17.      public void add(User user);
  18.      public void delete(User user);
  19. }

  20. class UserInfoJBDC implements UserInfoDao
  21. {
  22.     public void add(User user)
  23.     {
  24.         //1.连接数据库   2. 使用sql添加语句添加数据  3.关闭连接
  25.         System.out.println("JBDC add data");
  26.     }
  27.    
  28.     public void delete(User user)
  29.     {
  30.         //1.连接数据库   2. 使用sql添加语句删除数据  3.关闭连接
  31.         System.out.println("JBDC delete data");
  32.     }
  33. }
  34. class UserInfoHibernate implements UserInfoDao
  35. {
  36.     public void add(User user)
  37.     {
  38.         //1.Hibernate连接数据库   2. 使用sql添加语句添加数据  3.关闭连接
  39.         System.out.println("Hibernate add data");
  40.     }
  41.    
  42.     public void delete(User user)
  43.     {
  44.         //1.Hibernate连接数据库   2. 使用sql添加语句删除数据  3.关闭连接
  45.         System.out.println("Hibernate delete data");
  46.     }
  47. }
  48. class DBoperate
  49. {
  50.      public static void main(String[] args)
  51.      {
  52.      User  u= new User();
  53.      u.InfoOperate(new UserInfoJBDC());
  54.      
  55.      }
  56. }
复制代码
DuoTai2.java:11: 找不到符号
符号: 变量 user
位置: 类 User
       ui.add(user);
              ^
DuoTai2.java:12: 找不到符号
符号: 变量 user
位置: 类 User
       ui.delete(user);

这问题怎么解决
找不到变量,但是我真的不知道该怎么把这个变量定义进去

3 个回复

倒序浏览
个人觉得你那个User类里面添加或者删除一个User对象不太合适,为什么不做一个UserManger类呢??在UserManager类中保存一个User对象,那么在里面做增、删、改、查逻辑也很清晰。。如果非要这样做,那你可以ui.add(user)里面写上this不知道行不行。当然这样做也不太好的,看着都会觉得挺变扭的!!
回复 使用道具 举报
本帖最后由 杨天皓 于 2012-6-11 23:37 编辑

我也觉的楼主这个代码的思路有点混乱。

你的增删改查怎么能全部放在User类的一个方法里面,难道你增加了用户就马上把他删了?
首先一个javaBean存User的属性
然后一个UserOperateImpl实现UserOperate里面有增删改查并要将User传递进去,然后每一增删改查的方法里面,再调用UserInfoDaoImpl实现UserInfoDao.
你在主函数里面调用增删改查的时候,在把User传进去

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
/*
需求:数据库的操作
1.连接数据库  JBDC Hibernate
2.操作数据库  create upate delete
3.关闭数据库连接
*/
class User
{
   public void InfoOperate(UserInfoDao ui)
   {
       ui.add();
       ui.delete();
   }
}
interface UserInfoDao//Dao:data access object
{
     public void add();
     public void delete();//这里面你没有必要再给它进行传参了,因为在主函数中 User  u= new User();
                                                                        //已经告诉你了是user在操作数据库了,你就不用在函数中传user了,不符合逻辑
                                                                //把这两个函数定义成空参数类型,这样就可以了
                                                                //然后把下面的代码全部定义成空参

}

class UserInfoJBDC implements UserInfoDao
{
    public void add()
    {
        //1.连接数据库   2. 使用sql添加语句添加数据  3.关闭连接
        System.out.println("JBDC add data");
    }
   
    public void delete()
    {
        //1.连接数据库   2. 使用sql添加语句删除数据  3.关闭连接
        System.out.println("JBDC delete data");
    }
}
class UserInfoHibernate implements UserInfoDao
{
    public void add()
    {
        //1.Hibernate连接数据库   2. 使用sql添加语句添加数据  3.关闭连接
        System.out.println("Hibernate add data");
    }
   
    public void delete()
    {
        //1.Hibernate连接数据库   2. 使用sql添加语句删除数据  3.关闭连接
        System.out.println("Hibernate delete data");
    }
}
class Test9
{
     public static void main(String[] args)
     {
     User  u= new User();
     u.InfoOperate(new UserInfoJBDC());
     
     }
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马