JDBC实现增删查改操作

本章内容主要介绍了JDBC实现增删查改的方法,以mysql为例,具体的解释已经在代码中注释解释

同时介绍了execute() , executeUpdate() , executeQuery() 方法的区别及用法


package com.jdbc;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;

import com.mysql.jdbc.ResultSetMetaData;

public class Jdbc {
	
	
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub
		Connection connection  = null;
		ResultSet resultSet = null;
		String sql = "";
		String user = "root";
		String passwd = "123456";
		String url = "jdbc:mysql://localhost:3306/syqx?"+"user="+user + "&password="+passwd+"&useUnicode=true&characterEncoding=UTF8";
		//MySql的Url格式: jdbc:mysql://<host>:<port>/<database_name><?参数名1=参数值1><&参数名2=参数值2>...
		//useUnicode 是否使用Unicode字符集,characterEncoding 当useUnicode设置为true时,指定字符编码。
	// 首先我们需要加载驱动
        // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
        Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
        // 或者:
        // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
        // 或者:
        // new com.mysql.jdbc.Driver();
        System.out.println("加载MySql驱动成功");
        connection = DriverManager.getConnection(url);
        // Statement里面带有很多方法,比如executeUpdate()可以实现插入,更新和删除等,返回受影响的行数
        //executeQuery()返回一个结果集,一般用于执行select操作
        //execute()返回一个boolean值,表示是否返回ResultSet,用的较少,一般用于不知道sql语句执行后返回什么
        Statement stmt = connection.createStatement();
        
        //插入
        sql="insert into user values(5,'小红','男','000000','班长')";
        stmt.executeUpdate(sql);
        System.out.println("插入数据成功");
        
        //查找
        sql="select * from user";
        resultSet = stmt.executeQuery(sql);
        while(resultSet.next()){
        	System.out.println(resultSet.getString(1)+" "+resultSet.getString(2)+" "+resultSet.getString(3)+" "+resultSet.getString(4)+" "+resultSet.getString(5));
        }
        
        //删除
        sql="delete from user where username='小明'";
        int result = stmt.executeUpdate(sql);	//result表示返回数据库受影响的行数,对于表级操作,则返回0
        System.out.println("删除成功,受影响的行数为"+result+"行");
        
        //更新
        sql="update user set password='321' where username='小红'";
        result = stmt.executeUpdate(sql);
        System.out.println("更新成功,受影响的行数为"+result+"行");
        
        //---------------------------------------------------------
        //使用execute()方法
        
        sql ="select * from user";
        boolean hasResultSet = false;
        hasResultSet = stmt.execute(sql);
        if(hasResultSet){
        	ResultSet rsResultSet = stmt.getResultSet();
        	//ResultSetMetaData是用于分析结果集的元数据接口
        	ResultSetMetaData resultSetMetaData = (ResultSetMetaData) rsResultSet.getMetaData();
        	int columnCount = resultSetMetaData.getColumnCount();
        	while(rsResultSet.next()){
        		System.out.println(rsResultSet.getString(1)+" "+rsResultSet.getString(2)+" "+rsResultSet.getString(3)+" "+rsResultSet.getString(4)+" "+rsResultSet.getString(5));
        	}
        	System.out.println("该表中共有"+columnCount+"列属性");
        }
        
        //关闭连接
        connection.close();
		
	}

}



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值