首先考虑的肯定是BEAN实体类,也就是面向对象编程,面向对象 *** 作数据库了.
但是考虑到关联关系的时候,情况就复杂些了.
比如一对多的情况:
拿博客系统来说吧
一篇文章BLOG,肯定有一个BLOGID,这个BLOGID肯定是唯一的
BLOG(BLOGID,USERID,TITLE,CONTENT,MSGS)(博客ID,用户ID,标题,内容,评论)
现在有人对这个BLOG进行评论
评论MSG(MSGID,USERID,BLOG,MESSAGE)(评论ID,用户ID,博客,评论内容)
这有两个实体类,BLOG和MSG是一对多双向关联关系.
也就是说,根据这个BLOG可以知道这个BLOG下面所有的评论.
而某个MSG,肯定是对某一个BLOG进行评论的.
BLOG里面保存着评论的信息MSGS,MSGS肯定是个集合.
其中MSG里面保存着BLOG的信息.
实体类大概是上面那样.
下面就要建立关联关系的映射了.
一对多的关联关系的映射,主要体现在多的这一端,而多的这一端在数据库中体现就是外键.
也就是说,BLOG类中的MSGS是帖MSG来决定的,而数据库中,BLOG表肯定是没有MSG的任何字段信息.
但是MSG中肯定有BLOG实体类BLOGID.
有时候多个表也可以设计成一个BEAN.看情况设计喽.
建立楼主去研究下HIBERNATE里面的关联关系及其映射,
看实体类和数据库中表的详细情况.
数据库代码当然要重新封装在一个类中,只有这样你才能共用。比如class DB{
static public void connect() throws SQLException{
//这里连接采用静态方法,应该是危险的,因为static只产生一块内存地址属于共用的,会产生你想访问你已经关闭的数据库连接,也就是说你会遇到无法建立连接的问题。
//另外你的返回类型应该是 Connection,不能为空,否则你得不到返回链接值呀。
.....................你的代码。
}
}
调用的时候要在实现类中实例化这个类:DB db=new DB()然后db.connect() .
实际应用中即在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的 *** 作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只要像平时 *** 作对象一样 *** 作它就可以了。ORM框架就是用于实现ORM技术的程序。常见的ORM框架有:Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等。
Java中ORM的原理: 先说ORM的实现原理,其实,要实现JavaBean的属性到数据库表的字段的映射,任何ORM框架不外乎是读某个配置文件把JavaBean的属 性和数据库表的字段自动关联起来,当从数据库Query时,自动把字段的值塞进JavaBean的对应属性里,当做INSERT或UPDATE时,自动把 JavaBean的属性值绑定到SQL语句中。
一个简单的映射例子(hibernate),我们定义User对象和数据库中user表之间的关联,user表中只有两列:id和name:
<hibernate-mapping><class name=sample.orm.hibernate.User table=user catalog=test><id name=userID type=java.lang.Integer><column name=id /><generator class=assigned /></id><property name=userName type=java.lang.String><column name=name /></property></class></hibernate-mapping>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)