mysql与Java连接 以及有关操作

来源:互联网 发布:airplay镜像 windows 编辑:程序博客网 时间:2024/04/30 07:26

课程名称

面向对象程序设计

实验日期

11月4日

实验项目名称

数据库操作

实验地点

1#608

实验类型

√验证型    □设计型

□综合型    

学  时

4

一、实验目的及要求(本实验所涉及并要求掌握的知识点)

1、 通过实验,使学生了解数据库的相关知识

2、 学习Mysql的使用

3、 学习Navicat的使用,并在Navicat环境下调试数据库的操作

4、 掌握数据库表的增删改查等基本操作

二、 实验环境(本实验所使用的硬件设备和相关软件)

1、计算机

2、高速外网接入

三、实验内容及步骤

实验内容:

1、学习MySql的下载、安装、服务的启动、修改密码 

2、学习Navicat的下载、安装、数据库的新建、表的建立、数据的导入和导出 

3、学习SQL相关知识 

    show databases

      create  

      use

      select

      insert

      delete

      update 

4、自建数据库,做增删改查四种不少于20个操作。(每种  5个) 

只需要把上面第4小题的操作结果记录下来

四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图)

一实验源程序 运行结果

1、

 

总结:(1)connection接口中的方法

 Statement createStatement()

创建一个Statement对象将SQL语句发送到数据库。不带参数的SQL语句通常使用Statement对象执行。

(2)DriverManage接口:Public static Connection getConnection(String url,String user,String password) 试图建立到指定数据库URL的连接。DriverManager试图从已注册的JDBC驱动程序集中选择一个适当的驱动程序

Url-jdbc:subportocol:subname形式的数据库 url

User-数据库用户,连接是为该用户创建的

Password-用户的密码

(3) Statement接口:interface Statement

extends Wrapper

用于执行静态 SQL 语句并返回它所生成结果的对象。

在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。

executeUpdate

int executeUpdate(String sql)

                  throws SQLException

执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。 

参数:

sql- SQL 数据操作语言(Data Manipulation Language,DML)语句,如 INSERT、UPDATE 或 DELETE;或者不返回任何内容的 SQL 语句,如 DDL 语句。

返回:

(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数 (2) 对于什么都不返回的 SQL 语句,返回 0

抛出:

SQLException 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定的 SQL 语句生成 ResultSet 对象

 

executeQuery

ResultSet executeQuery(String sql)  throws  SQLException

执行给定的SQL语句,该语句返回单个ResultSet对象

参数:sql-要发送给数据库的SQL语句,通常为静态的SQL SELECT语句

返回:包含给定查询所生成数据的ResultSet数据;永远不能为null

抛出:SQLException-如果发生数据库访问错误,在已关闭的Statement上调用此方法,或者是给定SQL语句生成单个ResultSet对象之外的任何其他内容

 

(4)ResultSet接口 :

Boolean next()   throws SQLException

将光标从当前位置向前移一行。ResultSet光标最初位于第一行之前;第一次调用next方法使第一行成为当前行;第二次使用使第二行成为当前行,以此类推。当调用next方法返回false时,光标位于最后一行的后面;

返回:如果新的当前行有效,则返回true;如果不存在下一行,则返回false。

抛出:SQLException-如果发生数据库访问错误或在关闭的结果集上调用此方法。

int getInt(int columnIndex)

以java编程语言中int的形式获取ResultSet对象的当前行中指定列的值

参数:columnIndex-第一个列的值是1,第二个是2,、、、、

返回:列值;如果值为SQL NULL,则返回值为0;

 

int getInt(String columnLabel)

以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。 

参数:

columnLabel- 使用 SQL AS 子句指定的列标签。如果未指定 SQL AS 子句,则标签是列名称

返回:

列值;如果值为 SQL NULL,则返回值为 0

抛出:

      SQLException- 如果 columnLabel 无效;如果发生数据库访问错误或在已关闭的结果集上调用此方法

 

SQL语句中  

选择语句为   Select * from 表名 where +条件语句

删除语句为   delete from 表名 where+条件语句

 

2、

所有方法上同,SQL语句插入操作为

Insert into  +表名 +values (value1,value2,...)

3、

 

4

 

5、

SQL语句:Update 表名 set 表名.列名=新值  where+条件语句=新值

 

第四题

package test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;import java.sql.ResultSet;public class test {public static void main(String[] args){try{Class.forName("com.mysql.jdbc.Driver");Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","123456");Statement stmt=conn.createStatement();  String s[]=new String[100]; s[1]="delete from studentinfo where studentinfo.stu_name='汪龙'";s[2]="delete from studentinfo where studentinfo.stu_name like '%鲁%'";s[3]="delete from  studentinfo where studentinfo.stu_id='1234120125'";s[4]="delete from studentinfo where studentinfo.stu_age<6";s[5]="Update studentinfo set studentinfo.stu_age=100";s[6]="Update studentinfo set studentinfo.stu_age=studentinfo.stu_age+50 where studentinfo.stu_name like '%刘%'";s[7]="delete from studentinfo where studentinfo.stu_name like '%飞%'";s[8]="insert into studentinfo values ('1234120125','刘勋','25')";s[9]="select * from studentinfo where studentinfo.stu_name like '刘%'";s[10]="select * from  studentinfo where studentinfo.stu_id='1234120125'";s[11]="select * from studentinfo where studentinfo.stu_age<10";for(int i=9;i<=11;i++){ResultSet rs=stmt.executeQuery(s[i]); System.out.println(s[i]);while(rs.next()){String id=rs.getString(1);String name=rs.getString(2);int age=rs.getInt(3);System.out.println(id+"   "+name+"   "+age);}rs.close();}int c=0,k; for(int i=1;i<=7;i++){ k=stmt.executeUpdate(s[i]);  c+=k;}System.out.println("更新了"+c+"条记录");     conn.close();}catch(Exception e){System.out.println("数据库异常!");}} }


运行结果

 


 

五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)

实践是检验真理的唯一标准

实验评语

 

实验成绩

 

指导教师签名:              年   月   日

0 0
原创粉丝点击