JDBC
是java提供的一套类和接口,是连接数据库一套规范
JDBC操作数据库的步骤
1.注册驱动 registerDriver(Driver driver)
加载驱动类 Driver 是数据库厂商实现的
2.获取数据库连接对象
getConnection(url,user,password)
3.通过连接对象获取sql语句的执行对象
createStatement()
4.通过Statement对象 来执行sql语句
executeUpdate(sql) 返回值int
执行DML语句和DDL语句
executeQuery(sql) 返回ResultSet
执行DQL语句
5.处理执行sql后得到的结果集
6.关闭资源(调用close方法)
插入数据
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 注册驱动
// 如果这么注册 相当于注册两遍 Driver类的源码中有静态代码块 并且代码块中已经注册了一次
// DriverManager.registerDriver(new Driver());
// 该如何正确注册驱动?
// 利用反射注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接对象
// 数据库的连接地址 jdbc:mysql://主机IP地址:数据库的端口号/数据库的名
String url = "jdbc:mysql://localhost:3306/mydb2";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, user, password);
// System.out.println(connection);
// 通过连接对象获取sql语句的执行对象
Statement statement = connection.createStatement();
// 执行sql语句
// 插入一条数据
String sql = "insert into goods" + "(sname,sprice,sdesc)" + "values ('手机',8000,'一台高级手机')";
// 返回值是受影响的行数
int row = statement.executeUpdate(sql);
System.out.println(row);
// 关闭资源
// 关闭连接对象
connection.close();
// 关闭执行sql语句的对象
statement.close();
}
查询数据
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb2";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
// 执行sql语句
String sql = "select sname,sid,sprice,sdesc from goods";
ResultSet resultSet = statement.executeQuery(sql);
// 处理结果集
while(resultSet.next()) {
// 如果使用列的索引 注意:从1开始
// 如果不使用 * 直接使用字段 那么顺序就是你sql语句中 使用的顺序
// 获取数据方式2 直接使用字段名
String sname = resultSet.getString("sname");
int sid = resultSet.getInt("sid");
double sprice = resultSet.getDouble("sprice");
String sdesc = resultSet.getString("sdesc");
System.out.println( sid + sname + sprice + sdesc );
}
// 关闭资源
connection.close();
statement.close();
resultSet.close();
}