本文仅针对MySQL,其他数据库类似。
首先你需要下载mysql-connector-java,地址为 https://dev.mysql.com/downloads/connector/j/
解压你下载的文件,文件夹中mysql-connector-java-5.1.38-bin.jar就是连接mysql所需要的java包了。
在项目中使用jar有两种方式:
- 将mysql-connector-java-5.1.38-bin.jar添加到CLASSPATH中。如果你使用的是IntelliJ,在File -> Project Structure -> Modules -> Dependencies中添加。或者,如果你不使用IntelliJ,则在命令行中直接输入
export CLASSPATH=${CLASSPATH}:~/Downloads/mysql-connector-java-5.1.38.jar
- 将mysql-connector-java-5.1.38-bin.jar中的文件取出放到你的项目里。
jar -xf mysql-connector-java-5.1.38.jar
基本使用方法:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException e) {}
try {
Connection conn = DriverManager.getConnection(“jdbc:mysql://host:port/database", username, password);
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select PaperID, URL from PaperUrls");
while(rs.next()){
String url = rs.getString("URL");
System.out.println(url);
}
} catch(SQLException e) {}
java.sql是java自带的,里面包含公共的接口和类型。
Class.forName(“com.mysql.jdbc.Driver”)是用来将Driver类型加载到JVM中的。用import com.mysql.jdbc.Driver; Driver d = new Driver();可以达到相同的效果。
setAutoCommit(false)用于关闭事务自动提交,你需要用conn.commit()手动提交,或者用conn.rollback()回滚。
在需要向数据库中插入行时,PreparedStatement是一个很好的选择。
PreparedStatement pStmt = conn.prepareStatement("insert into UrlPdf values(?,?)");
pStmt.setString(1, url);
pStmt.setBinaryStream(2, input);
pStmt.executeUpdate();
conn.commit();
PreparedStatement可以自动对字符进行转义,防止SQL注入。