package cn.itcast.jdbc.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Date;
public class Example01 {
public static void main(String[] args) throws SQLException {
//1.注册数据库的驱动
//*在注册数据库驱动时,虽然DriverManager.registerDriver(new com. mysql.jdbc.Driver())方法可以完成,但会使数据库驱动被注册两次。因为Driver类的源码中,已经在静态代码块中完成了数据库驱动的注册。所以,为了避免数据库驱动被重复注册,只需要在程序中加载驱动类即可,具体加载方式如下所示。Class.forName("com.mysqk.jdbc.Driver");
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//2.通过 DriverManager获取数据库连接
//可以看出,getConnection()方法中有三个参数,它们分别表示数据库url、登录数据库的用户名和密码。数据库山通常遵循如下形式的写法。jdbc:subprotocol:subname
String url="jdbc:mysql://localhost:3306/chapter01";
String usernames="root";
String password="itcast";
Connection conn=DriverManager.getConnection(url, username, password);
//3.通过 Connection对象获取 Statement对象
//通过Connection对象获取Statement对象。Connection创建Statement的方式有如下三种。
//① createStatement(): 创建基本的Statement对象[执行静态SQL语句。]
//② prepareStatement(): 创建PreparedStatement对象。[执行动态SQL语句。]
Statement stmt= conn.createStatement();
//4.使用 Statement执行SQL语句
//①execute():可以执行任何SQL语句。
//②executeQuery():通常执行查询语句,执行后返回代表结果集的Resultset对象。
//③executeUpdate():主要用于执行DML和DDL语句。执行DML语句,如INSERT、UPDATE或 DELETE时,返回受SQL语句影响的行数,执行DDL语句返回0。
String sql="select * from users";
ResultSet rs=stmt.executeQuery(sql);
//5、操作 ResultSet结果集
System.out.println("id|name|password|email|birthday");
while (rs.next()) {
int id=rs.getInt("id"); //通过列名获取指定字段的值
String name=rs.getString("name");
String psw=rs.getString("password");
String email=rs.getString("email");
Date birthday=rs.getDate("birthday");
System.out.println(id+"|"+name+"|"+psw+"|"+email+"|"+birthday);
}
//6.回收数据库
//回收数据库资源。关闭数据库连接,释放资源,包括关闭ResultSet、Statement和Connection等资源。
if(rs!=null) {
try {
rs.close();
}catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}
if(stmt!=null) {
try {
stmt.close();
}catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
}
}
扩展
DML(Data Manipulation Language)数据操纵语言:
适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.
DDL(Data Definition Language)数据定义语言:
适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.truncate
1.DML操作是需要手动控制事务的开启、提交(commit)和回滚的。
2.DDL操作是隐性提交的,不能rollback!
参考链接:http://www.itheima.com/news/20200115/174304.html