Java調用Mysql
連接步驟
添加mysql官方的java接口jar包,在後面詳細介紹
連接Database
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/javabook", "USERNAME", "PASSWORD");
- 創建Database命令語句
Statement statement = connection.createStatement();
- 執行命令語句
statement.executeUpdate("create table Temp (col1 char(5), col2 char(5))");
- 獲取請求query的結果集resultSet
ResultSet resultSet = statement.executeQuery
("select firstName, mi, lastName from Student where lastName " + " = 'Smith'");
resultSet的默認位置是null,以下代碼打印所有數據信息
while (resultSet.next())
System.out.println(resultSet.getString(1) + " " + resultSet.getString(2) + " " + resultSet.getString(3));
也可以通過getString(“firstName”)獲得firstName的值
完整程序代碼如下:
public class DatabaseTest {
public static void main(String[] argv)
throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver loaded");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost/Javadata", "user1", "12345"
);
System.out.println("connected");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(
"select * from Test order by age desc"
);
while(resultSet.next())
{
System.out.println(resultSet.getString("name") + " " + resultSet.getString("age"));
}
connection.close();
}
}
注意:
每一個單獨語句會單獨提交到數據庫中,如果要分組進行提交的話,可以採用setAutoCommit(false)方法,並在一組statement語句的句末調用commit()方法提交整個組,而rollback()則撤銷該組的提交。
rollback()可用於讀取某個數據失敗而導致整項不該修改的數據的修改。
使用帶參數的SQL語句
不帶參數的SQL語句:
String queryString = "select firstName, mi, " +
"lastName, title, grade from Student, Enrollment, Course " +
"where Student.ssn = '" + _ssn_ + "' and Enrollment.courseId "
+ "= '" + _courseId_ +
"' and Enrollment.courseId = Course.courseId " +
" and Enrollment.ssn = Student.ssn";
ResultSet rset = stmt.executeQuery(queryString)
調用connection.prepareStatement(),採用帶參數的SQL語句(使用?作爲參數):
preparedStatement = connection.prepareStatement(queryString);
String queryString = "select firstName, mi, " +
"lastName, title, grade from Student, Enrollment, Course " +
"where Student.ssn = ? and Enrollment.courseId = ? " +
"and Enrollment.courseId = Course.courseId";
preparedStatement.setString(1, ssn);
preparedStatement.setString(2, courseId);
ResultSet rset = preparedStatement.executeQuery();
IntelliJ中導入jar包
我使用的是Android Studio,但AS基於IJ開發,所以大同小異,步驟如下:
在Mysql官網下載mysql-connector-java-5.1.43.tar.gz
導入IntelliJ IDE中:
1. 點擊 File -> Project Structure(快捷鍵 Ctrl + Alt + Shift + s),點擊Project Structure界面左側的modules。(在這裏我的module是my_test)
2. 在 “Dependencies” 標籤界面下,點擊右邊綠色的 “+”號,選擇第一個選項“Jar dependency”,選擇相應的jar包,點“OK”,jar包添加成功。
3. 假設包中有mysql.jdbc.Driver類,則在該module下,使用com.mysql.jdbc.Driver即可使用該類