九.数据库操作

本文介绍了数据库编程的基本步骤,包括使用JDBC连接数据库、执行SQL查询与更新操作,以及关闭数据库连接。同时,讲解了数据库的基本概念,如数据、数据库和数据表。还特别提到了Access数据库的创建和SQL语言的功能,如数据查询、插入、更新和删除。最后,讨论了事务处理在确保数据一致性中的重要性。
摘要由CSDN通过智能技术生成

数据库编程基本步骤

 1.创建数据库连接对象,与物理数据库关联
     Class.forName(“……”);
     connect= DriverManager.getConnection(”……”)

2.创建  Statement对象(数据操作的基础对象)
      statement=connect.createStatement();

3.数据库操作

(1)  数据查询,返回一个结果集对象(按行访问的二维表格)      
     resultSet =statement.executeQuery(String sql);

(2)添加纪录、删除记录、更新数据(返回受影响的行数)                                                                                
     int rows=excuteUpdate(String  sql)

4.对象关闭resultSet.close();  statement.close();  connect.close();

一,数据库基本概念

1.Date:数据是存储在某一媒体上能够识别的物理符号。

2.Datebase:数据库(DB)就是按一定组织形式把相关的数据组织在一起(数据集合)

3.数据库组成:数据库由若干个数据表构成,保存在磁盘中。数据表逻辑结构是一张二维表,它由行和列组成。

二,Access数据库

Microsoft Access是Microsoft的数据库管理系统(DBMS),是一种关系型数据库。

使用Access数据库的步骤:
1)创建数据库
2)创建数据表
3)设计表结构
4)录入数据

三,SQL语言

1.SQL语言功能:

主要功能是完成数据的增加、删除、更改、查询以及相关数据管理等操作

标准SQL语言包括数据定义、数据查询、数据操纵和数据控制等方面的功能。(不区分大小写)

2.数据查询:

  1. select  *  from  表名;
  2. select  列名1,列名2,……   from  表名  [where 条件]    [order by 列名[ASC|DESC]];
  3. select  列名1,count(*) [as 别名] from  表名  [where 条件]    [group by 列名1 ];
  4. select  统计函数[as 别名]  from  表名 [where 条件]  ;

(统计数据:count(*)数目,sum(列名),max(列名))

3.插入记录:

1. insert  into  表名  (列名表)   values (值表);
注意:值表中的值与列名表中的列名顺序一一对应

2.insert  into  表名     values (值表);

默认插入全部列

4.更新数据:

1.update 表名  set  列名1=表达式1  [,列名2=表达式2, …]  [where  条件 ]

5.删除数据:

1. delete  from  表名   [WHERE 条件 

四,JDBC

1.JDBC基本概念:

JDBC是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口

2.连接数据库操作步骤:

(1)准备工作:

(2)连接数据库:

3.JDBC数据库编程基本步骤:

(1).创建数据库连接对象,与物理数据库关联   

    Class.forName(“ ……”)             //加载驱动
    Connection  connect= DriverManager.getConnection(“ ……”)

(2).创建  Statement对象(数据操作的基础对象)

    Statement statement=connect.createStatement();

(3).数据操作

a.数据查询,返回一个结果集对象(按行访问的二维表格)

String  sql=“select   ……”
ResultSet  resultSet = statement.executeQuery(sql);

b.数据更新,返回受影响的行数r,若r>0则更新成功

 String  sql=“update   ……”
 //String  sql=“insert into   ……”
 //String  sql=“ delete from   ……”
 int r=statement.executeUpdate(sql);          

(4).对象关闭(调用方法executeUpdate(sql),方法返回值是一个整数(数据表中实际删除的记录数目)

       statement.close();    
         resultSet.close();    
         connect.close();

4.Statement对象:

(1)建立对象:

(2)Statement对象的4个方法:

  • ResultSet   executeQuery(String  sql):

   用于向数据库发送查询语句,并返回代表查询结果的ResultSet对象;

  • int excuteUpdate(String  sql):

   可向数据库发送增删改的sql语句, 将会返回一个整数(即增删改语句导致了数据库几行数据发生了变化);

  • boolean    execute (String  sql)
  • ResultSet   getResultSet()

(3)excite方法的比较:

  • execute 与 executeUpdate 都可以执行增加,删除,修改的操作,executeQuery只执行查询操作;
  • execute可以执行查询语句,然后通过 getResultSet,把结果集取出来,executeUpdate不能执行查询语句 ;
  • execute 返回boolean类型,true 表示执行的是查询语句,false表示执行的是insert,delete,update等等
  • executeUpdate返回的是int类型,表示有多少条数据受到了影响(受影响的行数)。

5.PreparedStatement对象:

(1).PreparedStatement对象常用方法:

  1.     设置通配符:

    void setFloat (int index, float f)
    void setString(int index,String s)
    setDouble、setInt…….

   2.  执行数据表操作:

    ResultSet  executeQuery()       boolean   execute()
    int  executeUpdate()

(2).对数据表进行增删改查的两种实现办法:


1)使用PreparedStatement对象,sql字符串采用先用占位符?,然后给每个占位符设置相应的值,最后调用无参数的方法executeUpdate()。
2)使用Statement对象, sql字符串需要拼接,然后调用有参数的方法executeUpdate(sql)

(3)PreparedStatement与Statement对象的比较:

  • PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高 ,特别是如果带有不同参数的同一SQL语句被多次执行的时候,并增加代码的可读性
  • 使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
  • Statement每次执行sql语句,相关数据库都要执行sql语句的编译,PreparedStatement预编译, 支持批处理
  •  PreparedStatement 可以规避 Statement弊端:①拼串 ②sql注入攻击问题    
  • PreparedStatement 可以实现操作Blob类型、Clob类型的数据

6.ResultSet对象常用方法:

  • boolean   next():

指向结果集的下一行,如果有下一行返回true,否则返回false

  • String   getString(int  columnIndex)  与   int  getInt(int  columnIndex)

   //按列号访问,从1开始计数
   获得当前行第columnIndex列数据,并转换成相应类型;

  • String   getString(String  columnLabel) 与 int    getInt(String  columnLabel)

   //按字段名访问
   获得当前行字段名为columnLabel的列数据;

五.事务:

事务:包含多个操作,由一组SQL语句组成;
事务处理:指应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。

JDBC事务处理步骤:
1)用setAutoCommit(booean b)方法关闭自动提交模式:

    connection.setAutoCommit(false);
      stat=connection.createStatment();

2)提交SQL语句
3)用commit()方法处理事务
4)用rollback()方法处理事务失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值