一、java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常解决方法
- 由于在web项目中配置数据库和配置一般项目的数据库是不同的,所以导致一直是抛出异常或者是驱动异常。
- 一般项目的数据库配置的位置如下图:
如果在web项目中使用这样的配置是不行的。 - web项目中的数据库配置
1.找到自己的数据库驱动,我的是如下图:
2.将如上图的驱动复制,然后在粘贴到Tomcat的 lib 文件目录下,如下图:
这样web项目的数据库配置结束了,下边是两种jsp连接数据库并显示的样例。
二、介绍jsp两种连接数据库的例子(前提是有创建的数据库和表)
(1)使用类的形式连接到数据库
- 创建一个类
package com.ll;
public class Furniture {
private int id;
private String name;
private int price;
private int num;
private String dates;
private String style;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getDates() {
return dates;
}
public void setDates(String dates) {
this.dates = dates;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
}
- 创建dao层连接数据库
package dao;
import com.Furniture;
import java.sql.*;
import java.util.ArrayList;
public class FurnitureDao {
public ArrayList queryAllFurniture() throws Exception {
//实现数据库的访问
Connection connection=null;
ArrayList fu=new ArrayList();
//创建连接
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
System.out.println("1111驱动异常1111");
e.printStackTrace();
}
//加载驱动
String conStr="jdbc:mysql://localhost:3306/java12?characterEncoding=utf8&useSSL=false; DatabaseName=java12";
//配置连接字符串
String user="root";
//配置用户名
String password="root";
//配置用户的访问密码
connection= DriverManager.getConnection(conStr,user,password);
//创建数据库连接对象
//查询语句
String sql = "select * from furnitures; ";
Statement statement=connection.createStatement();
//返回结果集
ResultSet resultSet=statement.executeQuery(sql);
while(resultSet.next())
{
Furniture furniture= new Furniture();
furniture.setId(resultSet.getInt(1));
furniture.setName(resultSet.getString(2));
furniture.setPrice(resultSet.getInt(3));
furniture.setNum(resultSet.getInt(4));
furniture.setDates(resultSet.getString(5));
furniture.setStyle(resultSet.getString(6));
fu.add(furniture);
}
resultSet.close();
statement.close();
connection.close();
return fu;
}
}
- 重写index.jsp
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@page import="dao.FurnitureDao" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.Furniture" %>
<%@ page import="com.Furniture" %>
<html>
<head>
<title>数据库连接显示界面</title>
<style type="text/css">
#body {
background-color: #FFD2BD;
}
</style>
</head>
<body id="body">
<h1>家具信息如下图所示:</h1>
<%
FurnitureDao furnDao = new FurnitureDao();
ArrayList furn = furnDao.queryAllFurniture();
%>
<table border="1">
<tr>
<td>编号</td>
<td>名称</td>
<td>价格</td>
<td>数量</td>
<td>日期</td>
<td>风格</td>
</tr>
<%
for(int i=0;i<furn.size();i++) {
Furniture f1 = (Furniture) furn.get(i);
%>
<tr>
<td><%=f1.getId()%></td>
<td><%=f1.getName()%></td>
<td><%=f1.getPrice()%></td>
<td><%=f1.getNum()%></td>
<td><%=f1.getDates()%></td>
<td><%=f1.getStyle()%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
</body>
</html>
- 页面显示
(2)直接在index.jsp文件中连接数据库
- 在jsp文件中直接连接数据库并且显示在页面上,文件可以写成下边这种形式:
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>我的JSP index1.jsp开始页面</title>
</head>
<body>
<%
String drvStr="com.mysql.jdbc.Driver";
String dataStr="jdbc:mysql://localhost:3306/java12?characterEncoding=utf8&useSSL=false; DatabaseName=java12";
String usernameStr="root";
String passwordStr="root";
String sqlStr="select * from furnitures";
Connection conn=null;
Statement stat=null;
try{
Class.forName(drvStr);
conn=DriverManager.getConnection(dataStr,usernameStr,passwordStr);
stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sqlStr);
while(rs.next()){
int rID=rs.getInt(1);
String rUserName=rs.getString(2);
int rPassWord=rs.getInt(3);
out.print("ID:"+rID+" 名称:"+rUserName+" 价格:"+rPassWord+"<br>");
}
}catch(Exception e){
out.print("读取失败");
e.printStackTrace();
}finally{
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
}
%>
</body>
</html>
- 页面显示如下: