JDBC重点代码

JDBC系列(二):JDBC代码的编写步骤 JDBC系列(二):JDBC代码的编写步骤 JDBC代表一组公共的接口。 JDBC中的这些公共接口和DBMS厂商提供的实现类(jar包),是为了实现java代码可以连接DBMS,并且操作其中的数据。 1. 常用的接口: Connection: 连接 Statement 和 PrepareStatement :增、删、改、查 ResultSet: 接收和处理查询结果 2.辅助的类: DriverManager: 驱动管理类 3.JDBC程序的编写步骤: 注册驱动 (如果缺少此 阅读详情

JDBC: java 提供的用java代码操作数据库的一套编程接口规范,具体实现类由各个数据库厂商自己提供.(Mysql举例)
配置文件:p.properties
url=”jdbc:mysql://127.0.0.1:3306/db1”
user=root
password=root
driver=”com.mysql.jdbc.Driver”

    1. 快速入门
        a 导包
        b 注册驱动 
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://127.0.0.1:3306/db1";
        String user=root;
        String password=root;
        Connection conn = DriverManager.getConnection(url,user,password);
        String sql = "update dept set name = ? where id = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1,"jack");
        ps.setInt(2,10);
        int count = ps.executeUpdate();
        sout(count);
        String sql2 = "select * from dept where id =?";
        PreparedStatement ps2 = conn.prepareStatement(sql2);
        ps2.setInt(1,3);
        ResultSet rs = ps2.executeQuery();
        //....

    2. 工具类
        public class Utils{
            private static String url;
            private static String user;
            private static String password;
            private static String driver;
            static{
            //配置文件放在Moudle的src文件目录下
                Properties pro = new Properties();
                pro.load(Utils.class.getClassLoader()
                .getResourceAsStream("p.properties"));
                url = pro.getProperties("url");
                user = pro.getProperties("user");
                password = pro.getProperties("password");
                driver = pro.getProperties("driver");
                Class.forName(driver);
            }
            public static getConnection(){
                return DriverManager.getConnection(url,user,password);
            }
            public static void close(ResultSet rs, PreparedStatement ps
            , Connection conn){
                if(rs!=null){
                    rs.close();
                }
                if(ps!=null){
                    ps.close();
                }
                f(conn != null){
                    conn.close();
                }
            }
        }

    3.  工具类简化书写
             Connection conn = null;
             PreparedStatement ps = null;
             ResultSet rs = null;
             try{

                conn = Utils.getConnection();
                String sql = "select * from dept";
                ps =  conn.prepareStatement(sql);
                rs = ps.executeQuery();
                while(rs.next()){
                    //...
                }
             }catch(Exception e ){
                 e.printStackTrace();
             }finally{
                 Utils.close(rs,ps,conn);
             }

    4. JDBC 事务处理  增删改数据库操作
             Connection conn = null;
             PreparedStatement ps1 = null;
             PreparedStatement ps2 = null;
             try{
                 conn = Utils.getConnection();
                 //开启事务
                 conn.setAutoCommit(false);
                 String sql1 = "update dept set money = money -? where id =?";
                 String sql2 = "update dept set money = money +? where id =?";
                 ps1 = conn.prepareStatement(sql1);
                 ps2 = conn.prepareStatement(sql2);
                 ps1.setInt(1,500);
                 ps1.setInt(2,1);
                 ps2.setInt(1,500);
                 ps2.setInt(2,2);
                 ps1.executeUpdate();
                 //制造异常
                 int b = 3/0;
                 ps2.executeUpdate();
                 //提交事务
                 conn.commit();
             }catch(Exeception e ){
                 if(conn != null){
                     try{
                         conn.rollback();
                     }catch(SQLException e1){
                         e1.printStackTrace();
                     }
                 }
                 e.printStackTrace();
             }finally{
                 Utils.close(null,ps,conn);
             }

    5. 连接池DataSource 
            厂商: C3P0/Druid
            C3P0:(配置文件自动导入驱动Driver 无需手动导入)
                DataSource ds = new CombopooledDataSource();
                Connection conn = null;
                PreparedStatement ps = null;
                ResultSet rs = null;
                try{
                    conn = ds.getConnection();
                    String sql = "select * from dept";
                    ps = conn.prepareStatement(sql);
                    rs = ps.executeQuery();
                    while(rs.next()){
                        //...
                    }
                }catch(Exception e){
                    e.printStackTrace();                                                                        
                }finally{
                //...释放资源
                }

            Druid:(配置文件是properties,需要手动导入)
            先写一个工具类
            public class Utils{
                private DataSource ds;
                static{
                    Properties pro = new Properties();
                    pro.load(Utils.class.getClassLoader().getResourceAsStream("p.properties"));
                    ds = DruidDataSourceFactory.creatDataSource(pro);
                }
                public static Connection getConn(){
                    return ds.getConnection();
                }
                public static DataSource getDs(){
                    return ds;
                }
            }

            public class Demo{
                public static void main(String[] args){
                    Connection conn = null;
                    PreparedStatement ps = null;
                    ResultSet rs = null;
               try{
                    conn = Utils.getConn();
                    String sql = "select * from dept";
                    ps = conn.prepareStatement(sql);
                    rs = ps.executeQuery();
                    while(rs.next()){
                        //...
                    }
                }catch(Exception e){
                    e.printStackTrace();
                }finally{
                    Utils.close(rs,ps,conn);
                }
            }
        }

    6.Spring框架中的 JdbcTemplate
        DataSource ds = Utils.getDs();
        JdbcTemplate t = new JdbcTemplate(ds);
        String sql = "update dept set balance =? whrer id = ? ";
         //修改数据
        t.update(sql,1000,3);
        //查询数据
        String sql2 = "select * from dept";
        // template.queryForMap()
        Map<E,T> map = t.queryForMap(sql2);
        sout(map.size()); // 长度为1 
        // template.queryForList()
        List<Map<E,T>> list = t.queryForList(sql2);
        // template.query()    EMP是JavaBean标准类
        List<EMP> myList = t.query(sql2, new BeanPropertyRowMapper<EMP>   
              (EMP.class));
        for(EMP emp : myList){
            System.out.println(emp);
        }
        // template.queryForObject() 查询聚合函数,num为结果
        int num = t.queryForObject(sql2,int.class);
避开集成插件!手把手教你用URL登录实现Finereport与致远OA的无缝跳转 本文详细介绍了如何通过URL登录机制实现Finereport与致远OA的无缝跳转,无需复杂插件配置。文章涵盖用户体系同步、环境配置、URL登录核心设置及安全加固方案,特别适合企业数字化转型中BI工具与OA系统的轻量化集成需求。 阅读详情

相关推荐

针对so层不固定位置的动态加密,怎么解决?(面试题)

Android逆向之破解某应用加密算法(动态调试so和hook so代码):so 代码动态解密后才执行,我们可以在解密完成后获取解密后的代码或数据。Android逆向之旅—动态方式破解apk进阶篇(IDA调试so源码)如果你有更具体的加密场景,欢迎提供更多信息,我可以给出更详细的方案!某些 so 在运行时生成密钥,解密后再用。某APP密码加密算法分析。

SXXYNHHXX的博客 923

jdbc代码详解

jdbc一共分为六步: 1、加载驱动 2、链接数据库 3、编写sql语句 4、转载sql语句 5、运行转载 6、关闭资源在开始之前,我们需要准备一些常量: 1、加载驱动: 2、链接数据库: 3、书写sql语句:sql语句放到字符串中书写 注意:在书写sql语句的过程中,一定会遇到需要外界传值,进行条件查询的情况,这种情况可以使用问号(?)来当做占位符使用,在转载sql语句的后面,进行占位符传值 ,使用ps.s

seven_765的博客 1302

SNAP计算哨兵二号的叶面积指数(LAI)

对于哨兵二号数据以及LANDSAT8数据,SNAP提供已经集成好的模块计算LAI。在Optical->Thematic Land Processing->Biopyhsical Processor目录下面。 对于经过Sen2Cor处理好的数据,需经过重采样才可进行计算。重采样工具在Raster->Geometric->Resampling。 如果选择Biopyhsical Processor S2_10m进行计算,需要将所有的波段都重采样为10米(哨兵二号的第二波段为10米,可据此波

gxwwww的博客 9414

JDBC 相关问题

14、JDBC 什么是JDBC : Java连接数据库! 需要jar包的支持: java.sql javax.sql mysql-conneter-java… 连接驱动(必须要导入) 实验环境搭建 CREATE TABLE users( id INT PRIMARY KEY, `name` VARCHAR(40), `password` VARCHAR(40), email VARCHAR(60), birthday DATE ); INSERT INTO

datou0_0的博客 326

vue使用 APlayer+Meting实现音乐播放,支持多平台音乐:网易云、腾讯、虾米、酷狗、百度

  我之前写过一篇博客:使用 APlayer 实现音乐播放器,虽然 APlayer 让我实现了想要的音乐播放器效果,但是音频列表 audio 的音频链接、音频封面、歌词等,是需要自己去补充的。   那么这些数据从哪里来呢?   我昨天有发愁一会儿会儿,也去搜了获取音乐列表的接口,可以发请求去获取数据嘛。   也有瞅见MetingJS,A powerful plugin connect APlayer and Meting,一个连接APlayer和Meting的功能强大的插件,附上GitHub地址:https

小R.的博客 4796

深入解析docx4j:从Word到PDF的高保真转换实战

本文深入解析了如何使用纯Java开源库docx4j实现Word到PDF的高保真转换。针对中文环境,重点讲解了字体映射原理、Linux服务器字体部署方案,并提供了完整的代码示例和配置方法。同时,文章涵盖了表格、图片处理、性能优化及生产环境部署指南,帮助Java开发者构建稳定、可控的文档转换服务。

weixin_29237635的博客 672

JDBC 快速入门JDBC学习笔记,超详细!!(含示例代码)

JDBC( Java DataBaseConnectivity java数据库连接)是一组执行sql语句的JavaAPI,它是由一组用Java语言编写的类和接口组成的,可以帮助开发人员快速实现关系型数据库的连接。其实就是java官方提供的一套规范(接口),并不神秘。

m0_67042480的博客 2021

45 - Android系统源码-crosvm 实战:基于 KVM 的 Rust 安全虚拟机监控器核心技术

摘要:crosvm 是 Google 开发的基于 KVM 的轻量级虚拟机监控器(VMM),采用 Rust 语言编写,专为 ChromeOS 和 Android 设计。其核心特点包括: 安全架构:通过 Rust 的内存安全特性和多进程隔离(每个设备运行在独立沙箱进程)大幅降低攻击面 性能优化:基于 KVM 的硬件虚拟化支持,结合异步 I/O (io_uring/epoll) 实现高效设备模拟 模块化设计:清晰的 trait 抽象层(Hypervisor/Vm/Vcpu)支持跨平台扩展 Android 集成

保持专注,保持热爱 225

web入门:JDBC详解(含代码实例)

一.概念 jdbc的本质是一套操作所有关系型数据库的规则,即接口,只需导入数据库驱动jar包,就可以使用这套接口对数据库进行操作 二.基本步骤 1.导入驱动jar包 mysql-connector-java-5.1.37-bin.jar(注意:若mysql版本在8以上,就导入8以上的jar包),将jar包导入到web/WEB-INF/lib目录下 jar包的下载和详细说明. 2.注册驱动 Class.forName(“com.mysql.jdbc.Driver”); 3.获取数据库连接 Connect

xiaopan 918

机器人动力学仿真软件:Webots_(14).机器人声音仿真

Webots 中的声音仿真主要通过Sound和两种节点来实现。Sound节点用于播放预定义的音频文件,而节点则允许在仿真过程中动态生成和播放声音。这些节点可以用于模拟机器人的语音输出、报警声、环境噪音等。以下是一个示例,展示如何在控制器代码中播放预定义的声音。// 控制器代码(.c) # include <webots/robot.h> # include <webots/sound.h> # define TIME_STEP 64 const char * sound_name = "sound";

kkchenjj的博客 1311

手把手教你学Simulink--基于Simulink的微电网用DC-DC变换器仿真建模

微电网概述微电网:包括可再生能源发电设备、储能系统和负载,可以独立于大电网运行,也可以并网运行。重要性提高能源可靠性:通过本地化供电减少对外部电网的依赖。促进可再生能源利用:支持高效整合多种可再生能源。挑战多源管理:不同类型的能源产生方式各异,需设计灵活的电源管理系统。能量转换效率:需要高效的能量转换装置来确保能源的有效利用。通过上述步骤,我们简要介绍了如何基于Simulink进行微电网中DC-DC变换器的仿真建模。

MHD0815的博客 161

JDBC学习笔记

JDBC

m0_65939803的博客 518

【数据集】全球预报系统GFS概述:数据下载及处理

【数据集】全球预报系统GFS概述:数据下载及处理

WW、forever的博客 5750

【SparkSQL】DataFrame入门(重点:df代码操作、数据清洗API、通过JDBC读写数据库)

本文重点介绍DataFrame的组成、DataFrame的代码构建、DataFrame的入门操作、词频统计案例、电影数据分析、SparkSQL Shuffle 分区数目、SparkSQL 数据清洗API、DataFrame数据写出、DataFrame 通过JDBC读写数据库(MySQL示例)

爱干饭的猿的博客 1370

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jdbc----事务处理(三个重点代码)

重点的三个代码 1./** 将事务设置为手动提交,即开启了事务 / conn.setAutoCommit(false); 2. /* 以上程序执行完成,事务结束 / conn.commit(); 3. /* 回滚事务 */ conn.rollback(); package com.Jdbc; import java.sql.*; /** * 事务处理 */ public class test08 { public static void main(String[] args) {

Big_xbc的博客 282

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Day5_1--jdbc学习代码简记(重点:多种返回类型的查询的实现)

当方法的返回类型是泛型是一般需要给传入jabean类对象的反射类,在其他类型方法中就不用传入反射类。在Day学习的代码中写的泛型方法中没有传入反射类是因为我通过截取sql语句然后获取反射类了。

gitee_nanzhi66的博客 360

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JDBC——快速入门与代码实现

JDBC 概念:Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型 数据库的规则,即接口。各个数据库厂商去实现这套接口,提供 数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正 执行的代码是驱动jar包中的实现类。 快速入门: 步骤 1.导入驱动jar包 1.复制mysql-connector-java-5.1.7-bin.jar到项目的libs目录下 2.右键-->

gyxaiocaiji的博客 126

怎么在IDEA中安装JDBC,超详细介绍

在学习Java Web中,需要连接数据库。

weixin_62117168的博客 1万+

【JDBC】Java连接MySQL数据库

JDBC(Java Database Connectivity)是Java语言用于与关系型数据库进行交互的标志 API。这个 API 由java.sql以及javax.sql包中的一些类和接口组成,使Java应用程序能够通过标准化的方式连接和操作各种不同的数据库。

qq_61635026的博客 1万+

JDBC的操作

一、引言 1.1如何操作数据库 使客户端工具访问数据库,需要手动建立链接,输入用户名和密码登录,编写sql语句,点击执行,查看结果。 1.2实践开发中 在实际开发中,当用户的数据发生改变时。不可能通过客户端操作执行sql语句,因为操作量过大,无法保证效率和正确性。 二、JDBC 2.1什么是JDBC JDBC(Java Database Connectivity) Java连接数据库,可以使用Java语言连接数据库完成CRUD操作。 2.2JDBC核心思想 Java中定义了访问数据库的

qq_64584221的博客 1355

JDBC概念 在idea里创建JDBC项目步骤

JDBC概念 在idea里创建JDBC项目步骤

weixin_46140377的博客 3457

Java的JDBC编程

Java的JDBC编程

2302_76435884的博客 1128

MySQL JDBC连接数据库详细教程【全程干货】

JDBC,即,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问最后来总结一下本文所学习的内容??

m0_74824755的博客 2807

Oracle05-JDBC

一、JDBC 二、

czttaotao的博客 669

JDBC编程步骤、JDBC API详解和数据库连接池

完整详细的JDBC编程步骤、JDBC API(DriverManager、Connection、Statement、ResultSet、PreparedStatement)详解和数据库连接池

crazy_xieyi的博客 802

JDBC知识【JDBC概述】第一章

JDBC概述:JDBC概念,JDBC本质,JDBC好处

日常学习总结 387
上一篇: MySQL多表查询案例
下一篇: 模仿数据结构栈,求栈中最小值的概述
Jlove_lf
博客等级 码龄8年 21粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值