一、JDBC
JDBC 的开发步骤
0)导入驱动 jar 包
在工程中新建 lib 文件夹,然后导入 mysql-connector-java-5.1.39-bin.jar 文件。右键选中 jar 包,build path -> add to path...
1)注册数据库驱动
主要是告诉程序,我们需要去访问哪个数据库,MySQL 还是 Oracle...
如果使用 DriverManager 来注册,底层会注册两次。不推荐。
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
推荐使用反射技术!
Class.forName(“com.mysql.jdbc.Driver”);
2)获得数据库连接
通过连接对象,完成对选定数据库的连接。Connection
获取数据库连接的时候需要传递三个参数:数据库的路径、用户名和密码。
数据库路径:jdbc:数据库名称://IP地址:端口号/数据库名称
String url = “jdbc:mysql://localhost:3306/jss”;
String user = “root”;
String pass = “123”;
Connection conn = DriverManager.getConnection(url, user, pass);
3)获得SQL语句执行对象
通过上面获取的连接对象来获取SQL语句的执行者对象。
Statement stmt = conn.createStatement();
4)执行SQL语句
使用执行者对象,向数据库执行SQL语句。
//准备 SQL 语句,在进行执行。
String sql = “select * from shop”;
//executeQuery(),执行查询。使用 ResultSet 结果集来接收
ResultSet rs = stmt.executeQuery(sql);
5)设置SQL语句中的值
如果SQL语句中有占位符的话,需要给占位符设置值。
(一般在使用 PreparedStatement 的时候需要设置)
// 判断结果集是否有值,然后获取对应的值
while (rs.next()){
System.out.println(rs.getInt("id") +"--"+ rs.getString("pname")+"--"
+ rs.getDouble("price")+"---"+ rs.getString("pdesc"));
}
6)处理获取到的结果
如果返回集合,则循环遍历,获取对应的值。
// 判断结果集是否有值,然后获取对应的值
while (rs.next()){
System.out.println(rs.getInt("id") +"--"+ rs.getString("pname")+"--"
+ rs.getDouble("price")+"---"+ rs.getString("pdesc"));
}
7)释放连接资源
主要关闭连接对象,执行者对象,结果集等。
// 顺序,从近到远
rs.close();
stmt.close();
conn.close();
代码实现
package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Demo {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//步骤0:导入驱动 jar 包
/*在工程中新建 lib 文件夹,然后导入 mysql-connector-java-5.1.39-bin.jar 文件。
右键选中 jar 包,build path -> add to path...*/
//步骤1:注册数据库驱动
//如果使用 DriverManager 来注册,底层会注册两次。不推荐。
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");
//步骤2:获取数据库连接
String url = "jdbc:mysql://localhost:3306/student_information";
String user = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url,user,password);
//System.out.println(conn);
//步骤3:获得SQL语句执行对象
Statement stmt = conn.createStatement();
//步骤4:执行SQL语句
String sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);
//步骤5:处理获取的 到的结果
while(rs.next()) {
System.out.println(rs.getString("Sno") + " " + rs.getString("Sname") + " "
+rs.getString("Ssex") + " " +rs.getInt("Sage") + " " + rs.getString("Sdept"));
}
//步骤6:释放连接资源
rs.close();
stmt.close();
conn.close();
}
}