首先是基础流程(导入mysql-connector-java-5.1.48.jar
)
//注册驱动
Class.ForName("com.mysql.jdbc.Driver");
//获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db3?useSSL=false","root","12345678");
//定义sql语句
String sql="delete * from table";
//获取执行sql语句的对象Statement
Statement stmt = conn.createStatement();
//执行sql
int count = stmt.executeUpdate(sql); //count返回的是sql语句影响的行,若大于0则有数据
System.out.println(count);
//释放资源
stmt.close();
conn.close();
相比上面,有一套较为规范的写法,则是事先在外面定义好变量,并且进行异常捕获,并在finally进行释放资源
Statement stmt=null;
Connection conn=null;
try{
...操作
}catch(){
...
}
finally{
if(stmt!=null){
stmt.close;
}
if(conn!=null){
conn.close;
}
}
//避免空指针异常,出现异常进行捕获
Statement的方法中其中
int executeUpdate(String sql):执行DML(insert,update,delete);
ResultSet executeQuery(String sql):执行DQL(select);
ResultSet: 结果集对象,封装查询结果
- next():游标向下移动一行
- getxxx:获取数据
- xxx代表数据类型如 String getString()
int:代表列的编号,从1开始,如getString(1)
String:代表列名称,如getString(“name”)
ResultSet rs=null;
...
sql="select * from table";
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
//处理结果
while(rs.next()) {
//循环判断游标是否是最后一行末尾
//获取数据并打印
int id = rs.getInt(1);
String name = rs.getString("name");
int age = rs.getInt(3);
System.out.println(id + "---" + name + "---" + age);
}