欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java JDBC 数据库链接小结随笔

程序员文章站 2022-08-11 19:18:10
Java JDBC 数据库链接小结随笔 一、链接数据库的步骤 二、 关于Statement 和 PrepareStatement 两者区别 用法 三、关于 ResultSet 的一些小结 四、自定义工具类的封装 五、一些异常的解释 一、链接数据库的步骤 注册驱动 获得链接对象 创建sql容器 执行s ......

 

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 }

 

 

二、 关于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 }

 

 

 

基本能用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对象的当前行中指定列的值

四、自定义工具类的封装

   

五、一些异常的解释

 

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