我是靠谱客的博主 缓慢猎豹,最近开发中收集的这篇文章主要介绍JDBC完整流程jdbc的流程实列代码注意其中需要捕获和处理一些异常主要有ClassNotFindException、SQLExecuteException等!!!说在最后:插入、删除、更新数据区别在于不需要ResultSet类相应执行方法的返回值为整数(受影响的数据库表行数),sql不同,一定要记得关闭资源。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

jdbc的流程

1.在通过命令提示符net start mysql启动数据库服务在这里插入图片描述

2.到mysql官网下载数据库驱动包,解压得到相应的jar包,将jar包拷贝到项目目录下并添加为库,这一步关键。https://dev.mysql.com/downloads/connector/j/
3.java连接数据库主要涉及的类为DriverManager类、Connection类、PreparedStatement类(采用预编译和动态指定参数的方法可以防止sql注入)(还有一个Statement类不具备安全性)、ResultSet类(用于查询数据的结果集保存,增删改不需要)

实列代码

1加载驱动类
用Class类的forname()方法,本质是注册一个驱动。

Class.forName("java.mysql.jdbc.Driver");  //这个路径是固定的,是Driver类在jar包中的路径

2.连接数据库

// 这个串是连接数据库的路径规约,按照自己的要求修改
String db_url = "jdbc:mysql://localhost//3306//xboot?useUnicode=true&characterset=utf8&useSSL=true";
String user = "****"//数据库的用户名
String psw = "****"//用户密码

Connection con = DriverManager.getConnection(db_url,user,psw);  //这个连接本质是一个数据库对象

3 创建Statement对象执行sql语句或者根据数据库对象PrepareedStatement对象动态执行sql语句(推荐后者可以防止sql注入)

  • 用Statement类实现(不推荐)
String sql = "select * from t_mytest where id=1";

Statement statement = con.createStatement();  

4.处理结果集

ResultSet res = statement.executeQuery(sql);  //执行查询语句,有多个方法,execute()可以执行全部sql语句,但是效率低一些
while(res.next()){
System.out.println(res.getobject("id"));  //获得结果有多个方法,按需取用
}

5.释放连接

//关闭连接
res.close();
statement.close();
con.close();
  • 用PreparedStatement类实现(推荐)
String sql = "select * from t_mytest where id=?";  //这里的?是占位符,后边需要动态设定参数,防止sql注入

PreparedStatement statement  = con.preparedStatement(sql);  //和上边区别,需要传入参数
long id = 1;
statement.setLong(1,id);  //有多个方法根据数据库数据类型确定,若不知可以这样
//statement.setBytes(1,"1".getBytes())   //用字节流

ResultSet res = statement.executeQuery();  //这里和上边不一样,没有参数
while(res.next()){
System.out.println(res.getobject("id"));  //获得结果有多个方法,按需取用
}
//关闭连接
res.close();
statement.close();
con.close();

注意其中需要捕获和处理一些异常主要有ClassNotFindException、SQLExecuteException等!!!

完整示例实现及结果展示

package comm.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class test_jdbc_select {
    //可以把它包装为方法类
    public static void main(String[] args) {
        String DRIVER = "com.mysql.jdbc.Driver";  //加载驱动
        String DB_URL = "jdbc:mysql://localhost:3306/xboot";  //要连接的数据库
        ResultSet res = null;  //结果集
        PreparedStatement statement = null;  //sql执行对象
        Connection con = null;  //数据库对象

        try {
            Class.forName(DRIVER);  //加载驱动
            con = DriverManager.getConnection(DB_URL,"root","root");  //连接到数据库
            String sql = "select * from t_mytest";
            statement = con.prepareStatement(sql);  //声明statement 或者 preparedstatement对象,后者可以预编译实现动态执行sql语句,防止sql注入,具备安全性
            res = statement.executeQuery();  //执行查询语句,更新,插入,删除用executeupdate()方法
            while(res.next()){
                System.out.print(res.getObject("id")+" ");  //可以用明确告知类型的方法,性能更好
                System.out.print(res.getObject("name")+" ");
                System.out.print(res.getObject("sex")+" ");
                System.out.print(res.getObject("school")+" ");
                System.out.println();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {  //finally块关闭资源
            try {
                if(res!=null) {
                    res.close();
                }
                if(statement!=null) {
                    statement.close();
                }
                if(con!=null) {
                    con.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }


    }
}

表数据
在这里插入图片描述
IDEA运行数据:
在这里插入图片描述

说在最后:插入、删除、更新数据区别在于不需要ResultSet类相应执行方法的返回值为整数(受影响的数据库表行数),sql不同,一定要记得关闭资源。

最后

以上就是缓慢猎豹为你收集整理的JDBC完整流程jdbc的流程实列代码注意其中需要捕获和处理一些异常主要有ClassNotFindException、SQLExecuteException等!!!说在最后:插入、删除、更新数据区别在于不需要ResultSet类相应执行方法的返回值为整数(受影响的数据库表行数),sql不同,一定要记得关闭资源。的全部内容,希望文章能够帮你解决JDBC完整流程jdbc的流程实列代码注意其中需要捕获和处理一些异常主要有ClassNotFindException、SQLExecuteException等!!!说在最后:插入、删除、更新数据区别在于不需要ResultSet类相应执行方法的返回值为整数(受影响的数据库表行数),sql不同,一定要记得关闭资源。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部