mysql与Java连接 以及有关操作

课程名称

面向对象程序设计

实验日期

11月4日

实验项目名称

数据库操作

实验地点

1#608

实验类型

√验证型□设计型

□综合型

学时

4

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

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

2、学习Mysql的使用

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

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

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

1、计算机

2、高速外网接入

三、实验内容及步骤

实验内容:

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

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

3、学习SQL相关知识

showdatabases

create

use

select

insert

delete

update

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

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

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

一实验源程序运行结果

1、

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

StatementcreateStatement()

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

(2)DriverManage接口:PublicstaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)试图建立到指定数据库URL的连接。DriverManager试图从已注册的JDBC驱动程序集中选择一个适当的驱动程序

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

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

Password-用户的密码

(3)Statement接口:interfaceStatement

extendsWrapper

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

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

executeUpdate

intexecuteUpdate(Stringsql)

throwsSQLException

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

参数:

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

返回:

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

抛出:

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

executeQuery

ResultSetexecuteQuery(Stringsql)throwsSQLException

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

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

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

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

(4)ResultSet接口:

Booleannext()throwsSQLException

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

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

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

intgetInt(intcolumnIndex)

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

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

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

intgetInt(StringcolumnLabel)

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

参数:

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

返回:

列值;如果值为SQLNULL,则返回值为0

抛出:

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

SQL语句中

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

删除语句为deletefrom表名where+条件语句

2、

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

Insertinto+表名+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("数据库异常!");
}
}
 
}


运行结果


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

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

实验评语

实验成绩

指导教师签名:年月日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值