JDBC综合版JDBC简介JDBC概念JDBC:JavaDataBaseConnectivityjava数据库连接,是我们使用JAVA程序操作数据库的工具.JDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成我们想用Java程序操作数据库,就需要使用数据库的驱动.由于每种数据库存储数据的方式不同,他们所提供的数据库驱动也就不同.如果我们学习所有数据库的驱动,那么学习成本是很高的.JDBC就是一套数据库驱动的规范,由多个接口组成.例如在JDBC的接口中定义了查询方法,所有数据库厂商都在自己的驱动中实现这个查询方法.那么我们学习了JDBC的查询方法之后就可以对所有数据库操作了,而不用关心每种数据库究竟是怎么做的.JDBC连接mysql的驱动包JDBC由java.sql和javax.sql两个包组成,在jdk5.0之后包含在JavaSE中,不需要导入.除了这两个包之外,我们还需要导入数据库对应的驱动.使用mysql-connector-java-5.1.7-bin.jar驱动包如何导入驱动包?新建一个项目MySQL驱动Oracle驱动SQLServer驱动JDBCJava程序MySQLOracleSQLServer在该项目下新建一个folder文件夹。将jar包拷贝到该文件夹下选中项目右击鼠标-----new---folder----输入lib---点击finish选中jar包右击鼠标----buildpath----addtobuildpath第一个JDBC程序创建数据库Createdatabasepracticedefaultcharsetutf8;Usepractice;Createtableuser(Idintprimarykeyauto_increment,Usernamevarchar(20)unique,Passwordvarchar(30)notnull,Phonechar(11)notnull)engine=innodbdefaultcharsetutf8;加载数据库驱动publicclassTestAdd{publicstaticvoidmain(String[]args){try{//加载数据库驱动Class.forName(com.mysql.jdbc.Driver);System.out.println(加载驱动成功);}catch(ClassNotFoundExceptione){System.out.println(加载驱动失败);获取连接、URL地址DriverManager:管理一组JDBC驱动程序的基本服务。通过已注册的驱动获取Connection,这个Connection是java.sql.Connection的实现类.DriverManager在获取连接的时候需要URL地址,地址的语法为:jdbc:mysql://ip:port/sid[?参数名=参数值][&参数名=参数值]jdbc:mysql:是协议和子协议ip:port:ip地址:端口号例如localhost:3306就是本机上的3306端口,如果是本机3306端口可以省写.例如jdbc:mysql:///jdbc1sid是数据库名:例如jdbc1后面可以跟参数,例如?user=root&password=root或者useUnicode=true&characterEncoding=UTF-8}}}publicclassTestAdd{publicstaticvoidmain(String[]args){//加载驱动try{Class.forName(com.mysql.jdbc.Driver);System.out.println(加载驱动成功);Connectionconn=DriverManager.getConnection(jdbc:mysql://localhost:3306/practice+?useUnicode=true&characterEncoding=UTF-8,root,root);System.out.println(创建连接成功);}catch(ClassNotFoundExceptione){System.out.println(加载驱动失败);Connection编写Sql语句编写sql语句,规定执行什么操作。}catch(SQLExceptione){System.out.println(创建连接失败);}}}publicclassTestAdd{publicstaticvoidmain(String[]args){//加载驱动try{Class.forName(com.mysql.jdbc.Driver);System.out.println(加载驱动成功);Connectionconn=DriverManager.getConnection(jdbc:mysql://localhost:3306/practice+?useUnicode=true&characterEncoding=UTF-8,root,root);System.out.println(创建连接成功);//执行sql语句第一步:调用createStatement()方法,将sql语句发送到数据库Statementstmt=conn.createStatement();}catch(ClassNotFoundExceptione){System.out.println(加载驱动失败);}catch(SQLExceptione){System.out.println(创建连接失败);}}}Statement基本增删改查添加数据publicclassTestAdd{publicstaticvoidmain(String[]args){//加载驱动try{Class.forName(com.mysql.jdbc.Driver);System.out.println(加载驱动成功);Connectionconn=DriverManager.getConnection(jdbc:mysql://localhost:3306/practice+?useUnicode=true&characterEncoding=UTF-8,root,root);System.out.println(创建连接成功);//执行sql语句第一步:将sql语句发送到数据库Statementstmt=conn.createStatement();//编写Sql语句Stringsql=insertintouser(id,username,password,phone)values(001,'炸天','zhatian','110');//执行sql语句第二步:执行sql语句并返回结果intcount=stmt.executeUpdate(sql);if(count0){System.out.println(添加成功);}else{System.out.println(添加失败);}}catch(ClassNotFoundExceptione){System.out.println(加载驱动失败);}catch(SQLExceptione){System.out.println(创建连接失败);}}}publicclassTestAdd{publicstaticvoidmain(String[]args){//加载驱动try{Class.forName(com.mysql.jdbc.Driver);System.out.println(加载驱动成功);删除数据修改数据Connectionconn=DriverManager.getConnection(jdbc:mysql://localhost:3306/practice+?useUnicode=true&characterEncoding=UTF-8,root,root);System.out.println(创建连接成功);//执行sql语句第一步:将sql语句发送到数据库Statementstmt=conn.createStatement();//编写Sql语句Stringsql=insertintouser(id,username,password,phone)values(001,'炸天','zhatian','110');//执行sql语句第二步:执行sql语句并返回结果intcount=stmt.executeUpdate(sql);if(count0){System.out.println(添加成功);}else{System.out.println(添加失败);}}catch(ClassNotFoundExceptione){System.out.println(加载驱动失败);}catch(SQLExceptione){System.out.println(创建连接失败);}}}publicclassTestDelete{publicstaticvoidmain(String[]args){try{Class.forName(com.mysql.jdbc.Driver);Connectionconn=DriverManager.getConnection(jdbc:mysql://localhost:3306/practice+?useUnicode=true&characterEncoding=UTF-8,root,root);Stringsql=deletefromuserwhereid=001;Statementstmt=conn.createStatement();intcount=stmt.executeUpdate(sql);if(count0){System.out.println(删除成功);}else{System.out.println(删除失败);}}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}}}publicclassTestUpdate{publicstaticvoidmain(String[]args){try{Class.forName(com.mysql.jdbc.Driver);Connectionconn=查询数据对于增删改而言,只需要知道该操作是否执行就可以了,而对于查询操作,需要在控制台给一个返回的结果,那么在java中提供了一个ResultSet的结果集,用于存储查询出来的结果,所以在查询后只需要遍历结果集中的数据,就可以得到数据库中的数据ResultSet对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next方法将光标移动到下一行;因为该方法在ResultSet对象没有下一行时返回false,所以可以在while循环中使用它来迭代结果集。DriverManager.getConnection(jdbc:mysql://localhost:3306/practice+?useUnicode=true&characterEncoding=UTF-8,root,root);Stringsql=updateusersetusername='吊炸天',+password='diaozhatian',phone='112'whereid=001;Statementstmt=conn.createStatement();intcount=stmt.executeUpdate(sql);if(count0){System.out.println(修改成功);}else{System.out.println(修改失败);}}catch(ClassNotFoundExceptione){e.printStackTrace();}c