- 学习JDBC
- 一、JDBC的概念
- 二、JDBC处理SQL语句的过程(建表,查表)
一、JDBC的概念
JDBC(Java DataBase Connectivity)是一种数据库连接技术,
能实现Java程序对各种数据库的访问。由一组使用Java语言编写的类和接口(JDBC API)组成,他们位于java.sql以及javax.sql中。
作用:
- 与数据库建立联系.
- 将编写好的SQL语句发送至数据库执行
- 对数据库返回的结果进行操作
JDBC API:
- java.sql.*
- javax.sql.*
使用JDBC 的步骤
- 建立 与数据库的连接 (其中包括用
- 创建 statement
- 执行 Query
- 处理 结果集(ResultSets)
- 关闭 连接
-
建立与数据库的连接,这里使用DriverManager
我们需要用到DBMS的 URL 进行连接一般mysql的URL : jdbc:mysql://localhost:3306/
JDBC URL: jdbc:derby:testdb;create=true
在用正确的用户密码,服务器等等参数连接数据库URL后,
DriverManager 会返回一个Connection,
我们编写一个方法来获取相关的Connection
//根据自己的数据库进行修改
public class JDBCTutorials {
String userName = "root"; //用户名
String password = "password";//用户密码
String dbms = "mysql";//数据库管理系统名称
String serverName = "localhost";//服务器名称
String portNumber = "3306";//服务器接口
String Atribute = "serverTimezone=UTC"
+ "&characterEncoding=utf-8"
+ "&useSSL=false";//时区与SLL连接方式禁用
String dbName = "crashcourse";//需要访问的数据库名称,可以为空,但是得自己用USE语句
//jdbc:mysql://localhost:3306/
//jdbc:derby:testdb;create=true
public Connection getConnection() throws SQLException{
Connection conn = null;
Properties connectionPros = new Properties();//新建一个Propeties容器
connectionPros.put("user", userName);
connectionPros.put("password", password);
if(this.dbms.equals("mysql")) {
conn = DriverManager.getConnection("jdbc:" + this.dbms + "://" + this.serverName +
":" + this.portNumber + "/" + this.dbName + "?" + this.Atribute,connectionPros);//获取连接
//conn.setCatalog(this.dbName);
} else if (this.dbms.equals("derby")) {
conn = DriverManager.getConnection("jdbc:" + this.dbms + ":"+ this.dbName + ":"
+ ";create=true",connectionPros);
}
System.out.println("Connection DBMS Successfully");
return conn;
}
}
更改相关的参数后,如果出现
- “Connection DBMS Successfully”
就说明连接数据库管理系统成功了.返回的Connection就要用到了,
接下来我们需要将SQL语句运用起来.
- 创建Statement , 和执行Query, ResultSet使用(建表 查表)
接下来我们需要使用的表格如下:
建立这个表格的SQL语句:
在这里插入代码片
那么我们怎么使用上面的SQL语句?
首先,我们要知道之前编写的 getConnection 方法返回了一个connetion
我们现在要再执行SQL语句的方法中使用它, SQL语句也需要先储存到一个String中
public void createTable(Connection con) throws SQLException{
String createSQL = "CREATE TABLE customersrn" + //存储SQL语句
"(rn" +
" cust_id int NOT NULL AUTO_INCREMENT,rn" +
" cust_name char(50) NOT NULL ,rn" +
" cust_address char(50) NULL ,rn" +
" cust_city char(50) NULL ,rn" +
" cust_state char(5) NULL ,rn" +
" cust_zip char(10) NULL ,rn" +
" cust_country char(50) NULL ,rn" +
" cust_contact char(50) NULL ,rn" +
" cust_email char(255) NULL ,rn" +
" PRIMARY KEY (cust_id)rn" +
") ENGINE=InnoDB;";
try(Statement statement = con.createStatement()){//用connection 创建一个statement
statement.executeUpdate(createSQL);//编译SQL语句
}catch (Exception e) {
System.out.println(e);
}
}
这样,建表的SQL语句就完成了.
3.使用
public static void main(String[] args) {
JDBCTutorials jdbcTutorials = new JDBCTutorials();
try (Connection connection = jdbcTutorials.getConnection()){
jdbcTutorials.createTable(connection);
jdbcTutorials.populateTable(connection);
jdbcTutorials.viewTable(connection,"crashcourse");
}catch (SQLException e) {
System.out.println(e);
}
}
执行结果:
4.关闭步骤
一般步骤是:
finally {
if (stmt != null) { stmt.close(); }
}
的函数和方法。



