Java JDBC 数据库链接小结随笔

2019-12-25 16:04:30来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Java JDBC 数据库链接小结随笔

 

Java JDBC 数据库链接小结随笔

一、链接数据库的步骤

二、 关于Statement  和  PrepareStatement 两者区别 用法

三、关于 ResultSet 的一些小结

四、自定义工具类的封装

五、一些异常的解释

 

一、链接数据库的步骤

  •  注册驱动
  •  获得链接对象
  •  创建sql容器
  •  执行sql语句
  •  查询操作
  •  关闭资源: 

  

 1 package demo1;
 2 
 3 import java.sql.*;
 4 
 5 public class demo1 {
 6     public static void main(String[] args) {
 7         try {
 8             Class.forName("com.mysql.cj.jdbc.Driver");
 9             String url="jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC";
10             /*目前手动改变 sql 服务器 时区报错问题*/
11             String username="root";
12             String password="root";
13             /*  com.mysql.cj.jdbc.Driver   */
14 
15             Connection con= DriverManager.getConnection(url,username,password);
16             System.out.println(con);
17             Statement stmt = con.createStatement();
18             ResultSet rs = stmt.executeQuery("select * from test");
19             while (rs.next()){
20                 int id=rs.getInt("id");
21                 String name=rs.getString(2);
22                 System.out.println("id:"+id+"-"+"name:"+name);
23             }
24 
25         }
26         catch (ClassNotFoundException e){
27             e.printStackTrace();
28         }
29         catch (SQLException e){
30             e.printStackTrace();
31         }
32     }
33 }
View Code

 

 

二、 关于Statement  和  PrepareStatement 两者区别 用法

    PrepareStatement 继承自 Statement 接口  拥有Statement 中的方法

    execute()
   executeQuery()
   executeUpdate()

 

 1 package demo1;
 2 
 3 import Util.connectionUtil;
 4 
 5 import java.sql.*;
 6 
 7 public class TestDemo {
 8     /*
 9     * 1. prepareStatement   Statement 区别
10     *
11     *   1)prepareStatement继承自 statement
12     *           prepareStatement{  execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数}
13 
14     * 2.   接口用法
15 
16     * */
17 
18     public static void main(String[] args) {
19 
20         //直接使用 Util 包下自定义的 链接数据库方法
21             Connection con=connectionUtil.getConnections("jdbc");
22             Statement stmt=null;
23             PreparedStatement ps=null;
24 
25             ResultSet resultSet=null;
26             ResultSet rs=null;
27 
28             String selectSql="select * from test";
29             try {
30                 stmt=con.createStatement();
31                 resultSet=stmt.executeQuery(selectSql);
32 
33 
34             System.out.println("Statement 接口:");
35             while (resultSet.next()){
36                 int id=resultSet.getInt("id");
37                 String name=resultSet.getString("name");
38                 System.out.println("id:"+id+"---"+"name:"+name);
39             }
40 
41 
42             System.out.println("PrepareStatement 接口:");
43 
44 
45             /* PrepareStatement */
46             ps=con.prepareStatement(selectSql);
47             rs=ps.executeQuery();
48             while (rs.next()){
49                 int id=rs.getInt("id");
50                 String name=rs.getString("name");
51                 System.out.println("id:"+id+"---"+"name:"+name);
52             }
53 
54 
55         } catch (SQLException e) {
56             e.printStackTrace();
57         }
58         finally {
59             if(con!=null){
60                 try {
61                     con.close();
62                 } catch (SQLException e) {
63                     e.printStackTrace();
64                 }
65             }
66         }
67     }
68 }
View Code

 

 

 

基本能用PrepareStatement 就不用 Statement    尽量避开   ‘1’ or "1"="1"    1的情况

 也会比 Statement 更灵活  

   execute()   executeQuery()  executeUpdate()    这三个方法也不需要用参数  直接调用

   例:

      PrepareStatement>

       String sql="select * from test where id= ?";

        PreparedStatement ps=con.prepareStatement(sql);
        ps.setInt(1,1)  

      /* ? 相当于 占位符
         setInt(index,value); 来给占位符设置值
         
set数据类型(index,value);
      */
      

      ----------------------------------------------------------
      Statement>
        stmt=con.createStatement();
resultSet=stmt.executeQuery(selectSql);
 

  

三、关于 ResultSet 的一些小结

     ResultSet  结果集   接收一个二维的数组集

     关于ResultSet 的一些方法

        

boolean next()              将光标从当前位置向前移一行。
String  getString(int columnIndex)     获取此ResultSet对象的当前行中指定列的值
String  getString(String columnLabel)    获取此ResultSet对象的当前行中指定列的值

四、自定义工具类的封装

   

五、一些异常的解释

 

 上述内容为 自学笔记  可自行参考

 


原文链接:https://www.cnblogs.com/qsyj0522/p/12099249.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Nacos Config客户端与Spring Boot、Spring Cloud深度集成

下一篇:Java电子书高清PDF集合免费下载