使用JDBC连接Mysql
预备工作
l 下载驱动包,ftp://sunxin.org:22/downloads/resources/mysql-connector-java-3.1.7-bin.jar
l 使用它有两种方式,最简便的就把它放在%JAVA_HOME%/jre/lib/ext下,%JAVA_HOME%是jdk的安装目录,例如D:\j2sdk1.4.2_15,第二种方法就是指定classpath,使其指向这个.jar文件
下面正式开始
A. 因为会使用Connection,Statement,ResultSet类,因此需要import java.sql.*;
B. 连接数据库中可能会抛出异常,所以所有语句放在try中
C. 定义一些常用变量(都可以见名识义的),方便下面的语句,也可以让程序更容易理解,具体见代码
具体步骤:
Step1:装载驱动类
见后面代码
Step2:连接数据库
使用DriverManager的静态方法getConnection完成,返回一个connection的对象,这就是连接上指定数据库的连接,这个连接是十分宝贵的资源,应及时关闭.
Step3:操作数据库
Statement对象里通常放sql语句,而ResultSet是查询返回的结果集,具体见下面的代码
import java.sql.*;



class linkMysqlByJDBC {

public static void main(String[] args) {

try {
String driver = "org.gjt.mm.mysql.Driver";//驱动类
String url = "jdbc:mysql://localhost:3306/TestDB";
//连接字符串 其中TestDB是数据库名
String username = "root"; //用户名
String password = "123654"; //密码

Connection con = null;
Statement sm = null;
ResultSet rs = null;
//////Step1//////////
Class.forName(driver);
//////Step2//////////
con = DriverManager.getConnection(url, username, password);

//////Step3//////////
String sql = "insert into t values('Pitt','Pitt@gmail.com')";
sm = con.createStatement();

sm.execute(sql);

String sql2 = "select * from t";
rs = sm.executeQuery(sql2);

while (rs.next())
{
System.out.println(rs.getString("Name") + " " +
rs.getString("Email"));
}

con.close();

}catch(Exception e)
{
e.printStackTrace();
}
}
}
改进
why?
获取驱动类名,连接字符串,用户名,密码进行了”硬编码”,这样做有两个坏处:
l 不安全
这些信息应该被隐藏起来,不能被别人轻易看到.
l 麻烦而又不容易维护
一个项目中肯定很多地方都会用到这4个参数,如果每一次都重复写,很麻烦而且容易出错.
how?
l 应用处理资源文件的类
http://blog.csdn.net/PeakLui/archive/2008/04/02/2244961.aspx
l 数据源技术