# JDBC 使用手册

JDBC可以允许Java访问一些关系型数据库,例如:MySQL,Oracle,SQL Server等等

# 连接MySQL

# 加载驱动

在shopping-mall-maven的开发中,没有使用到,不确定是否真的有效

try{
    Class.forName("com.mysql.cj.jdbc.Driver");
} catch(ClassNotFoundException e){
    e.printStackTrace();
}

# 连接数据库

要注意连接成功后的连接时长是有限制的

Connection connection = DriverManager.getConnection(url,dbUserName,dbUserPassword);

# 执行MySQL语句

# Statement (会导致SQL注入问题)

# PreparStatement

// Statement
Statement statement = connection.createStatement();
ResultSet res = statement.executeQuery(sql);
int res = statement.executeUpdate(sql);

// PreparStatement
String sql = "select * from user where id=?"; // ?用于占位
PreparStatement preparStatement connection.createPreparStatement(sql);
preparStatement.setInt(1,1); // 设置第一个占位?的值为1
ResultSet res = preparStatement.executeQuery();
int res = preparStatement.executeUpdate();

# 结果处理

# ResultSet

存放着执行完executeQuery的全部结果

# next()

是否有下一条结果,如果有就跳转到下一条结果并返回true,如果没有就返回false

# getObject(int columnIndex)

获取这一行的第columnIndex个结果

# getObject(String columnLabel)

获取这一行字段名为columnLable的结果

# getMetaData()

获取元数据

# ResultSetMetaData

元数据

# getColumnLabel(int index)

获取第index个字段的别名(如果SQL语句有取别名的话)

# getColumnName(int index)

获取第index个字段的原始名字

# 关闭资源

connection.close();
statement.close();
preparStatement.close();

# 错误处理

# SQLException

JDBC执行出现错误时抛出的异常

# getErrorCode()

获取当前错误的状态码