java实现jdbc,JDBC数据库编程

  java实现jdbc,JDBC数据库编程

  如何解决写爬虫IP受阻的问题?立即使用。

  一、JDBC连接数据库的操作

  写的时候可以封装在一个类里,简化代码。

  (1)加载JDBC-MySQL数据库驱动程序

  尝试{

  class . forname( com . MySQL . CJ . JDBC . driver );}catch(异常e){ }(2)连接数据库

  Connection con=null//声明连接数据库的对象comstring uri= JDBC:MySQL://localhost:3306/数据库名?use SSL=true character encoding=utf-8 ;//连接地址字符串user= root//用户名字符串password=123456 连接到数据库;//连接到数据库的密码try {

  con=driver manager . getconnection(uri,user,password);

  //连接代码} catch (sqlexception) {} (3)编写操作数据库中数据的代码

  二、查询操作

  1,查询操作的具体步骤

  (1)向数据库发送SQL语句:

  语句sql尝试{

  SQL=con . create statement();} catch (sqlexception) {}首先声明SQL语句对象,然后让创建的连接对象con调用createStatement()方法来创建这个SQL语句对象。

  (2)处理查询结果

  有了SQL语句对象,这个对象就可以调用相应的方法实现对数据库中表的各种操作,其中查询结果存储在ResultSet类声明的对象中。即SQL查询语句为数据库的查询操作放回一个ResultSet对象,ResultSet由按列(字段)组织的数据行组成。

  RS=SQL . execute query( select * from表的名称);//读取表中的所有列,*是通配符rs=sql.executeQuery(选择第1行字段名,第2行字段名.from表名);//读取表中特定列ResultSet对象时,一次只能看到一行数据。使用next()方法移动到下一行。ResultSet对象可以通过getXxx(int columnIndex)和传递列名getXxx(String columnName)来获取列值。

  (3)关闭连接。

  con . close();//关闭连接到con的数据库,注意:数据库与连接的对象紧密绑定,使用后要关闭数据库。

  2,控制游标

  结果集光标的初始位置在结果集第一行的前面。结果集调用next()方法向下(向后)移动光标。成功的移动返回true,不成功的移动返回false。如果要在结果集中移动并显示若干条记录,必须返回一个滚动的结果集。该方法如下:

  语句stmt=con . create statement(int type,int concurrency);//获取一个语句对象。根据参数的值,stmt返回相应类型的结果集:ResultSet Re=STMT。ExecuteQuery (SQL语句);type:的值决定了滚动模式:

  结果集的光标。TYPE_FORWARD_ONLY结果集只能向下滚动。

  resultset . type _ scroll _ insensitive游标可以上下移动,当数据库改变时,结果集不会改变。

  返回一个可滚动的结果集。当数据改变时,结果集同步改变。

  并发值:确定是否可以用结果集更新数据库。

  结果集。CONCUR_READ_ONLY无法用结果集更新数据库中的表。

  结果集。CONCUR_UPDATABLE可以用结果集更新数据库中的表。

  滚动常用结果集的方法:public boolean previous()将光标上移,移动到结果集的第一行时返回false。Public void before first()将光标移动到结果集的初始位置。在第一行之前,public void afterLast()将光标移动到结果集的最后一行,然后public void first()将光标移动到第一行,public void last()将光标移动到最后一行,public boolean isAfterLast()确定光标是否在最后一行之后,public boolean isBeforeFirst()确定光标是否在第一行之前,public boolean isFirst()确定光标是否指向第一行, public boolean isLast()确定光标是否指向最后一行,public int getRow()获取当前光标所指向的行号。 行号从1开始。如果结果集中没有行,返回0public boolean absolute(int row)将光标移动到参数row(参数为负或倒数)(3)条件与排序查询指定的行。

  Where子语句:选择指示where条件的字段

  (1)字段值与固定值的比较

  Select * from table其中name=张三(2)字段值在某个区间内。

  select * from表格,其中数字5、数字10和名称!=李四(3)使用一些特殊的日期函数(数据:年-月-日)从表中选择*其中年(表示日期的字段名)1980年和月(表示表面日期的字段名)=10从表中选择*其中年(表示日期的字段名)在2002年和2021年之间(4)使用一些特殊的时间函数(时、分、秒)

  select * from time list where second=36(5)使用运算符like进行模式匹配,使用%代替0个或多个字符,使用下划线_代替一个字符。

  select * from table where name like“% Europe %”//查询名称字段中带有“Europe”的记录。order by语句:可以与where语句结合使用。

  select *从表中按高度排序

  Select * from表,其中类似“% king %”的名称按名称三、更新、添加和删除操作排序

  语句对象调用public int execute update(string SQL语句);以参数指定的方式更新、添加和删除数据库表中的记录。

  (1)更新

  更新表名集字段=条件子句(2)添加的新值

  插入表格值(对应于特定记录)(3)删除

  删除条件子句四、使用预处理语句处的表名

  Java提供了更高效的数据库操作机制,即PreparedStatement对象,即预处理语句对象。SQL语句被处理成数据库底层语句,然后传输到数据库。

  使用通配符:预处理SQL时,可以使用通配符?在执行预处理语句之前,只需设置由通配符表示的特定值,而不是字段的值:

  String= select * from表名where字段1?字段2=?;prepared statement SQL=con . prepare statement(str);sql.setXxx(int parameterIndex,Type x);//此方法已设置?表示的值,parameterIndex表示哪个数字?x表示要替换的值。五、通用查询

  编写一个通用查询类。用户可以将数据库名称和SQL语句传递给该类的对象,该对象将使用二维数组返回查询记录。

  要编写一个通用查询类,需要知道数据库表列(字段)的名称和数量。常用的方法是用ResultSet对象rs调用getMetaData()方法返回一个ResultSetMetaData对象:

  resultset metaData metaData=RS . get metaData();然后对象的元数据调用getColumnCount()方法返回rs中的列数,调用getColumnName(int i)返回结果集rs中第I列的名称。

  六、事务

  1,事务及处理

  一个事务由一组SQL语句组成。事务处理意味着应用程序确保事务中的所有SQL语句都被执行或者都不被执行。事务处理是保证数据库中数据完整性和一致性的重要机制。

  2,JDBC事务处理

  使用setAutoCommit(boolean b)方法关闭自动模式:

  也就是说,要关闭SQL语句的即时有效性,应该在更改数据库中的数据之前执行两个相关的操作。方法,使连接对象在获取sql对象之前调用此方法:

  con . set auto commit(false);用commit()方法处理事务:

  关闭自动模式后,让sql对象提交多个SQL(即同一个事务)语句,这些语句不会立即生效,但会全部生效,直到连接的对象调用该方法:

  con . commit();使用rollback()方法处理事务失败:

  也就是说,公司完成的操作被取消。con调用commit()方法进行事务处理时,只要有一条SQL语句执行失败,事务就执行失败,并抛出SQLException异常。此时,con必须调用rollback()方法来撤消所有导致数据更改的操作:

  con . roll back();这就是Java程序开发学习中JDBC和MySQL数据库的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: