JDBC与连接池

来源:互联网 发布:学编程需要什么条件 编辑:程序博客网 时间:2024/06/08 16:29

8.7总结

1.JDBC编程步骤(首先要记得导包,bulid path)

(1)、加载JDBC驱动程序

Class.forName(“com.mysql.jdbc.Driver”)

(2)、提供JDBC连接的url跟用户名、密码

String url=”jdbc:mysql://localhost:3306/数据库名”;(3306为端口号)
String username=”用户名”;
String password=”密码”;

(3)、创建数据库的链接

Connection conn = DriverManager.getConnection(url,username,password);

(4)、创建Statement或PreparedStatement对象,获得sql语句执行平台(preparedStatement接口可预编译sql语句,使用?占位符)

a、使用Connection对象创建一个Statement对象
Statement stmt = conn.createStatement( )。
b、使用Connection对象创建一个PreparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(String sql)

(5)、执行sql语句

单条插入
String sql=stmt.executeUpdate(“insert into 表名(字段名1,字段名2…) values(值1,值2…)”);
多条插入
String sql=”insert into 表名(字段名1,字段名2…) values(值1,值2…)”;
String sql1=”insert into 表名(字段名1,字段名2…) values(值1,值2…)”;
stmt.addBanch(sql);
stmt.addBatch(sql1);
stmt.executeBatch();
查询
ResultSet rs=stmt.executeQuery(“select * from 表名”

若第四步创建了preparedStatement对象,可直接在创建对象的时候就将sql语句写上。如果sql语句中包含参数,可在单引号中加入双引号与两个加号,加号中间写参数名

(6)、处理结果(执行查询得到的结果集)

while(rs.next()){
System.out.println(rs.get数据类型(“字段名1”)+” “+rs.get数据类型(“字段名2”));
}

(7)、关闭JDBC对象,释放资源(先打开的后关闭

rs.close();
stmt.close();或pstmt.close( );
conn.close();

2.完整代码

(1)抛出异常
import java.sql.*;
public class JDBCDemo{
public static void main(String[] args)throws Exception{
//1、注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
//2、建立连接
String url=”jdbc:mysql://localhost:3306/数据库名”;
String username=”root”;
String password=”root”;
Connection conn=DriverManager.getConnection(url,username,password);
//3、获得sql语句执行平台
Statement stmt=conn.createStatement();
//4、执行sql语句
String sql=stmt.executeUpdate(“insert into 表名(字段名1,字段名2…) values(值1,值2…)”);
ResultSet rs=stmt.executeQuery(“select * from 表名”);
//5、处理结果集
while(rs.next()){
System.out.println(rs.get数据类型(“字段名1”)+” “+rs.get数据类型(“字段名2”));
}
rs.close();
stmt.close();
conn.close();
}
}
(2)捕获异常
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ClassNotFoundException;
import java.sql.SQLException;
public class JDBCDemo{
public static void main(String[] args){
Connection conn=null;
Statement stat=null;
try{
Class.forName(“com.mysql.jdbc.Driver”);
String url=”jdbc:mysql://localhost:3306/数据库名”;
String username=”root”;
String password=”root”;
conn=DriverManager.getConnection(url,username,password);
stmt=conn.createStatement();
//执行单条插入
String sql=”insert into 表名(字段名1,字段名2…) values(值1,值2…)”;
stmt.executeUpdate(sql);
/*执行多行插入
String sql=”insert into 表名(字段名1,字段名2…) values(值1,值2…)”;
String sql1=”insert into 表名(字段名1,字段名2…) values(值1,值2…)”;
stmt.addBanch(sql);
stmt.addBatch(sql1);
stmt.executeBatch();
*/
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(stmt!=null){
stmt.close();
}
if(conn!=null){
con.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
}