5.Statement对象
Statement对象用于向数据库发送Sql语句,对数据库的增删改查都可以通过此对象发送sql语句完成。
Statement对象的常用方法:
//查询
executeQuery(Stringsql)
//增删改
executeUpdate(Stringsql)
//任意sql语句都可以,但是目标不明确,很少用
execute(Stringsql)
//把多条的sql语句放进同一个批处理中
addBatch(Stringsql)
//向数据库发送一批sql语句执行
executeBatch()
6.ResultSet对象
ResultSet对象代表Sql语句的执行结果,当Statement对象执行executeQuery()时,会返回一个ResultSet对象
ResultSet对象维护了一个数据行的游标【简单理解成指针】,调用ResultSet.next()方法,可以让游标指向具体的数据行,进行获取该行的数据
常用方法:
//获取任意类型的数据
getObject(StringcolumnName)
//获取指定类型的数据【各种类型,查看API】
getString(StringcolumnName)
//对结果集进行滚动查看的方法
next()
Previous()
absolute(introw)
beforeFirst()
afterLast()
7.写一个简单工具类
通过上面的理解,我们已经能够使用JDBC对数据库的数据进行增删改查了,我们发现,无论增删改查都需要连接数据库,关闭资源,所以我们把连接数据库,释放资源的操作抽取到一个工具类
/*
* 连接数据库的driver,url,username,password通过配置文件来配置,可以增加灵活性
* 当我们需要切换数据库的时候,只需要在配置文件中改以上的信息即可
*
* */
privatestaticString driver=null;
privatestaticString url=null;
privatestaticString username=null;
privatestaticStringpassword=null;
static{
try{
//获取配置文件的读入流
InputStreaminputStream=UtilsDemo.class.getClassLoader().getResourceAsStream("db.properties");
Propertiesproperties=newProperties();
properties.load(inputStream);
//获取配置文件的信息
driver=properties.getProperty("driver");
url=properties.getProperty("url");
username=properties.getProperty("username");
password=properties.getProperty("password");
//加载驱动类
Class.forName(driver);
}catch(IOExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
publicstaticConnectiongetConnection()throwsSQLException{
returnDriverManager.getConnection(url,username,password);
}
publicstaticvoidrelease(Connectionconnection,Statementstatement,ResultSetresultSet){
if(resultSet!=null){
try{
resultSet.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(statement!=null){
try{
statement.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(connection!=null){
try{
connection.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}