Java--JDBC数据库编程

一、实验项目要求

实验目的

1.理解JDBC与SQL等网络数据库的连接机制

2.掌握JDBC API的使用

3. 掌握JDBC实现数据库基本操作

实验内容

  1. 编写程序创建一个职工数据表,内容如下:

职工号

姓名

性别

工资

职称

1001

丁卫国

650

助工

1002

张小华

1000

工程师

1003

宁涛

2500

高工

要求:(1)创建职工表;

           (2)向职工表中插入三条记录,如上表所示;并查询所有职工信息,输出到控制台。

          (3)更新职工表:将每个人的工资加50后存入原表中;并查询更新后的所有员工信息,输出到控制台。

二、实验环境

Ecplise

三、理论分析或算法分析

实验步骤

  1. 复习有关类的相关内容;
  2. 根据题目要求编写程序;
  3. 分析实验结果。

逻辑分析

问题1

(1)使用nacivat创建一个work表,不使用控制窗口创建,记住自己创建的位置以及密码,然后加载驱动器,连接数据库,Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/tit201902?characterEncoding=utf8&useUnicode=true";Connection connection= DriverManger.getConnection(url,”root”,”root”),建立一个可以把数据添加进去的的东西;

2)建立一个类是work,可以将数据从键盘输进去,但是每次只能输入一个数据,所以要输入三次,添加完成后,可以在nacivat里面查看到已经插入的数据,在控制台输出数据;

(3)建立一个类是updata,把工资更新,在原有的基础上可以加50,然后将信息输出到控制台上;

(4)对代码进行测试,每次输入记录就需要重新运行一遍,把记录按表中的内容加入表中,然后运行一次,查询信息书橱到控制台上,然后最后进行更新处理,最终实现目的;

四、实现方法

问题1

建立一个可以插入记录的类,并且输出到控制台

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

import com.mysql.jdbc.Statement;

public class Work {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要添加的职工号:    姓名:    性别:    工资:      职称:");
		String id = sc.next();
		String name = sc.next();
		String sex = sc.next();
		String money = sc.next();
		String work = sc.next();
		//连接数据库
		Class.forName("com.mysql.jdbc.Driver");
		String url = "jdbc:mysql://localhost:3306/tit201902?characterEncoding=utf-8&useUnicode=true";
		Connection con = DriverManager.getConnection(url,"root","root");
		String sql = "INSERT INTO work VALUES(?,?,?,?,?)";
		Statement st = (Statement) con.createStatement();
		PreparedStatement pstmt = con.prepareStatement(sql);
		pstmt.setString(1, id);
		pstmt.setString(2, name);
		pstmt.setString(3, sex);
		pstmt.setString(4, money);
		pstmt.setString(5, work);
		int flag = pstmt.executeUpdate();
		if(flag==0) {
			System.out.println("添加失败!");
		}
		else {
			System.out.println("添加成功!");
		}
		String s = "select * from work";
		//把职工信息输出到屏幕上
		ResultSet result = st.executeQuery(s);
		System.out.println("--------------员工信息-----------");
		System.out.println("职工号      姓名    性别         工资        职称");
		while(result.next()) {
			System.out.println(result.getString("职工号")+"\t"+
		                       result.getString("姓名")+"\t"+
					           result.getString("性别")+"\t"+
		                       result.getString("工资")+"\t"+
					           result.getString("职称")
		                       );
		                    }
		//释放资源
		con.close();
	}
}

建立一个可以将工资更新,在原有的基础上加50

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Statement;

public class Update {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");
		String url = "jdbc:mysql://localhost:3306/tit201902?characterEncoding=utf-8&useUnicode=true";
		//创建连接(与数据源进行连接)
		Connection con = DriverManager.getConnection(url,"root","root");
		//建立Statement类的对象
		Statement st = (Statement) con.createStatement();
		//建立PreparedStatement类的对象
		//更新工资,将工资增加50
		PreparedStatement ps = con.prepareStatement("update work set  工资=工资+50");
		//执行SQL命令
		ps.executeUpdate();
		//查询更新后的职工信息
		String s = "select * from work";
		//把职工信息输出到屏幕上
		ResultSet result = st.executeQuery(s);
		System.out.println("--------------员工信息-----------");
		System.out.println("职工号      姓名    性别         工资        职称");
		while(result.next()) {
			System.out.println(result.getString("职工号")+"\t"+
		                       result.getString("姓名")+"\t"+
					           result.getString("性别")+"\t"+
		                       result.getString("工资")+"\t"+
					           result.getString("职称")
		                       );
		                    }
		//释放数据库及JDBC资源
		ps.close();
		st.close();
		//关闭与数据库的连接
		con.close();
	}
}

五、实验结果分析

问题1调试结果

插入第一条数据的结果

插入三条数据并且输出到控制台的结果

工资更新后的结果

所遇问题以及处理方法

  1. 建立表的时候,连接数据库和加载驱动的时候,位置一定要正确,如果不正确,就找不到相应的表,就会报错;
  2. 在输入记录的时候,使用executeUpdate(),在输出到屏幕的时候使用的是executeQuery(s),在这里注意用的更新语句不一样,否则最后运行的时候会出错;
  3. 输入和添加和更新语句不一样,要多进行熟悉;
  4. 在码代码的过程中,经常会出现红线报错,一个一个搜索去解决,不要太着急,否则什么也做不出来,要多看代码,进行长时间的练习,这样就可以熟悉了;
  5. 多看书,多码代码。
  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值