关于JDBC编程的六步总结
1 注册驱动2获取连接3获取数据库操作对象4执行sql语句5处理查询结果6释放资源
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
public class jdbctest01{
public static void main(String args[]){
try{
//1.注册驱动
//写法1
Driver driver=new com.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);
//写法2
DriverManager.registerDriver(new com.jdbc.Driver());
//2获取连接
//写法1
String url=“jdbc:mysql://localhost:3306/bjpowernode”;
String user=”root”;
String password=”123”;
Connection conn=DriverManger.getConnection(url,user,password);
//写法2
Connection conn=DriverManager.getConnection(
“jdbc:mysql://localhost:3306/bjpowernode”,”root”,”123”)
// 3获取数据库操作对象
//获取第一个对象
Statement stmt=conn.createStatement();
//获取第二个对象并打印(一个连接可以获得多个对象)
Statement stmt2=conn.createStatement();
System.out.println(stmt2);//打印结果com.mysql.jdbc.StatementImpl@21b8d17c
//4执行SQL语句
// 1执行DML语句
//JDBC中编写SQL语句不许要以;结尾
//String sql="insert into t_user(id,name)values(13,'静静')";
//String sql="delete from t_user where id=12";
String sql="update t_user set name='海涛'where id=13";
//程序执行到此处,发送SQL语句给数据库管理系统
//数据库管理系统会将这条SQL语句编译运行
//该方法返回的是int类型,表示影响数据库表中的记录总数
int count=stmt.executeUpdate(sql);
System.out.println("count="+count);
}catch(SQLException e)
{ e.printStackTrace();
}}}
jdbc编程第五部:若以上的查询结果执行的是DQL语句,那么第五步要处理查询结果集
怎么处理查询结果集? 目前的处理方式是将所有结果集的数据遍历迭代打印输出。
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class jdbctest05
{
public static void main(String args[])
{ try{
//1 注册驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//2获取连接
Connection conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/bjpowernode","root","123");
//3获取操作对象
Statement stmt=conn.createStatement();
//4执行SQL语句
String sql="select id a,name b from t_user ";//a,b为重命名下面会用到
//程序执行到此处,发送SQL语句给数据库管理系统数据库管理系统执行DQL语句
//然后将执行的查询结果放到ResultSet这个结果集对象中了
ResultSet rs=stmt.executeQuery(sql);
rs这个结果集对象中封装了什么信息呢?
+----+---------+
| id | name |
+----+---------+
| 1 | jack |
| 2 | jack |
| 3 | jack |
| 4 | jack |
| 5 | haitao |
| 7 | zhaoliu |
| 8 | xxxu |
| 13 | 娴锋稕 |
+----+---------+
//5处理查询结果
/*
boolean hasMore=rs.next();
next方法作用:将光标向前移动一行指向的当前行有记录,返回ture;指向的当前行没有记录,返回ture;*/
while(rs.next()){//取当前光标指向的行中的数据
//无论表中字段的数据是什么类型,都以字符串的形式取出
/*
//以下是根据查询结果集中字段的下标来获取
String id=rs.getString(1);//JDBC中所有的下标都是从1开始【需要记住】
String name=rs.getString(2);
System.out.println("id="+id+"name="+name);*/
/*//以下是根据查询结果集中字段的名称来获取【这种方式程序健壮,建议使用】
String id=rs.getString("id");
String name=rs.getString("name");
System.out.println("id="+id+"name="+name);*/
/*//字符串参数不是数据库表中字符串的名称,是查询结果集中字段的名称
String id=rs.getString("a");
String name=rs.getString("b");
System.out.println("id="+id+"name="+name);*/
//以特定类型取出数据
//id为int类型name为varchar
int id=rs.getInt("a");
String name=rs.getString("b");
System.out.println("id="+id+"name="+name);
}
}catch(SQLException e){
e.printStackTrace();
}
finally{ //6.释放资源
try{
if(rs!=null){rs.close();}
}catch(SQLException e)
{e.printStackTrace();}
try{
if(stmt!=null){stmt.close();}
}catch(SQLException e)
{e.printStackTrace();}
try{
if(conn!=null){conn.close();}
}catch(SQLException e)
{
e.printStackTrace();
}} } }
释放资源的注意事项:
1.为保证资源的释放,将释放资源的代码编写到finally语句块中
2.需要关闭ResultSet,Statement,Connection,
3.一个Connection可以创建多个Statement,一个Statement可以得到多个ResultSet,
所以关闭的时候,先关闭ResultSet,再关闭Statement,最后关闭Connection
4.分别进行try。。。catch。。
就爱阅读www.92to.com网友整理上传,为您提供最全的知识大全,期待您的分享,转载请注明出处。
来源: