web开发 java如何连接数据库并取得数据,实现 增,删,改,查

本文介绍如何使用Java进行web开发时连接MySQL数据库,创建名为jdbc的数据库及person表。通过引入数据库驱动,详细讲解了建立连接、执行增删改查操作的代码示例,特别强调查询语句不能使用executeUpdate()方法,否则会抛出SQLException。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

坐稳扶好,老司机发车 了,

首先 在mysql里边新建一个数据库,名字叫做jdbc。


然后在jdbc中新建一个叫person的表,


在表中添加元素


数据库和表已经建好,然后连接,

新建一个工程,右键工程名新建一个文件夹叫lib,然后把数据库驱动拷贝进去,

楼主是好人,数据库驱动在这:http://pan.baidu.com/s/1o8Qwco6


右键所添加的驱动,bulid bath,然后add bath,就build后出现的第一个,然后数据库驱动就弄好啦:

剩下的 就是代码部分:

package com.it.test;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.sql.*;

import com.mysql.jdbc.PreparedStatement;

public class connection {
	static String url=("jdbc:mysql://localhost:3306/jdbc");
	//jdbc协议:数据库子协议://主机:端口/要链接的数据库
	static String user = "root";//用户名
	static String password = "zhao123456";//密码,请写自己的密码
	@SuppressWarnings("null")
	public static  Connection test() throws SQLException
	{
		Driver drive=new com.mysql.jdbc.Driver();//创建驱动程序对象
		Properties pro = new Properties();//设置用户名和密码
		pro.setProperty("user", user);//账户
		pro.setProperty("password", password);//密码
		Connection con = drive.connect(url, pro);//连接数据库,返回对象
		System.out.println(con);//测试 链接是否成功
		return con;
	}
	
	

	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
		Connection con=test();//连接数据库 并测试
		String sql ="select * from person";//sql语句,查询表
		PreparedStatement pstmt=null;//创建statement
		ResultSet rs=null;
		
		pstmt=(PreparedStatement) con.prepareStatement(sql);
		
		rs = pstmt.executeQuery();//rs为查询到的对象
		
		//System.out.println(rs);
		while(rs.next())
		{
			System.out.println(rs.getString("name")+" "+rs.getString("sex")+"  "+rs.getString("age"));
		}
		
		System.out.println("-------更新-----------");
		String sql1="UPDATE person SET sex='女' WHERE age =18";
		String sex="女";
		System.out.println("1");
		//String age = "18";
		//pstmt.setString(1,sex);
		//pstmt.setInt(1, 18);
		//pstmt.setString(1, "");
		System.out.println("1");
		//pstmt.setString(2, age);
		pstmt=(PreparedStatement) con.prepareStatement(sql1);//先装载更新语句
		
		pstmt.executeUpdate();//更新
		
		String sql2 ="select * from person";
		pstmt=(PreparedStatement) con.prepareStatement(sql2);//装载查询语句
		
		ResultSet rs1=pstmt.executeQuery();
		while(rs1.next())
		{
			System.out.println(rs1.getString("name")+" "+rs1.getString("sex")+"  "+rs1.getString("age"));
		}
		
		
		System.out.println("-------添加-----------");
		PreparedStatement pstmt1=null;
		String sql3="INSERT INTO person VALUES ('赵六','男',19)";
		pstmt1=(PreparedStatement) con.prepareStatement(sql3);//装载添加语句
		pstmt1.executeUpdate();//执行
		String sql6="select * from person";
		pstmt1=(PreparedStatement) con.prepareStatement(sql6);//装载查询语句
		//pstmt1.executeUpdate();//执行,,查询语句不能更新!!!!!
		ResultSet rs2=pstmt1.executeQuery();//获得
		while(rs2.next())
		{
			System.out.println(rs2.getString("name")+" "+rs2.getString("sex")+"  "+rs2.getString("age"));
		}
		System.out.println("-------删除-----------");
		String sql4="DELETE FROM person WHERE age=19";
		pstmt1=(PreparedStatement) con.prepareStatement(sql4);//装载删除语句
		pstmt1.executeUpdate();//执行
		String sql5 ="select * from person";
		pstmt1=(PreparedStatement) con.prepareStatement(sql5);//装载查询语句
		//pstmt1.executeUpdate();//执行
		ResultSet rs3=pstmt1.executeQuery();//获得
		while(rs3.next())
		{
			System.out.println(rs3.getString("name")+" "+rs3.getString("sex")+"  "+rs3.getString("age"));
		}
		pstmt.close();//关闭执行sql语句
		pstmt1.close();
		con.close();//关闭数据库的连接
	}

}


执行结果为:


最后强调一下,查询语句,没有这一句          //pstmt1.executeUpdate();//更新语句,,查询语句不能更新!!!!!

如果添加了这一句,会出现这个异常:

Exception in thread "main" java.sql.SQLException: Can not issue executeUpdate() for SELECTs
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2004)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949)
at com.it.test.connection.main(connection.java:79)

查询语句没有更新!!!!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值