很多数据库系统带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等等 *** 作。Sun公司还开发了JDBC-ODBC bridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。下面介绍如何用Access实现一个动态FAQ(常见问题及答案)网站。首先建立一个Access数据库faqmdb,其中的表faqs有字段id(自动增量型,并设为主关键字)、subject(文字型,长度200)、answers(备注型)。这个表中可以存放一些编程知识的常见问题及答案, 然后,在Control Panel(控制面板)的ODBC Datasource模块中加入System DSN,取名faq,并指向faqmdb。 创建一个JavaBean,名为faqjava,并保存在jswdk-101webpagesWEB-INFjspeans est目录下。faqjava 的内容如下:
请问下是什么结构?用jdbc连接的话:
public class DBUtil {
private static String user;
private static String password;
private static String url;
static{
Properties prop=new Properties();
try {
ClassLoader classLoader=DBUtilclassgetClassLoader();
InputStream is=classLoadergetResourceAsStream("dbproperties");
propload(is);
user=propgetProperty("user");
password=propgetProperty("password");
url=propgetProperty("url");
ClassforName("commysqljdbcDriver");
} catch (Exception e) {
eprintStackTrace();
throw new RuntimeException("找不到加载类");
}
}
public static Connection getConnection()throws Exception{
Connection conn=null;
conn=DriverManagergetConnection(url,user,password);
return conn;
}
public static void close(Connection conn){
if(conn!=null){
try {
connclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
}
public static void main(String[] args)throws Exception {
Systemoutprintln(DBUtilgetConnection());
}
}
如果是用SSH架构的话,用hibernate里面去配置就OK了!
你这应该是一个用户注册程序吧。
首先确定一下你的程序逻辑:
当用户提交注册信息时首先使用CheckUser(userBean set)来判断要注册的用户是否已存在,如果不存在则接着调用Insert(userBean set )将用户注册信息保存到数据库中。如果你程序是按这个逻辑不处理的话自然的,这个程序会报如上错误。
原因:
当执行CheckUser(userBean set)后,程序会将数据库连接关闭,而当程序接着执行下面的Insert(userBean set )时,会因为之前奖数据库连接关闭而无法完成数据库 *** 作。
解决办法有二:
1、将CheckUser(userBean set)方法里的connclose(); 去掉;
2、你这里将获得连接资源的代码放在构造函数里,它只调用一次。因此你可以将数据连接代码使用一个新的方法来封装,每一个用到数据库连接的方法单独调用该方法。
如:
public Connection getConnection(){
try {
ClassforName("commicrosoftjdbcsqlserverSQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
try {
thisconn = DriverManager
getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;databasename=Web_Test","sa","sa");
} catch (SQLException e) {
// TODO 自动生成 catch 块//
eprintStackTrace();
}
return thisconn
}
这样你在方法里可通过下面的方法获取连接。
conn = getConnection();
因此你的CheckUser(userBean set)可改成如下:
public boolean CheckUser(userBean set){
try {
conn = getConnection(); //这里是给你修改的
pstm = connprepareStatement("select userPWD from userInfo where userName= ");
pstmsetString(1,setgetUserName());
rs = pstmexecuteQuery();
if (rsnext()) {
if (rsgetString(1)equals(setgetUserPassword())){
return true;
}
}
connclose();
pstmclose();
rsclose();
} catch (SQLException e) {
// TODO 自动生成 catch 块
eprintStackTrace();
}
return false;
}
其它方法也是一样。
以上就是关于如何在JSP中进行数据库连接全部的内容,包括:如何在JSP中进行数据库连接、jsp系统怎么连接数据库、jsp数据库连接问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)