jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL

 

|- Statement接口 用于执行静态的sql语句

    |- int executeUpdate(String sql)   执行静态的更新sql语句(DDLDML

    |- ResultSet executeQuery(String sql)  :执行的静态的查询sql语句(DQL

  |-PreparedStatement接口(Statement接口的子类):用于执行预编译sql语句

      |- int executeUpdate() 执行预编译的更新sql语句(DDLDML

      |-ResultSet executeQuery()   执行预编译的查询sql语句(DQL

 

 

  代码:(用DDL语句中的创建来举例,其他的DDL语句,除了发送的sql语句不一样之外,都一样)

  

 1 public class Statement_one {
 2 
 3     // 数据库的信息
 4     // URL
 5     private static String url = "jdbc:mysql://localhost:3306/day1029";
 6     // 用户名和密码
 7     private static String user = "root";
 8     private static String password = "root";
 9 
10     // 执行DDL语句(创建表为例)
11     private static void DDL() {
12         // 为了在关闭连接,在这里创建对象
13         Connection conn = null;
14         Statement stsm = null;
15 
16         try {
17             // 创建驱动注册对象
18             Class.forName("com.mysql.jdbc.Driver");
19 
20             // 获取连接的数据库对象
21             /* Connection */conn = DriverManager.getConnection(url, user,
22                     password);
23 
24             // 创建Statement对象
25             /* Statement */stsm = conn.createStatement();
26 
27             // 创建要执行的sql语句
28             String sql = "CREATE TABLE person(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(10),sex VARCHAR(5),age INT,psot VARCHAR(10),email VARCHAR(20),phone INT)";
29 
30             // 使用Statement发送该DDL语句,返回的时该sql语句所影响的行数,int类
31             int result = stsm.executeUpdate(sql);
32         } catch (Exception e) {
33             e.printStackTrace();
34         }
35         // 最后关闭连接(后开启的先关闭)
36         finally {
37             if (stsm != null) {
38                 try {
39                     stsm.close();
40                 } catch (SQLException e) {
41                     // TODO Auto-generated catch block
42                     e.printStackTrace();
43                     throw new RuntimeException(e);
44                 }
45             }
46             if (conn != null) {
47                 try {
48                     conn.close();
49                 } catch (SQLException e) {
50                     // TODO Auto-generated catch block
51                     e.printStackTrace();
52                     throw new RuntimeException(e);
53                 }
54             }
55         }
56     }

 

 

  代码:用DML的插入数据举例

 1     private static void DML() {
 2 
 3         Connection conn = null;
 4         Statement stsm = null;
 5 
 6         try {
 7             // 创建驱动获取对象
 8             Class.forName("com.mysql.jdbc.Driver");
 9 
10             // 获取要连接的数据库对象
11             conn = DriverManager.getConnection(url, user, password);
12 
13             // 创建Statement对象
14             stsm = conn.createStatement();
15 
16             // 准备要执行的sql语言
17             String sql = "INSERT INTO person (NAME,sex,age) VALUES ('小红','女',20);";
18 
19             // 执行语句
20             stsm.executeUpdate(sql);
21         } catch (Exception e) {
22             e.printStackTrace();
23         } finally {
24 
25             if (stsm != null) {
26                 try {
27                     stsm.close();
28                 } catch (SQLException e) {
29                     // TODO Auto-generated catch block
30                     e.printStackTrace();
31                     throw new RuntimeException(e);
32                 }
33             }
34             if (conn != null) {
35                 try {
36                     conn.close();
37                 } catch (SQLException e) {
38                     // TODO Auto-generated catch block
39                     e.printStackTrace();
40                     throw new RuntimeException(e);
41                 }
42             }
43 
44         }
45 
46     }

 

  代价:执行DQL

 1 //DQL(查询数据)
 2     private static void DQL() {
 3         Connection conn = null;
 4         Statement stsm = null;
 5         
 6     try{    
 7         //创建驱动获取对象
 8         Class.forName("com.mysql.jdbc.Driver");
 9         
10         //创建要连接的数据库对象
11         conn = DriverManager.getConnection(url, user, password);
12 
13         //创建Statement对象
14         stsm = conn.createStatement();
15         
16         //准备sql语言
17         String sql = "SELECT * FROM person;";
18         
19         //执行sql语言
20         //返回的是ResultSet,表示数据库结果集的数据表
21         ResultSet rs = stsm.executeQuery(sql);
22         
23         //打印一行数据,例:打印第二行的数据
24         
25         //一:移动光标到第二行,具体看API的ResultSet
26         rs.next();
27         rs.next();
28         //根据列名查询
29         int id = rs.getInt("id");
30         String name = rs.getString("name");
31         String sex = rs.getString("sex");
32         //打印
33         System.out.println(id+","+name+","+sex);
34         
35         
36         //二:打印所有数据,利用迭代。具体查看API的ResultSet
37     /*    while(rs.next()){
38             //通过列名来查询,列名的英文字母不分大小写
39             int id = rs.getInt("id");
40             String name = rs.getString("name");
41             String sex = rs.getString("sex");
42             System.out.println(id+","+name+","+sex);
43             
44         }*/
45         
46     }

 

posted @ 2016-10-29 22:56  卡拉瓦  阅读(2540)  评论(0编辑  收藏  举报