package jp.bcat;
import java.sql.*;
import java.util.Vector;public class DatabaseBookCatalog extends BookCatalog {
Connection connection;
static final String DATABASE_URL = "jdbc:postgresql://127.0.0.1/bcat";
static final String DATABASE_USER = "bcat";
static final String DATABASE_PASSWORD = "secret"; public DatabaseBookCatalog() {
connect();
} protected boolean connect() {
try {
if (connection != null) {
if (connection.getWarnings() == null)
return true;
disconnect();
}
DriverManager.registerDriver(new org.postgresql.Driver());
connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD);
if (connection.getWarnings() == null)
return true;
disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
} protected void disconnect() {
if (connection != null) {
try {
connection.close();
} catch (Exception ex) {
ex.printStackTrace();
}
connection = null;
}
} public Book getBook(String bookId) {
Book book = null;
try {
connect();
PreparedStatement statement = connection.prepareStatement("SELECT * FROM bookcatalog WHERE bookid = ?");
statement.setString(1, bookId);
ResultSet result = statement.executeQuery();
if (result.next())
book = createBook(result);
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return book;
} public Book[] getBooks() {
Book [] bookArray = null;
try {
connect();
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("SELECT * FROM bookcatalog ORDER BY datacreateddate DESC");
bookArray = createBooks(result);
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return bookArray;
} public synchronized Book addBook(Book book) {
try {
connect();
String bookId = book.getBookId();
if (bookId == null || bookId.length() == 0 || getBook(bookId) != null)
bookId = createUniqueBookId();
PreparedStatement statement = connection.prepareStatement("INSERT INTO bookcatalog (bookid,title,author,translator,publisher,publicationdate,code,status,keyword,memo,datacreator,datacreateddate) VALUES (?,?,?,?,?,to_date(?,'YYYY-MM-DD'),?,?,?,?,?,to_timestamp(?,'YYYY-MM-DD HH24:MI:SS'))");
statement.setString(1, bookId);
statement.setString(2, book.getTitle());
statement.setString(3, book.getAuthor());
statement.setString(4, book.getTranslator());
statement.setString(5, book.getPublisher());
statement.setString(6, book.getPublicationDate());
statement.setString(7, book.getCode());
statement.setString(8, book.getStatus());
statement.setString(9, book.getKeyword());
statement.setString(10, book.getMemo());
statement.setString(11, book.getDataCreator());
statement.setString(12, book.getDataCreatedDate());
int result = statement.executeUpdate();
statement.close();
return getBook(bookId);
} catch (SQLException ex) {
ex.printStackTrace();
}
return null;
} public void deleteBook(String bookId) {
try {
connect();
PreparedStatement statement = connection.prepareStatement("DELETE FROM bookcatalog WHERE bookid = ?");
statement.setString(1, bookId);
int result = statement.executeUpdate();
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public Book[] searchBooks(String word) {
Book [] bookArray = null;
try {
connect();
PreparedStatement statement = connection.prepareStatement("SELECT * FROM bookcatalog WHERE bookid LIKE ? OR UPPER(title) LIKE ? OR UPPER(author) LIKE ? OR UPPER(translator) LIKE ? OR UPPER(publisher) LIKE ? OR UPPER(code) LIKE ? OR UPPER(status) LIKE ? OR UPPER(keyword) LIKE ? OR UPPER(memo) LIKE ? OR UPPER(datacreator) LIKE ? ORDER BY datacreateddate DESC");
String pattern = "%" + word.toUpperCase() + "%";
for (int i = 1; i <= 10; i++)
statement.setString(i, pattern);
ResultSet result = statement.executeQuery();
bookArray = createBooks(result);
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return bookArray;
} protected Book createBook(ResultSet result) throws SQLException {
Book book = new Book();
book.setBookId(result.getString("bookid"));
book.setTitle(result.getString("title"));
book.setAuthor(result.getString("author"));
book.setTranslator(result.getString("translator"));
book.setPublicationDate(result.getTimestamp("publicationdate").toString().substring(0,10));
book.setPublisher(result.getString("publisher"));
book.setCode(result.getString("code"));
book.setStatus(result.getString("status"));
book.setKeyword(result.getString("keyword"));
book.setMemo(result.getString("memo"));
book.setDataCreatedDate(result.getTimestamp("datacreateddate").toString().substring(0,16));
book.setDataCreator(result.getString("datacreator"));
return book;
} protected Book [] createBooks(ResultSet result) throws SQLException {
Vector books = new Vector();
while (result.next())
books.add(createBook(result));
Book [] bookArray = new Book[books.size()];
books.toArray(bookArray);
return bookArray;
}
}
上面是写的关于数据库插入和删除的程序,这个程序是一个图书管理的程序,但是从java却不能访问这个数据库。我已经建立好这个数据库了,在用DBviewer也能进行访问,但是程序却无法访问,我这个是一个web程序,当按下inedx.html文件中的图书一览的这个功能的时候出现了一下错误。type 例外报告信息説明 The server encountered an internal error () that prevented it from fulfilling this request.例外 org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/postgresql/Driver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:548)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
原因 javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/postgresql/Driver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.list_jsp._jspService(list_jsp.java:111)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
原因 java.lang.NoClassDefFoundError: org/postgresql/Driver
jp.bcat.DatabaseBookCatalog.connect(DatabaseBookCatalog.java:23)
jp.bcat.DatabaseBookCatalog.<init>(DatabaseBookCatalog.java:13)
jp.bcat.BookCatalog.getInstance(BookCatalog.java:27)
org.apache.jsp.list_jsp._jspService(list_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)恳求高手们的帮助,谢谢大家了。
import java.sql.*;
import java.util.Vector;public class DatabaseBookCatalog extends BookCatalog {
Connection connection;
static final String DATABASE_URL = "jdbc:postgresql://127.0.0.1/bcat";
static final String DATABASE_USER = "bcat";
static final String DATABASE_PASSWORD = "secret"; public DatabaseBookCatalog() {
connect();
} protected boolean connect() {
try {
if (connection != null) {
if (connection.getWarnings() == null)
return true;
disconnect();
}
DriverManager.registerDriver(new org.postgresql.Driver());
connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD);
if (connection.getWarnings() == null)
return true;
disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
} protected void disconnect() {
if (connection != null) {
try {
connection.close();
} catch (Exception ex) {
ex.printStackTrace();
}
connection = null;
}
} public Book getBook(String bookId) {
Book book = null;
try {
connect();
PreparedStatement statement = connection.prepareStatement("SELECT * FROM bookcatalog WHERE bookid = ?");
statement.setString(1, bookId);
ResultSet result = statement.executeQuery();
if (result.next())
book = createBook(result);
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return book;
} public Book[] getBooks() {
Book [] bookArray = null;
try {
connect();
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("SELECT * FROM bookcatalog ORDER BY datacreateddate DESC");
bookArray = createBooks(result);
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return bookArray;
} public synchronized Book addBook(Book book) {
try {
connect();
String bookId = book.getBookId();
if (bookId == null || bookId.length() == 0 || getBook(bookId) != null)
bookId = createUniqueBookId();
PreparedStatement statement = connection.prepareStatement("INSERT INTO bookcatalog (bookid,title,author,translator,publisher,publicationdate,code,status,keyword,memo,datacreator,datacreateddate) VALUES (?,?,?,?,?,to_date(?,'YYYY-MM-DD'),?,?,?,?,?,to_timestamp(?,'YYYY-MM-DD HH24:MI:SS'))");
statement.setString(1, bookId);
statement.setString(2, book.getTitle());
statement.setString(3, book.getAuthor());
statement.setString(4, book.getTranslator());
statement.setString(5, book.getPublisher());
statement.setString(6, book.getPublicationDate());
statement.setString(7, book.getCode());
statement.setString(8, book.getStatus());
statement.setString(9, book.getKeyword());
statement.setString(10, book.getMemo());
statement.setString(11, book.getDataCreator());
statement.setString(12, book.getDataCreatedDate());
int result = statement.executeUpdate();
statement.close();
return getBook(bookId);
} catch (SQLException ex) {
ex.printStackTrace();
}
return null;
} public void deleteBook(String bookId) {
try {
connect();
PreparedStatement statement = connection.prepareStatement("DELETE FROM bookcatalog WHERE bookid = ?");
statement.setString(1, bookId);
int result = statement.executeUpdate();
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public Book[] searchBooks(String word) {
Book [] bookArray = null;
try {
connect();
PreparedStatement statement = connection.prepareStatement("SELECT * FROM bookcatalog WHERE bookid LIKE ? OR UPPER(title) LIKE ? OR UPPER(author) LIKE ? OR UPPER(translator) LIKE ? OR UPPER(publisher) LIKE ? OR UPPER(code) LIKE ? OR UPPER(status) LIKE ? OR UPPER(keyword) LIKE ? OR UPPER(memo) LIKE ? OR UPPER(datacreator) LIKE ? ORDER BY datacreateddate DESC");
String pattern = "%" + word.toUpperCase() + "%";
for (int i = 1; i <= 10; i++)
statement.setString(i, pattern);
ResultSet result = statement.executeQuery();
bookArray = createBooks(result);
statement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return bookArray;
} protected Book createBook(ResultSet result) throws SQLException {
Book book = new Book();
book.setBookId(result.getString("bookid"));
book.setTitle(result.getString("title"));
book.setAuthor(result.getString("author"));
book.setTranslator(result.getString("translator"));
book.setPublicationDate(result.getTimestamp("publicationdate").toString().substring(0,10));
book.setPublisher(result.getString("publisher"));
book.setCode(result.getString("code"));
book.setStatus(result.getString("status"));
book.setKeyword(result.getString("keyword"));
book.setMemo(result.getString("memo"));
book.setDataCreatedDate(result.getTimestamp("datacreateddate").toString().substring(0,16));
book.setDataCreator(result.getString("datacreator"));
return book;
} protected Book [] createBooks(ResultSet result) throws SQLException {
Vector books = new Vector();
while (result.next())
books.add(createBook(result));
Book [] bookArray = new Book[books.size()];
books.toArray(bookArray);
return bookArray;
}
}
上面是写的关于数据库插入和删除的程序,这个程序是一个图书管理的程序,但是从java却不能访问这个数据库。我已经建立好这个数据库了,在用DBviewer也能进行访问,但是程序却无法访问,我这个是一个web程序,当按下inedx.html文件中的图书一览的这个功能的时候出现了一下错误。type 例外报告信息説明 The server encountered an internal error () that prevented it from fulfilling this request.例外 org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/postgresql/Driver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:548)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
原因 javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/postgresql/Driver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.list_jsp._jspService(list_jsp.java:111)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
原因 java.lang.NoClassDefFoundError: org/postgresql/Driver
jp.bcat.DatabaseBookCatalog.connect(DatabaseBookCatalog.java:23)
jp.bcat.DatabaseBookCatalog.<init>(DatabaseBookCatalog.java:13)
jp.bcat.BookCatalog.getInstance(BookCatalog.java:27)
org.apache.jsp.list_jsp._jspService(list_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)恳求高手们的帮助,谢谢大家了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货