[每天进步一点点] - Java/JSP连接MySQL数据库篇[2012.12.17]

    之前想到我应该有一个这样的东西,能让我积累每天学到的一些小技巧或者收获的经验,帮助自己总结,也帮助别人解决棘手的问题。有段时间没有更新博客了,于是,从现在开始吧。每天都写应该比较困难,现在暂时按月来整理。初来驾到,还望大家指出错误,提出更好的解决办法。欢迎拍砖~

    1. 使用Java连接MySQL数据库时,需要把MySQL提供的驱动程序jar包放到“%JAVA_HOME%\lib“中,然后再在环境变量里的classpath加入这一条“%JAVA_HOME%\lib\mysql-connector-java-5.0.3-bin.jar”。(我使用的是“mysql-connector-java-5.0.3-bin.jar”)
    在命令行下面使用是这样子的,如果用Eclipse等开发环境,那么直接引入外部jar包到项目中就好了。
    如果没有进行这样的配置,javac编译可以通过,但是java运行的时候会报出"java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"的异常

    2. 使用Java连接MySQL数据库的简易代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnector{
	/**
	* 连接MySQL数据库的方法
	*/
	public static Connection getMySQLConnection(){
		Connection con = null;
		try{
			Class.forName( "com.mysql.jdbc.Driver" );
			con = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root&password=" );
		}catch( SQLException e ){
			e.printStackTrace();
		}catch( ClassNotFoundException e ){
			e.printStackTrace();
		}

		return con;
	}

	public static void main( String[] args ){
		Connection con = null;
		con = DBConnector.getMySQLConnection();
		if( con != null ){
			System.out.println( "MySQL 数据库连接成功!" );
		}else{
			System.out.println( "MySQL 数据库连接失败!" );
		}
	}
}


    3. 用Java连接MySQL数据库成功后,改用JSP来尝试,同样的代码但是却失败了。找了好久都没搞明白,一直是“DriverManager.getConnection()”返回的是空引用,然后使用Connection实例的时候,报出使用了空引用的错误。但是没有搞明白为什么Class.forName()的时候为什么没有报错,因为这个时候没有把Jar包导入Tomcat的lib文件夹。
    后来发现是Tomcat的lib文件夹里没有“mysql-connector-java-5.0.3-bin.jar”导致的,于是将jar文件放入lib目录,重新打开页面,还是提示连接失败。然后,本来就要找到原因的,但是又把注意力给转移了,再想是不是数据库的问题,好吧,又折腾了好长一些时间。
    最后发现是把Jar包放入lib目录后没有重启Tomcat,再试一下,成功了。

    4. 在使用浏览器调试JSP的时候,刚开始的时候经常会因为页面缓存导致一错误的判断,本来这次的结果应该是对的,但是因为页面缓存,导致显示的还是上次错误的信息,然后一时心急没有想太多,又把分析方向给转到其他地方去了。我习惯的做法是,复制一下地址,然后关掉页面,重新打开。不知道大家有没有更好的办法。

    5. JSP连接MySQL数据库的简单代码

<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.sql.*" %>
<%
	Connection myCon = null;
	try{
		Class.forName( "com.mysql.jdbc.Driver" );
		myCon = DriverManager.getConnection( "jdbc:mysql://localhost/mysql?user=root&password=" );
	}catch( SQLException e ){
		e.printStackTrace();
	}catch( ClassNotFoundException e ){
		e.printStackTrace();
	}
	if( myCon != null ){
		out.println( "MySQL 数据库连接成功!<br />" );
	}else{
		out.println( "MySQL 数据库连接失败!<br />" );
	}
	myCon.close();
%>

PS:这是几天前的事情了,到今天才整理。-.-

你可能感兴趣的:(tomcat,mysql数据库,Java连接数据库,JSP连接数据库)