java使用jdbc链接数据库。
链接jdbc的步骤:
一.加载数据库驱动
二.填写数据库连接必要信息,如url,user,password。
三.建立数据库连接.
第一步:加载数据库驱动iver
加载数据库驱动一般分为三种方式:
1.用Class.forName 记载驱动,此方法将需要知道驱动类,代码如下:
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn = DriverManager.gerConnection(url,user,password);
…..
2.使用DriverManager类注册驱动实现,此时只需要导入对应的驱动包
里驱动即可,代码如下:
DriverManager.registerDriver(new Driver));
Connection con = DriverManager.getConnection(url,user,password);
….
3.采用面下对象的方式,也是使用new Driver(),代码如下
…
Driver driver = new Driver(); //导入对用的驱动类
Properties pro = new Properties();
pro.set(“user”,”your user”);
pro.set(“password”,”yourpassword”);
Connection conn = driver.connect(“url”,pro);
…
jdbc的url的书写。
String url = “jdbc:mysql://localhost/yourdb”
请注意url的规范,因为url的规范的问题将可能导致很多的报错,这里列举一项
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server
请注意这个错误,这个错误的报错信息看起来是mysql没有响应驱动发的数据包。
这个问题可能由于编码,或者url的其他问题引起,如果是编码,加上编码即可,
String url = “jdbc:mysql://localhost/yourdb??characterEncoding=utf8”
下面的代码将正式链接数据库,并查询数据库,切遍历出查询的结果集
package condbmysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.mysql.jdbc.Driver;
public class SimpleConnect {
public static void main(String[] args) throws Exception{
String sql = "select * from cathectic_user";
ResultSet rest = query(sql);
List<List<String>> relist = new ArrayList<List<String>>();
ResultSetMetaData data = rest.getMetaData();
int colcount = data.getColumnCount();
System.out.println(rest);
while(rest.next()){
List<String> collist = new ArrayList<String>();
for (int i = 1; i < colcount+1; i++) {
collist.add(rest.getObject(i).toString());
}
relist.add(collist);
}
for (Object object : relist) {
System.out.println(object);
}
}
public static ResultSet query(String sql) throws SQLException, ClassNotFoundException{
Connection conn=null;
ResultSet result= null;
String url = "jdbc:mysql://127.0.0.1:3306/cathectic_db?characterEncoding=utf8";
String user="root";
String password="password";
// Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new Driver());
// Driver driver = new com.mysql.jdbc.Driver();
conn = DriverManager.getConnection(url, user, password);
Driver drive= new Driver();
Properties pro = new Properties();
pro.setProperty("user", "root");
pro.setProperty("password","password");
drive.connect(url, pro);
Statement satament = conn.createStatement();
result = satament.executeQuery(sql);
return result;
}
}
上面的代码主要用到的关键信息如下:
Connection … 是java库提供的一个接口,主要用于数据库的链接
DriverManager … 数据库驱动类,将通过该对象获取一个数据库连接。
Connection conn = new DriverManager.getConnection(url,user,password);
Statement .. 重数据库连接中获取的一个对象,通过该对象可以操作数据库
Statement stat = conn.createStatement();
ResultSet rst = stat.excuteQuery(sql); //操作数据库,做了一个查询
//下面将遍历整个rst的结果集:
List