JAVA----JDBC流程详解

1.导包

    1.根据数据库的版本进行导入。

可以去maven官网下载相应MySql版本的jar包,进行导入
网址:https://mvnrepository.com

2.编写常量(DRIVERCLASSNAME;URL;USERNAME;PASSWORD)

    2.1.  DRIVERCLASSNAME

----MySql为1.5版本的DRIVERCLASSNAME:  com.mysql.jdbc.Driver
-----MySql为1.5版本以后的DRIVERCLASSNAME:  com.mysql.cj.jdbc.Driver

     2.2.URL
        5.0:的URL地址:

private static final String URL = "jdbc:mysql://localhost:3306/数据库名称"

     8.0:注意加时区。

private static  final String URL = "jdbc:mysql://localhost:3306/数据库名称?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true";

    2.3.  USERNAME:连接数据库的用户名
    2.4.  PASSWORD:连接数据库所用的密码

3.加载驱动

Class.forName(DRIVERCLASSNAME);

       如果未加载会报错:

ClassNotFoundExecption

4.获取连接

    1.实例化Connection对象。   

Connection  conn =DriverManager.getConnection(URL,USER,PASSWORD);

5.编写sql语句,返回字符型。 

例如:

String sql = "update user set nowtime = ? where uid = ?";

(此处注意Sql语句的编写出错)

6.创建可以执行sql语句的对象。(注意Statement与PrepareStatement区别)

    1.Statement 需要完整的sql语句,而且每执行一次executeXXXX方法都需要给该方法sql参数,也就意味着每执行一次,就会重新编译一次。
    2.PrepareStatement 可以使用问号做等待输入的参数,在preparestatement创建的时候,就会将sql语句进行预处理,从而
 达到在执行executeXXXX方法只需要再填值就可以了,从而达到节省资源的目的。
    注意:setxxx  1  是sql语句从左到右的第一个问号
               getxxx  1  从查询结果中找到第一列。

7.执行sql语句。          

    executeUpdate  更新操作。    返回影响行数


    executeQuery   查询操作。   返回查询结果集。

8.关闭资源

    1.resultset
    2.preparestatement  
    3.关闭连接对象connection

实例:

import java.sql.*;//java.sql包下所有类都导入。
import java.util.Date;
import java.util.Scanner;

public class Test03 {
   private static  final String DRIVERCLASSNAME="com.mysql.cj.jdbc.Driver";
     serverTimezone可以设置为北京时间GMT%2B8、上海时间Asia/Shanghai或者香港时间Hongkong
    //四个常量:
    private static  final String URL = "jdbc:mysql://localhost:3306/shopping?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true";
    private static  final String USERNAME="root";
    private static  final String PASSWORD="123456";

    public static void main(String[] args) {

       //控制台输入

        System.out.println("请输入");

        Integer  uid = new Scanner(System.in).nextInt();

       //连接对象:设置为null,进行资源关闭

        Connection conn = null;

      //预编译对象

        ResultSet re = null;
        try {

          //加载驱动

            Class.forName(DRIVERCLASSNAME);

          //建立连接

            conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);

          //编写SQL语句

            String sql = "update user set nowtime = ? where uid = ?";

          //对SQL语句进行预编译;把不完整的sql语句放入jvm缓冲中。

            PreparedStatement ps = conn.prepareStatement(sql);

            //setTimeStamp():年月日时分秒
            //new Time(date.getTime());
            //new TimeStamp(date.getTime());
            //给不完整的sql语句的第一个问号赋值

            ps.setTime(1,new java.sql.Time(new Date().getTime()));

            //给不完整的sql语句的第二个问号赋值

            ps.setInt(2,uid);

           //预编译执行SQL语句,返回影响行数

            int i = ps.executeUpdate();

            System.out.println(i);

        } catch (Exception e) {
            e.printStackTrace();
        }finally {

          //关闭资源
            try{
                if(re!=null){
                    re.close();
                }
                if(conn != null){
                    conn.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值