首先考虑的肯定是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里面的关联关系及其映射,
看实体类和数据库中表的详细情况.
关于JSP中调用JavaBean实现数据库连接和 *** 作!首先是JavaBean的原程序
//——————————————————————
package
mywebconn
import
java.sql.*
public
class
JDBCrs
{
//
static
final
String
sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"
static
final
String
sConnStr="jdbc:odbc:Driver={MicroSoft
Access
Driver
(*.mdb)}DBQ=D:/myWeb01/WebModule1/test.mdb"
Connection
conn=null
ResultSet
rs=null
public
JDBCrs()
{
try
{
Class.forName(sDBDriver)
}
catch(java.lang.ClassNotFoundException
e)
{
System.err.println(e.getMessage())
}
}
//
the
public
public
ResultSet
executeQuery(String
sql)
{
rs=null
try
{
conn=DriverManager.getConnection(sConnStr)
Statement
stmt=conn.createStatement()
rs=stmt.executeQuery(sql)
}
catch(SQLException
ex){
System.err.println("aq.executeQuery
"+ex.getMessage())
}
return
rs
}
public
void
executeUpdate(String
sql)
{
try
{
conn
=
DriverManager.getConnection(sConnStr)
Statement
stmt
=
conn.createStatement()
stmt.executeUpdate(sql)
conn.close()
}
catch(SQLException
ex)
{
System.err.println("aq.executeUpdate
"+ex.getMessage())
}
}
public
void
close()
{
try
{
if
(!conn.isClosed())
{
conn.close()
}
}
catch
(SQLException
ex)
{
System.err.println("conn.close
"+ex.getMessage())
}
}
}
//——————————————————————
这个JavaBean叫JDBCrs(自己命名)
这个JavaBean是属于mywebconn这个包的(自己定义)
其中有一个叫executeQuery(String
sql)的返回ResultSet对象的方法!
当调用这个方法后,最好要调用close()这个方法关闭连接!
还有一个叫executeUpdate(String
sql)的方法,该方法不返回对象,只执行SQL语句,当执行完后会自动
关闭数据库连接!
String
sDBDriver和String
sConnStr字符串变量要根据实际情况做更改!!
在页面被调用时:
//保证可以使用ResultSet对象
//id
属性是被实例化后的名称
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)