MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。
今天我写了一个例子,是Java Web 开发实战宝典里的,在JSP页面中通过JDBC连接数据库mysql,并将其中的表数据显示出来。
过程中遇到了一些麻烦:
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn=DriverManager.getConnection(url,user,password);
红红的Error啊,哎。
后来查了一些资料,解决方法如下
1. 下载了mysql-connector-java-5.1.18,这个是JDBC驱动包,将其中的mysql-connector-java-3.1.8-bin.jar复制到
(1)C:\Program Files\Java
(2)C:\Program Files\Java\jdk1.6.0_10\lib
(3) D:\apache-tomcat-6.0.33\apache-tomcat-6.0.33\lib
接着分别配置环境变量,将一些路径加入到classpath中:C:\Program Files\Java\mysql-connector-java-5.1.18.jar;C:\Program Files\Java\jdk1.6.0_10\lib\ mysql-connector-java-5.1.18.jar;
我不知道为什么要这样做,但我确实这样做了,而且之后没有异样...
2. 接着在我的JSP工程中build path,引入外部包,也就是刚才的 mysql-connector-java-5.1.18.jar;
3. 在mysql中创建数据库db_database02,创建表books;
程序代码为:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<table border="1" align="center">
<tr>
<th>书号</th>
<th>书名</th>
<th>作者</th>
<th>出版社</th>
<th>单价</th>
<th>出版日期</th>
</tr>
<%
String diverName="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/db_database02";
String user="root";
String password="";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="SELECT * FROM books";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
%>
<tr>
<td><%=rs.getString("ISBN") %></td>
<td><%=rs.getString("bookname") %></td>
<td><%=rs.getString("writer") %></td>
<td><%=rs.getString("publishing") %></td>
<td><%=rs.getString("price") %></td>
<td><%=rs.getString("date") %></td>
</tr>
<%
}
}catch(Exception ex){
ex.printStackTrace();
}
%>
</table>
</body>
</html>
OK,弄了半天,虽然是基础,但也学到了一些东西,呵呵