JDBC:
创建SQL语句对象 Statement statement = (Statement) con.createStatement() ;
调用执行 statement.executeUpdate(sqlString);
释放资源 statement.close();
一 : 创建表的操作代码:
1 package JDBC; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 7 import com.mysql.jdbc.Statement; 8 9 public class Demo { 10 // 数据库地址 11 private static String dbUrl="jdbc:mysql://localhost:3306/JavaJDBC"; 12 // 用户名 13 private static String dbUserName="root"; 14 // 密码 15 private static String dbPassword="root"; 16 // 驱动名称 17 private static String jdbcName="com.mysql.jdbc.Driver"; 18 19 public static void main(String[] args) { 20 try { 21 Class.forName(jdbcName); 22 System.out.println("加载驱动成功!"); 23 } catch (ClassNotFoundException e) { 24 // TODO Auto-generated catch block 25 e.printStackTrace(); 26 System.out.println("加载驱动失败!"); 27 } 28 Connection con=null; 29 try { 30 // 获取数据库连接 31 con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword); 32 System.out.println("获取数据库连接成功!"); 33 System.out.println("进行数据库操作!"); 34 // 创建sql语句 35 String sqlString = "CREATE TABLE t_student(id BIGINT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),age INT)"; 36 // 创建语句对象 37 Statement statement = (Statement) con.createStatement() ; 38 // 执行sql语句 39 statement.executeUpdate(sqlString); 40 statement.close(); 41 } catch (SQLException e) { 42 // TODO Auto-generated catch block 43 e.printStackTrace(); 44 }finally{ 45 try { 46 con.close(); 47 } catch (SQLException e) { 48 // TODO Auto-generated catch block 49 e.printStackTrace(); 50 } 51 } 52 } 53 54 }
二 : 处理异常和关闭资源(对上部分代码优化)
1 package JDBC; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 7 import com.mysql.jdbc.Statement; 8 9 public class Demo { 10 // 数据库地址 11 private static String dbUrl="jdbc:mysql://localhost:3306/JavaJDBC"; 12 // 用户名 13 private static String dbUserName="root"; 14 // 密码 15 private static String dbPassword="root"; 16 17 public static void main(String[] args) { 18 Connection con=null; 19 Statement statement = null ; 20 try { 21 // 获取数据库连接 22 con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword); 23 System.out.println("获取数据库连接成功!"); 24 System.out.println("进行数据库操作!"); 25 // 创建sql语句 26 String sqlString = "CREATE TABLE t_student(id BIGINT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),age INT)"; 27 // 创建语句对象 28 statement = (Statement) con.createStatement() ; 29 // 执行sql语句 30 statement.executeUpdate(sqlString); 31 } catch (SQLException e) { 32 // TODO Auto-generated catch block 33 e.printStackTrace(); 34 }finally{ 35 try { 36 con.close(); 37 statement.close(); 38 } catch (SQLException e) { 39 // TODO Auto-generated catch block 40 e.printStackTrace(); 41 } 42 } 43 } 44 45 }
三 : DML操作
操作与上述常见表相同,只需修改SQL语句
四 : 查询操作
1 package JDBC; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 7 import com.mysql.jdbc.ResultSet; 8 import com.mysql.jdbc.Statement; 9 10 public class Demo { 11 // 数据库地址 12 private static String dbUrl="jdbc:mysql://localhost:3306/JavaJDBC"; 13 // 用户名 14 private static String dbUserName="root"; 15 // 密码 16 private static String dbPassword="root"; 17 18 public static void main(String[] args) throws ClassNotFoundException { 19 Class.forName("com.mysql.jdbc.Driver") ; 20 Connection con=null; 21 Statement statement = null ; 22 try { 23 // 获取数据库连接 24 con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword); 25 System.out.println("获取数据库连接成功!"); 26 System.out.println("进行数据库操作!"); 27 // 创建sql语句 28 String sqlString = "select * from t_student"; 29 // 创建语句对象 30 statement = (Statement) con.createStatement() ; 31 // 执行sql语句 32 ResultSet resultSet = (ResultSet) statement.executeQuery(sqlString); 33 // 取出查询结果 34 while(resultSet.next()){ 35 long id = resultSet.getLong("id") ; 36 String nameString = resultSet.getString("name") ; 37 long age = resultSet.getLong("age") ; 38 System.out.println(id + " " + nameString + " " + age); 39 } 40 } catch (SQLException e) { 41 // TODO Auto-generated catch block 42 e.printStackTrace(); 43 }finally{ 44 try { 45 con.close(); 46 statement.close(); 47 } catch (SQLException e) { 48 // TODO Auto-generated catch block 49 e.printStackTrace(); 50 } 51 } 52 } 53 54 }
核心代码:
// 执行sql语句
ResultSet resultSet = (ResultSet) statement.executeQuery(sqlString);
// 取出查询结果
while(resultSet.next()){
long id = resultSet.getLong("id") ;
String nameString = resultSet.getString("name") ;
long age = resultSet.getLong("age") ;
System.out.println(id + " " + nameString + " " + age);
}
解释: executeQuery返回一个ResultSet,是对应的表,开始指向第一行,也就是每一列的名称,此处为id,name,age,然后通过next()将光标下移,通过getLong(String 列名称)取出 或 getLong(Long 列号)取出(从1开始).