java一个类如何获得另一个类中的某个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java一个类如何获得另一个类中的某个值相关的知识,希望对你有一定的参考价值。

比如说我的entity类A,对应的是数据库的表A;另有一个entityB,对应的是数据库的表B。
现在A中的姓名和部门的数据,需要从B中对应的数据取值。
这个要怎么写?
对应的数据库表需要建立外键么

类B:
class B
private String name;
private String department;

累A:
class A
private B b; //b中的部门和名称,实体类b的引用
private String date //其他属性

至于数据库中的两个表a和b要不要简历外键,那要看两个表中有没有关联关系。
参考技术A 一般都是多对一的关系, 或者双向一对一, 通过hibernate映射就可以实现

现在的数据库是以映射为主导的, 所谓的ORM框架就是说映射是主要的, 只要你在程序中配置好了映射, 数据库里不需要设置什么主键, 外键, 联合主键之类的这些东西, 这些都是在映射文件中配置的..

现在的数据库里就是单纯的表, 不需要设置什么主键, 外键之类, 可能和当初我们学习数据库的时候教的不一样, 但是ORM框架这么流行, 也有它合理的地方, 就是映射为主导, 来表现数据库的关系

所以你说的那些, 只要映射文件配置是符合你的意思就可以, 一般来说一个entity中的成员是另一个entity的实例, 应该是多对一的映射关系, 需要在配置文件中进行配置
参考技术B 两个表有关系的话 就建外键吧 也可建 关系弱的话是单向 也可以建双向 annotation配置好像是@onetoone @onetomay @manytomay 如果是manytomay的话最好建立个中间表 还要配置cascade 和mappedbby 属性 具体什么意思自己百度 还有.xml配置文件是差不多的 hibernate文档写的很详细了 参考技术C 你就创建A的实例的时候从B表里面去查数据呗,建不建外键 是看这两个表有没有外键关系吧 而不是看他们有没有联系吧追问

但是A实例中有的数据是在表A的,有几个数据是要从表B查的
那实例A的标注

@Entity
@Table(name="TABLE_A")这里要怎么写

追答

这里又不能进行什么操作了吧。没有外键关系的话,就先查出A,再从B表里面查询出相关数据set到A实例里面去 不然就只能使用类之间的多对多一对多关系了吧

追问

A里面有userId、date等,B里有username、department、以及其他的属性

A的userId和B的username是关联的,B中只有username和department这两个属性要引用到A里去。

可以只在A中声明一个 private B b;然后用B中的username和department的get、set方法么

追答

这两个东西怎么关联起来的

追问

哎?不该关联么,我打算A里的userId就等于B里面的username的。。。

React - 如何将变量分配给另一个组件类中的输入值? [复制]

【中文标题】React - 如何将变量分配给另一个组件类中的输入值? [复制]【英文标题】:React - How do I assign a variable to the input value in another Component's class? [duplicate] 【发布时间】:2019-02-24 04:40:03 【问题描述】:

我目前正在使用 React 创建一个损坏计算器应用程序。我才刚开始,所以请多多包涵。

这是我获取“Atk”输入值的代码。这目前在我的名为“CalculatorItems”的组件中:

class Atk extends Component 
constructor(props) 
    super(props);

    this.state = stats: ''



render() 
    return (
        <div>
            <label>PHY/MAG ATK</label><br/>
            <input  value=this.state.stats
                    onChange=event => this.setState(stats: event.target.value)
                    type="number"
            />
            <br/><br/>
        </div>
    )

现在我创建了一个函数,只要单击“计算损坏”按钮就可以调用该函数。在此函数中,我需要将变量“A”分配给上述“Atk”的输入值。这是在名为“计算器”的父组件中。

const damageCalc = () => 
        let A = (Class Atk's input value).

我的问题是我应该在括号中写什么,以便我可以将变量 A 分配给 Atk 的输入值/状态?行得通吗?

请记住,这是在另一个组件中,因为我需要将该函数应用于 CalculatorButton 的 onClick(CalculatorButton 是另一个子组件)。

【问题讨论】:

stats 状态提升到父级,让子级通过处理函数更新此值。 【参考方案1】:

这种情况下的常见做法是将回调函数从父级传递给子级。 在子元素上单击您触发该方法(从子元素)并将一些值作为参数传递(给父元素) 比你在父级中有回调实现,并且可以对值做任何你想做的事情。

如今,人们使用 Redux 或 Mobx 等状态管理器来处理(原文如此!)组件/应用程序的状态管理。但是正如您所说,您才刚刚开始,可能还有一段时间,直到您将状态管理器实施到您的项目中:)

查看此链接:

Child to parent communication in React (JSX) without flux

【讨论】:

【参考方案2】:

您要么需要将 Atk 中的状态作为 props 传递给另一个组件,要么需要将状态提升到更高的组件,该组件可以将其传递给使用damageCalc 函数的任何组件。如果您选择后者,您会将 onChange 处理程序向下传递给 Atk。

【讨论】:

【参考方案3】:

最常见的方法是给你的子组件添加一个回调属性,这样它就可以通知组件它的数据已经改变了。然后父组件可以用子组件的状态更新its状态。

例如,在您的Atk 组件中:

class Atk extends Component 
  constructor() 
    this.state =  stats: '' 
  

  render() 
    return (
      <div>
        <label>PHY/MAG ATK</label><br/>
        <input  value=this.state.stats
                onChange=event => 
                  const stats = event.target.value;
                  this.setState( stats );
                  this.props.onValueChange(parseInt(stats, 10));
                
                type="number"
        />
        <br/><br/>
      </div>
    )
  

...在父级中:

class DamageCalculator extends Component 
  constructor() 
    super();
    this.state =  atk: null ;
  

  calculateDmg() 
    return this.state.atk * foo; // or whatever the calculation is
  

  render() 
    return (
      <div>
        <Atk onValueChange= atk => this.setState( atk ) />
      </div>
    );
  

【讨论】:

谢谢,有道理。我重新编辑了我的代码,但是现在每当我启动页面时,calculateDmg() 都会运行。我希望它仅在单击计算损坏按钮时运行。我将如何做到这一点? 我建议单独提问,因为它与第一个问题无关。祝你好运!【参考方案4】:

从子组件取回数据在 React 中并不常见。一般来说,我们将状态保存在父节点中,然后让子节点更新它。因此,将 state 属性和处理程序函数发送到您的子组件,然后通过此处理程序进行更新。因此,您的子组件可以是无状态的哑组件。使用此方法,您可以与许多子组件共享此状态。

class App extends React.Component 
  state = 
    stats: "",
  ;

  handleCange = e => this.setState(  stats: e.target.value  );
  damageCalc = () => console.log( this.state.stats );

  render() 
    return (
      <div>
        <Atk onChange=this.handleCange stats=this.state.stats />
        <CalculatorButton onClick=this.damageCalc />
      </div>
    );
  


const Atk = ( props ) => 
  const  stats, onChange  = props;
  return (
    <div>
      <label>PHY/MAG ATK</label><br />
      <input
        value=stats
        onChange=onChange
        type="number"
      />
      <br /><br />
    </div>
  );
;

const CalculatorButton = props => (
  <button onClick=props.onClick>Click</button>
);

ReactDOM.render( <App />, document.getElementById( "root" ) );
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>

【讨论】:

以上是关于java一个类如何获得另一个类中的某个值的主要内容,如果未能解决你的问题,请参考以下文章

PHP技术 获取数据库中某个字段的最大值(int类型)并将获得的最大值与另一个值比较大小

我如何使用从表单中获得的值作为我的 dao 类中的变量?

Java反射机制demo—获得并调用一个类中的方法

Java:使用动作监听器在该类的对象上调用另一个类中的函数

通过引用传递 UIViewController 或在另一个处理程序类中获得自我控制

如何在 python 中的 KMeans 聚类中获得 X 值?