java中,如图所示,在一个类中定义了一个Category(一个对象)的变量,如何在后台获取这个对象的值呢

如题所述

可以在类里面加上get和set方法,get方法是给你来获取值的,set方法是给对象赋值的
举例
public class Flower {
private Integer fid;
private String fname;
private double fprice;

public Flower(){

}
public Flower(Integer fid,String fname,double fprice){
this.fid=fid;
this.fname=fname;
this.fprice=fprice;
}
public Integer getFid() {
return fid;
}
public void setFid(Integer fid) {
this.fid = fid;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public double getFprice() {
return fprice;
}
public void setFprice(double fprice) {
this.fprice = fprice;
}

public static void main(String[] args) {
Flower f1=new Flower();//创建一个对象,调用的是无参的构造函数,这时对象是空的,即没值
f1.setFid(1001);//通过set方法赋值
f1.setFname("水仙");
f1.setFprice(100);
System.out.println(f1.getFname());//通过get方法取值

Flower f2 = new Flower(1002,"玫瑰",200);//调用有参构造函数,直接赋值
System.out.println(f2.getFname());//通过get方法取值
}
}追问

在Flower类中我有写get,set方法的,public Category getFcategory() {return fcategory;},然后在后台用String fcategory = req.getParameter("fcategory");获取jsp页面中的值,这样获得的值是字符串,可是若要flower.setFcategory()将值存入数据库时,需是一个Category对象,该怎么把这个值封装进去呢?

追答

Category为什么要单独定义成一个类?里面有哪些属性?数据库里有哪些字段
既然是类型,可以直接在flower里定义成 String类型啊

追问

是可以在flower类中定义成string类型,可以用category一个categoryname属性来代替,但是从面向对象的角度来说,定义成Category比较好,而且应该可以实现的

追答

你数据库里怎么把一个对象存储到字段里?你的Flower类对应的表里关于种类的是哪一个字段?
是categoryname吗?是char类型的吗

追问

不是categoryname,应该是categoryid,我是用hibernate自动生成数据库表的,通过多对一关联

追答

String fcategory = req.getParameter("fcategory");这个fcategory 是一个Category对象?

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-22
数据库操作也是从对象中取出数据来单个操作的,我看你追问的问题好像是要做一个从JSP到数据库的操作,举个简单的例子,普通的登陆验证,一般填写用户名和密码,JSP上的form有username,password两个字段,你在你的doPost方法中中通过
String username = request.getParameter("username");
String password = request.getParameter("password");
来获取了页面的输入,再通过setter方法注入到一个User对象中
UserBean bean = new UserBean();
bean.setUserName(username);
bean.setPassword(password);
再将这个bean对象传递给数据库操作类UserDao进行登陆判断
UserDao dao = new UserDao();
dao.login(bean);
在UserDao里面的操作实际上还是通过getter方法来取出bean里面的值进行验证:
String sql = "select count(1) from t_user where username = '"+bean.getUserName()+"' and password = '"+bean.getPassword()+"' and status = 1";追问

在dao中

第2个回答  2012-03-22
改类中有getFcategory()方法吧,Flower f = new Flower();
f.getFcategory();就可以了,获取Category具体的属性值,接着get,即f.getFcategory().get....;追问

flower.setFcategory(flower.getFcategory().getCaname(fcategory));这样写会报错

追答

getCaname(),这个返回的不是Category对象啊,当然不行啊。
flower.setFcategory(fcategory);你只能这样set;

第3个回答  2012-03-22
在类中写get。。set。。方法,通过对象的get方法,获得Category对象,Category对象里应该有值,

JAVA异常问题
有一个Logger称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(String name)方法。 Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Append...

求帮忙制作一个JAVA HTMLParser Extractor解析器类 从HTML中提取所需要...
正则表达式:《(?<bookName>[\\w\\W]+?)》[\\w\\W]+?作 者[\\w\\W]+?name="__infodetail_pub" target="_blank" class="c_green">(?<作者>[\\w\\W]+?) 主编[\\w\\W]+?出 版 社[\\w\\W]+?name="__infodetail_pub" target="_blank" class="c_green"> (?<出版社>[\\w\\W]...

请问一个asp,net的问题?
在这里,我们正好用到了Web.Config配置文件中的NorthwindConnectionString项,它存储了我们定义的一个连接字符串,在类OleDb中,方法GetConnSring使用ConfigurationManager类将Web.Config配置文件中的值取出,ConfigurationManager类则是.NET公开所的,提供给程序员的Web.Config文件操作类,在.NET类库中包含了很多实现类似功能的类,...

“java”中什么是全局变量?
其实在java中是没有真正的全局变量的,因为一个java程序其实就是由多个类方法堆积起来的,而每个类、方法中的变量实际上都是属于它自己的“全局变量”,相对于其他类、方法来说这些变量就成了局部变量(因为他们可能不能调用)。简单的说就是在针对一个main方法中,所有的类方法都能调用的变量,就是全...

java面试题大全带答案(java面试题精选)
答案:内部类是指在一个外部类的内部再定义一个类,内部类对外部类有访问权限,可以访问类中定义的所有变量和方法。子类是从父类(superclass)中继承的类,子类可以访问父类所有public和protected的字段和方法。 Q2:静态方法和静态变量的目的是什么? 答案:静态变量被类的所有实例共用,静态类只能访问类的静态变量,或调用...

jdk内有哪些约定俗成的命名规则和规范
1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。 2) 应用内共享常量:放置在一方库的 modules 中的 constant 目录下。 反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示“是”的变量: 类A 中:public static final String YES = "yes"; ...

实例变量与类变量的区别
其它对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;1、实例变量:定义在类中但在任何方法之外,实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效;2、类变量:在java中,类的实例变量和静态变量称为类属变量或数据域。

java面试题目(java面试题大全及答案)
1.java异常机制的原理与应用\\x0d\\x0a答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。\\x0d\\x0a实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型...

如何在Android中启动JAVA程序
二、在shell控制台通过am命令发送Intent来启动Android应用程序 在Android的shell控制台通过am命令发送Intent来启动Android应用程序 关于此的详细内容请参考《Android命令am详解》三、在shell控制台直接通过davlikvm命令启动一个JAVA程序。该方式有个天生的缺点,即在其中,很多Android的JNI无法调用。因为Android的...

ThreadLocal那些不为人知的细节
首先是set方法,我们在使用ThreadLocal的时候,肯定是先存然后再取,所以我们先看看他是怎么存的。 首先调用getMap方法获取当前线程所保存的ThreadLocalMapThreadLocalMap getMap(Thread t) {return t.threadLocals;} 这个刚刚说过,Thread类里保存了一个ThreadLocalMap的变量 如果为空先进行初始化void createMap(Thread ...

相似回答