一、使用JDBC执行DQL/DML/DDL语句示例
1.1数据库设计
create database jdbc; use jdbc; create table test( id int primary key auto_increment, name varchar(10) ); insert into test values(1,"name1"); insert into test values(2,"name2"); insert into test values(3,"name3"); insert into test values(4,"name4"); insert into test values(5,"name5");
1.2代码实现
package edu.aeon.jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * [说明]:测试jdbc * @author aeon(qq:1584875179) * */ public class Test { /** * jdbc执行DQL语句 */ public static void testDQL(){ Connection connection=null; Statement statement=null; ResultSet resultSet=null; try { Driver driver=new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); String url="jdbc:mysql://localhost:3306/jdbc"; String username="root"; String password="root"; connection=DriverManager.getConnection(url, username, password); statement=connection.createStatement(); String dql_sql="select * from test;"; resultSet=statement.executeQuery(dql_sql); System.out.println("序号 名 称"); while(resultSet.next()){ int id=resultSet.getInt("id"); String name=resultSet.getString("name"); System.out.println(id+" "+name); } } catch (SQLException e) { e.printStackTrace(); }finally { try { if(null!=resultSet){ resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(null!=statement){ statement.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(null!=connection){ connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } /** * jdbc执行DML语句 */ public static void testDML(){ Connection connection=null; Statement statement=null; try { Driver driver=new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); String url="jdbc:mysql://localhost:3306/jdbc"; String username="root"; String password="root"; connection=DriverManager.getConnection(url, username, password); statement=connection.createStatement(); String dml_sql="insert into test(name) values('name6')"; int num=statement.executeUpdate(dml_sql); System.out.println("受影响的行数为:"+num); } catch (SQLException e) { e.printStackTrace(); }finally { try { if(null!=statement){ statement.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(null!=connection){ connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } /** * jdbc执行DDL语句 */ public static void testDDL(){ Connection connection=null; Statement statement=null; try { Driver driver=new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); String url="jdbc:mysql://localhost:3306/jdbc"; String username="root"; String password="root"; connection=DriverManager.getConnection(url, username, password); statement=connection.createStatement(); String ddl_sql="create table users(id int(4) primary key auto_increment,name varchar(10),password varchar(16));"; int num=statement.executeUpdate(ddl_sql); System.out.println("受影响的行数为:"+num); } catch (SQLException e) { e.printStackTrace(); }finally { try { if(null!=statement){ statement.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(null!=connection){ connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } /** * jdbc使用excute方法同时可以执行DQL/DML/DDL语句 */ public static void testDQLDMLDDL(){ Connection connection=null; Statement statement=null; ResultSet resultSet=null; try { Driver driver=new com.mysql.jdbc.Driver(); DriverManager.registerDriver(driver); String url="jdbc:mysql://localhost:3306/jdbc"; String username="root"; String password="root"; connection=DriverManager.getConnection(url, username, password); statement=connection.createStatement(); String sql="insert into test(name) values('name6')"; if(statement.execute(sql)){//如果返回true则表示执行的是DQL,有结果集返回,如果为false则表示返回的是更新计数器 resultSet=statement.getResultSet(); System.out.println("序号 名 称"); while(resultSet.next()){ int id=resultSet.getInt("id"); String name=resultSet.getString("name"); System.out.println(id+" "+name); } }else{//如果为false则表示返回的是更新计数器 int num =statement.getUpdateCount(); System.out.println("更新了"+num+"条数据!"); } } catch (SQLException e) { e.printStackTrace(); }finally { try { if(null!=statement){ statement.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(null!=connection){ connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } public static void main(String[] args) { //testDQL(); //testDML(); //testDDL(); testDQLDMLDDL(); } }
测试正常通过!
二、注册驱动的方式