Q:JDBC是什么?
A: java DataBase Connectivity(java语言连接数据库),本质是sun公司制定的一套接口(interface)
JDBC编程六步:
一:注册驱动(告诉java程序即将连接的是哪个品牌的数据库)
二:获取连接池(表示JVM进程和数据库进程之间的通道已打开,使用完成之后要关闭通道)
三:获取数据库操作对象(专门执行sql语句的对象)
四:执行sql语句(DQL,DML...)
五:处理查询结果集(只有当第四步执行的是select语句的时候,才有第五步查询并查集)
六:释放资源(使用完资源之后一定要关闭资源,java和数据库属于进程间的通信,开启之后一定要关闭)
import java.sql.Driver; import java.sql.DriverManage; import java.sql.SQLException; import java.sql.Connetion; public class JDBCtest01{ public static void main(string[] args{ statement stmt =null; Connetion conn=null; try( //1.注册驱动 Driver driver = new com.mysql.jdbc.Driver();//多态,父类型引用指向子类型对象。 DriverManage.registerDriver(driver); //2.获取连接 string url=”..."; string uesr="..."; string password="..."; conn= DriverManager.getConntion(url,user,password); system.out.println("数据库连接对象 ="+ conn) //3.获取数据库操作对象(Statement专门执行sql语句的) stmt = conn.createStatement(); //4.执行sql string sql =''insert into dept(deptno,dname,loc) values(50,'人事部','北京')"; //专门执行DML语句的(insert delete update) //返回值是"影响数据库中的记录条数" int count =stmt.executeupdate(sql); system.out.println(count == 1? "保存成功" : "保存失败"); }catch{SQLException e){ e.printStackTrace(); }finally{ //6.释放资源,为了保证资源一定释放在finally语句块中关闭资源,并且要遵循从小到大依次关闭,分别对其try...catch try{ if(stmt !=null){ stmt.close(); }catch(SQLExcetion e){ e.printStackTrace(); } try{ if(conn!=null){ conn.close(); }catch(SQLExcetion e){ e.printStackTrace(); } } } } } }
驱动加载我们一般不这么写,一般采用如下反射机制
Class.forname("com.mysql.jdbc.Driver");
catch(ClassNotFoundExcetion e){ e.printstackTrack(); }
还要抛出如上的异常
还可以使用资源绑定器绑定配置文件