环境:CentOs6.5 + MySql5.1 + OpenJDK1.7
参考网址:
http://www.tutorialspoint.com/mysql/mysql-installation.htm
http://www.tutorialspoint.com/jdbc/jdbc-environment-setup.htm
http://www.tutorialspoint.com/jdbc/jdbc-sample-code.htm
http://stackoverflow.com/questions/18158864/runtime-error-java-lang-classnotfoundexception-com-mysql-jdbc-driver
我所参考的有实际价值的资料都是来自以上网站
一、MySQL 安装
-需要安装:
MySql-devel + mysql-connector
-安装方法:
1. 先通过yum list|grep mysql找到安装包的全名
2. yum - y install 包名
MYSQL设置方法:
a.service mysqld start(先把mysql服务器打开)
b.设置密码mysqladmin -u root -p “xxx”
c.创建一个数据库mysqladmin create EMP -u root -p
d.mysql -u root -p
d.use EMP
e.创建具体的表和插入具体数据
mysql> create table Employees
-> (
-> id int not null,
-> age int not null,
-> first varchar (255),
-> last varchar (255)
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
二。编译运行java访问数据库的程序
首先编写java访问数据库的程序,第一次用,就直接copy了网上的模板,权当熟悉一下具体的访问过程。
//STEP 1. Import required packages
import java.sql.*;
public class FirstExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}//end FirstExample
之后通过WinSCP把程序拷到Linux下。
最后也是最关键的部分,先把mysql-connector(只放jar文件即可,可以通过locate查看文件位置)放到源代码同目录下,再输入(先javac再java)
java -cp .:mysql-connector-java-5.1.17.jar xxx(不用把.class也输进去,输了就没法运行了,会报错)
我就找着了这一种方法,之前我把mysql-connectorvegetable.jar放到xxx/jvm/jre/lib 和 xxx/lib里头 还是会包Class Not Found的错,其实这块我挺不理解的,网上说JDK1.5后classpath默认设置了,可是默认设置里头难道就没这两个目录了么?