JDBC连接数据库操作

314 阅读1分钟

首先是基础流程(导入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);
}