问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jdbc那么多封装的方式,究竟哪个最好啊,最常用啊

发布网友 发布时间:2022-04-08 05:42

我来回答

4个回答

懂视网 时间:2022-04-08 10:03

  •  1、加载JDBC驱动程序:   
  •     在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),   
  •     这通过java.lang.Class类的静态方法forName(String  className)实现。   
  •     例如:   
  •     try{   
  •     //加载MySql的驱动类   
  •     Class.forName("com.mysql.jdbc.Driver") ;   
  •     }catch(ClassNotFoundException e){   
  •     System.out.println("找不到驱动程序类 ,加载驱动失败!");   
  •     e.printStackTrace() ;   
  •     }   
  •    成功加载后,会将Driver类的实例注册到DriverManager类中。   
  •  2、提供JDBC连接的URL   
  •    •连接URL定义了连接数据库时的协议、子协议、数据源标识。   
  •     •书写形式:协议:子协议:数据源标识   
  •     协议:在JDBC中总是以jdbc开始   
  •     子协议:是桥连接的驱动程序或是数据库管理系统名称。   
  •     数据源标识:标记找到数据库来源的地址与连接端口。   
  •     例如:(MySql的连接URL)   
  •     jdbc:mysql:   
  •         //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;   
  •    useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为   
  •    gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。   
  •  3、创建数据库的连接   
  •     •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,   
  •      该对象就代表一个数据库的连接。   
  •     •使用DriverManager的getConnectin(String url , String username ,    
  •     String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和   
  •      密码来获得。   
  •      例如:   
  •      //连接MySql数据库,用户名和密码都是root   
  •      String url = "jdbc:mysql://localhost:3306/test" ;    
  •      String username = "root" ;   
  •      String password = "root" ;   
  •      try{   
  •     Connection con =    
  •              DriverManager.getConnection(url , username , password ) ;   
  •      }catch(SQLException se){   
  •     System.out.println("数据库连接失败!");   
  •     se.printStackTrace() ;   
  •      }   
  •  4、创建一个Statement   
  •     •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3  
  •      种类型:   
  •       1、执行静态SQL语句。通常通过Statement实例实现。   
  •       2、执行动态SQL语句。通常通过PreparedStatement实例实现。   
  •       3、执行数据库存储过程。通常通过CallableStatement实例实现。   
  •     具体的实现方式:   
  •         Statement stmt = con.createStatement() ;   
  •        PreparedStatement pstmt = con.prepareStatement(sql) ;   
  •        CallableStatement cstmt =    
  •                             con.prepareCall("{CALL demoSp(? , ?)}") ;   
  •  5、执行SQL语句   
  •     Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate   
  •    和execute   
  •     1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句   
  •         ,返回一个结果集(ResultSet)对象。   
  •      2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或   
  •         DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等   
  •      3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的   
  •         语句。   
  •    具体实现的代码:   
  •           ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   
  •     int rows = stmt.executeUpdate("INSERT INTO ...") ;   
  •     boolean flag = stmt.execute(String sql) ;   
  •  6、处理结果   
  •     两种情况:   
  •      1、执行更新返回的是本次操作影响到的记录数。   
  •      2、执行查询返回的结果是一个ResultSet对象。   
  •     • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些   
  •       行中数据的访问。   
  •     • 使用结果集(ResultSet)对象的访问方法获取数据:   
  •      while(rs.next()){   
  •          String name = rs.getString("name") ;   
  •     String pass = rs.getString(1) ; // 此方法比较高效   
  •      }   
  •     (列是从左到右编号的,并且从列1开始)   
  •  7、关闭JDBC对象    
  •      操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声   
  •      明顺序相反:   
  •      1、关闭记录集   
  •      2、关闭声明   
  •      3、关闭连接对象   
  •           if(rs != null){   // 关闭记录集   
  •         try{   
  •             rs.close() ;   
  •         }catch(SQLException e){   
  •             e.printStackTrace() ;   
  •         }   
  •           }   
  •           if(stmt != null){   // 关闭声明   
  •         try{   
  •             stmt.close() ;   
  •         }catch(SQLException e){   
  •             e.printStackTrace() ;   
  •         }   
  •           }   
  •           if(conn != null){  // 关闭连接对象   
  •          try{   
  •             conn.close() ;   
  •          }catch(SQLException e){   
  •             e.printStackTrace() ;   
  •          }   
  •           }  
  • 复习一下jdbc原始封装

    标签:

    热心网友 时间:2022-04-08 07:11

    性能最好的,还是原始的

    热心网友 时间:2022-04-08 08:29

    大哥,哪有那么纠结,你会那个就用那个呀,会了就是一种技能了

    热心网友 时间:2022-04-08 10:04

    这个得看需求。
    springbootjdbc?

    使用jdbc方式,不跟spring.jpa.hibernate.ddl-auto值有关系,无论是create和update都不影响jdbc这种初始化方式。 第一种方式启动的时候jpa会根据实体类创建表,import.sql负责初始化数据(insert等操作)。 第二种方式启动的时候,不会创建表,需要在初始化脚本schema.sql,data.sql中判断是否存在表,再初始化脚本中的步骤。

    Hibernate与jdbc哪个好?各自的优点和缺点

    1、内存消耗:采用JDBC的架构2无疑是最省内存的,Hibernate的架构3次之,EB的架构1最差。 2、运行效率: 如果JDBC的代码写的非常优化,那么JDBC架构运行效率最高,但是实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch语 句,调整PreapredStatement的Batch Size和Fetch Size等参数,以及在必要的情况下...

    Jdbc直连 好呢 还是webservice好呢?

    dblink从效率上当然比webservice好,但是从数据的安全性上来讲就很差了,一般情况下,两个系统交互用webservice多一点,做起来也很方便

    web后端主流框架?

    ORM型框架,很多Javaweb程序都需要使用关系数据库来进行数据的持久化,所以对于这种需要进行数据库操作的框架,也就是对JDBC进行封装的ORM框架是需要学习的,目前比较流行的是基于SQL的mybatis框架,这是一个轻量级的ORM框架,学习使用起来比较容易上手,同类型的还有Hibernate框架。 MVC型框架,MVC把程序从逻辑上分为视图层、...

    java十大框架?

    使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。 2、Hibernate 这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系...

    Java web常用的开发模式中,你更青睐哪一种?

    开发模式:JAVA中的开发模式:MVC是一个很常用的程序开发设计模式,M-Model(模型):封装应用程序的状态;V-View(视图):表示用户界面;C-Controlle 其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:二、设计模式的六大原则 1、开闭原则(Open Close Principle)开闭原则就是说对...

    大数据从入门到深入:JavaEE 之 数据库技术 JDBC(1)

    既然是数据操作,数据保存在哪里呢?1)MySQL,数据是保存在数据库里的,相同类型的数据用表的形式进行存储,表存入小的数据库里。1. 创建数据库:jdbcdb;2. 创建person表;3. 添加测试数据。创建java项目,编写项目名称并且查看是否已指定JDK。创建完的效果。项目新建lib文件夹,文件夹叫lib。创建好...

    spring三大框架?

    起初是:request---servlet---servlet自己解析通过request.getparxxxx(参数名)---》封装到javabean代码重复比较大。 如果用springmvc就好多了jsp通过form表单提交直接映射到controller方法中的参数(一句话就是省代码) 框架的好主要作用是:快速开发。 好的框架设计的作用:松耦合,便于后期维护。减少多余的代码量。 框架包...

    jdbc 连接mysql时中的URL怎么写的

    // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值 // 避免中文乱码要指定useUnicode和characterEncoding // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定, // 下面语句之前就要先创建javademo数据库 String url = "jdbc:mysql:...

    jdbc提供的功能

    JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI。JDBCAPI提供了一个标准接口,用于与任何关系数据库管理系统(RDBMS)进行交互。JDBC是“Java数据库连接”的英文简称。通俗点说,JDBC就是封装了具体数据库连接方式等信息,然后提供一个“统一的”接口,方便Java程序联结数据库...

    封装jdbc后怎么使用 jdbc工具类用封装 jdbc对表的封装 jdbc哪几种方式 jdbc的使用方法 mybatis如何封装jdbc jdbc封装 jdbc事务封装 jdbc实现方式
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    老板燃气灶使用着时间一长。自动灭火 老板燃气灶灭火解决 ...出现“跨站请求伪造攻击,已被拦截!请关闭当前窗口重新打开浏览器... 1.两个数的公因数和两个数的最大公因数之间的关系是什么? 2.如果自然... 交换机怎么查IP地址 桌面右下角的小喇叭不见了?则么弄? CSRF跨站请求伪造 CSRF(跨站请求伪造)简介 什么是 CSRF(跨站请求伪造)? 如何防御它? 132kw电机的摩擦压力机每小时耗电多少度 收到美团无名记忆的消费短信是真实的吗? 万能地图下载器导出图片时,是不是不可以生成JGW坐标啊,我怎么没有找到呢? 下载电子地图时可以去掉标签吗?我用的万能地图下载器,请熟悉这个软件的高手指点一下吧! 万能地图下载器能不能倒大地图转成cad格式,并带高程? 有谁知道万能地图下载器中的级别是什么意思呀? 全能地图下载器中下的某个区域的图 为什么边界是这样? 你有没有食人鱼或者之类的资源,发我下! 能发下【食人鱼3DD(3D食人鱼2:全面猎杀)】【高清720P版HD-RMVB.中字】【2012最新美国恐怖大片】的种子或 食人鱼BD中英双字1024高清种子下载地址有么?感激不尽 求圣斗士的绝招的英文名字 快手食人鱼绝地求生手机版僵尸模式做不做了 自己在家里养了几条红腹食人鱼突然死了一条,身上没有伤痕, ( 史前巨鳄 )和( 杀人鳄鱼潭 )(逃亡鳄鱼岛)(食人鱼)这几部电影有人看过吗?好不好看 求食人鱼3D及食人鱼3DD的完整BD版种子,能下就给分要是符合条件还追加30分 求好心人给下载食人鱼3DD.HD1024高清英语中字种子的网址有发必采纳 跪求电影食人鱼3DD完整版(中文字幕)下载地址? 车子买什么保险最划算 我自己的车,很少开,买那几个保险便宜 如果开车少的话,怎样买车险比较划算? 很少开车买什么保险合适 苹果8xr忘了自己的id和密码怎么办? 苹果XR是否可以上软件锁? 微软电话激活时输入安装ID后系统说此产品无效?? 请问谁有仙剑3流程攻略 校运动会开始了,求8字口号,其中有两字必须是信息(因为我们是信息学院的)要押韵 某次好说有确定录取分数线报考125没有录取分数一25分分数是多少 急求信息电子系运动会入场口号 求法国电影《登堂入室》百度云资源,谢谢 电子信息工程专业 运动会入场口号 湖北2012年英语寒假作业七年级上册答案人教版 求运动会口号,信息技术学院,要求与建党90周年有关~~急求~~ 信息工程系具有特色的运动会口号? 天津大美良田农业科技有限公司怎么样? 大学信息与电子系运动会口号大全 帮忙想个运动会口号 数字信息技术学院的 八个字 好的追分 急求信通学院运动会加油口号 跪求啊 拜托了 急需运动会口号!!! 急求,写一句关于数学与信息技术学院的运动会口号 怎样把WORD页眉上的文字前后页改成不一样的? 怎样把WORD文档的页眉设成不同的样子?