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开始).