Java连接MySQL的经验总结

来源:互联网 发布:易企秀 for mac 编辑:程序博客网 时间:2024/06/06 07:30

今天开始在一台新的服务器上配置能连接数据库的Java程序,这里选择连接MySQL。这篇日志里,将记录一些经验和自己的疑问。

感兴趣的朋友,可以结合参考我之前的一篇博客,一起来学习一下。

首先,还是在:http://www.mysql.com/downloads/mysql/ 下载MySQL安装程序。按照之前博客总结的简单步骤,安装好MySQL的最新版本后(我这里是5.5.16),还是选择Navicat作为可视化管理工具(我也没有仔细调研过其他可视化管理方法,这个工具我拥有的破解版本也比较老)。(上述过程也请到我之前的一篇博客参考)。

其次,下载MySQL的官方JDBC连接器。点击 http://dev.mysql.com/downloads/connector/j/ 进行下载。(我这里下载的版本是Connector/J 5.1.18)

下载后解压到某一位置,然后将mysql-connector-java-5.1.18-bin.jar的位置加入到环境变量CLASSPATH中,对于如何不重启系统而使环境变量生效,可参考我之前的一篇博客。

依照我之前的习惯,会新建一个数据库连接类(例如命名为DBConnection.java)

import java.sql.*;public class DBConnection {private Connection con;public DBConnection(){String CLASSFORNAME ="com.mysql.jdbc.Driver";String SERVANDDB ="jdbc:mysql://127.0.0.1:3306/test";String USER ="root";String PWD ="%之前设置的root密码%";try{Class.forName(CLASSFORNAME);con = DriverManager.getConnection(SERVANDDB,USER,PWD);}catch(Exception e){e.printStackTrace();}}public int getRes(String sql){try{Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);int result=stmt.executeUpdate(sql);return result;}catch(Exception e){e.printStackTrace();}return 0;}public ResultSet getRes2(String sql){try{Statement stmt2=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet result=stmt2.executeQuery(sql);return result;}catch(Exception e){e.printStackTrace();}return null;}}

然后在另一个Java文件中新建一个DBConnection对象。

DBConnection dbcon=new DBConnection();    try {    String sq="select * from test";    ResultSet rs = dbcon.getRes2(sq);    rs.next();    System.out.println(rs.getString("id"));    rs.close();    }catch (Exception e) { e.printStackTrace(); }

但是实际上这样会报错,会说“java.lang.ClassNotFoundException: com.mysql.jdbc.Driver”

说明刚才设置的环境变量实际上没有起到作用。看网上有人说,直接将mysql-connector-java-5.1.18-bin.jar加入到工程的Build Path即可。步骤:选中工程名——点击右键——选择“Properties”——“Java Build Path”——“Libraries”——“Add External JARs”,打开的对话框中选择mysql-connector-java-5.1.18-bin.jar。就可以正常执行了。但是这种方法毕竟太麻烦,不知道环境变量设置有什么问题。

另外,DBConnection.java这个文件我会包含两个public的method:public int getRes(String sql)和public ResultSet getRes2(String sql),前者用于插入而后者用于查询。其实原则上只建立一个method就可以了。这只是我自己的习惯。

进行好上述设置之后,实际上就可以正常运行了,至此,Java连接MySQL的整个过程就基本实现了。其实很简单,但是还想记录下来,供一些初学的朋友参考。

(2012年9月15日补充:由于这篇日志写好之后被查看了很多次,这里补充一点内容,以免误导一些朋友:很多情况下连接数据库时,都是Web项目,这时候最好是把JDBC连接器,如“mysql-connector-java-5.1.21-bin.jar”放到WebRoot/Web-INF/lib目录下,这样更方便项目的迁移。)

0 0