一、实现增删改:
比较简单:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo2 {
/*
* 1.连接数据库
* 2。对数据库做增删改
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException{
/*
* 一、得到Connection
* 1.准备四大参数
* 2.准备四大参数
* 3.得到Connection
*/
//准备四大参数
String driverClassName = "com.mysql.jdbc.Driver";
//jdbc协议的格式!jdbc:厂商的名称:子协议(由厂商自己来规定)
//对mysql而言,它的子协议结构://主机:端口号/数据库名称
String url = "jdbc:mysql://localhost:3306/mydb1";
String username = "root";
String password = "12345678";
//加载驱动类
Class.forName(driverClassName);
//使用DriverManager,以及剩下的3个参数,得到Connection
Connection con = DriverManager.getConnection(url,username,password);
/*
* 对数据库做增、删、改
* 1.通过Connection对象创建Statement
* > Statement语句的发送器,他的功能就是向数据库发送sql语句!
* 2.调用他的int executeUpdate(String sql),它可以发送DML、DDL
*
*/
//1.通过Connection得到Statement对象
Statement stmt = con.createStatement();
//2.使用Statement发送sql语句!
// String sql = "INSERT INTO student VALUES('7','学生7')";
// String sql = "UPDATE student SET sname='学生666' where sid='6'";
String sql = "SET FOREIGN_KEY_CHECKS = 0";
int r1 = stmt.executeUpdate(sql);
sql = "DELETE FROM student";
int r = stmt.executeUpdate(sql);
System.out.println(r);
}
}
二、执行查询,比增删改多一步对查询结果的解析:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo2_1 {
/*
* 执行查询
*/
/*
* 一、得到Connecion
* 二、得到Statement,发送select语句
* 三、对查询返回的“表哥”进行解析!
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException{
/*
* 一、得到连接
* 1.准备四大连接参数
*/
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/mydb3";
String username = "root";
String password = "12345678";
/*
* 2.加载驱动类
*/
Class.forName(driverClassName);
/*
* 通过剩下的三个参数调用DriverManager的getconnection(),得到连接
*/
Connection con = DriverManager.getConnection(url,username,password);
/*
* 二、得到Statement,执行select语句
* 1.得到Statment对象:Connection的createStatement()方法
*/
Statement stmt = con.createStatement();
/*
* 2.调用Statement的ResultSet rs = executeQuery(String querySQL)
*/
ResultSet rs = stmt.executeQuery("select * from emp");
/*
* 三、解析ResultSet
* 1.把光标移动到第一行,可以调用next()方法完成!
*/
while(rs.next()){//把光标向下移动一行,并判断下一行是否存在!
int empno = rs.getInt(1);//通过列编号来获取该列的值
String ename = rs.getString("ename");//通过列名称来获取该列的值
double sal = rs.getDouble("sal");
System.out.println(empno + "," + ename + "," + sal);
}
/*
* 四、关闭资源
* 倒关(先得到的对象后关闭,后得到的对象先关闭)
*/
rs.close();
stmt.close();
con.close();//必须关闭,不关就死-->软病
}
}