您的位置:首页 > 编程语言 > Java开发

JDBC实现增删查改操作

2017-03-17 16:59 363 查看
本章内容主要介绍了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();

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java mysql sql jdbc