JDBC 开发步骤

JDBC 开发步骤

1.注册驱动
---告知JVM使用的是哪一个数据库的驱动
2.获得连接
---使用JDBC中的类完成对MySQL数据库的连接
3.获得语句执行平台
---通过连接对象获取对SQL语句的执行者对象
4.执行sql语句
---使用执行者对象,向数据库执行SQL语句
        获取到数据库的执行后的结果
5.处理结果
---
6.释放资源
---调用一堆close();

导入jar包,复制到文件夹里,构置路径.

首先在MySQL里准备一些数据

CREATE TABLE users(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100),
PASSWORD VARCHAR(100)
);

INSERT INTO users (username,PASSWORD) VALUES ('a','1'),('b','2');

SELECT * FROM users;

-- 数据表的登陆查询
SELECT  FROM users WHERE username = 'a' AND PASSWORD = '1';

① 在JAVA中使用SQL语句INSERT INTO; DELETE; UPDATE数据

package jdbcCaoZuoLianXi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Driver;

/*
 	1.注册驱动
 	---告知JVM使用的是哪一个数据库的驱动
	2.获得连接
	---使用JDBC中的类完成对MySQL数据库的连接
	3.获得语句执行平台
	---通过连接对象获取对SQL语句的执行者对象
	4.执行sql语句
	---使用执行者对象,向数据库执行SQL语句
	        获取到数据库的执行后的结果
	5.处理结果
	---
	6.释放资源
	---调用一堆close();
*/
public class JDBCDemo {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 1.注册驱动---使用反射技术,将驱动类加入到内容---
		// 使用Java.sql.DriverManager类静态方法registerDriver(driver driver)
		// Driver 每个驱动类必须实现的接口,参数传递,MySQL驱动程序中的实现类
		// --DriverManager.registerDriver(new Driver());//通过源代码中发现,这种写法注册2次驱动程序 new
		// 了两个Driver()
		Class.forName("com.mysql.cj.jdbc.Driver");
		// 使用以上语句注册驱动

		// 2.获得数据库的连接 DriverManager类中的静态方法
		// static Connection getConnection(String url, String user,String password);
		// 返回值是Connection接口的实现类,在mysql驱动程序
		// url:数据库地址 jdbc:mysql://连接主机的IP地址:端口号//数据库名字
		String url = "jdbc:mysql://localhost:3306/mybase";
		String username = "root";
		String password = "123";
		Connection con = DriverManager.getConnection(url, username, password);
		//System.out.println(con);
		
		
		//3.获得语句执行平台,通过数据库连接对象,获取到SQL语句的执行者对象
		//con对象调用方法 Statement createStatement(),获取Statement对象,将SQL语句发送到数据库
		//返回值是Statement接口的实现类对象,在mysql驱动里边
		Statement stat = con.createStatement();
		System.out.println(stat);
		
		//4.执行sql语句
		//通过执行者对象调用方法执行SQL语句,并返回他生成的结果
		//int executeUpdate(String sql)  执行数据库中的SQL语句,insert delete update
		//返回值int 是操作成功数据多少行的行数
		int row = stat.executeUpdate("INSERT INTO sort(sname,sprice,sdesc) VALUES (' 汽车',500000,'疯狂涨价');");
		System.out.println(row);
		
		//6.释放资源
		stat.close();
		con.close();
	}
}

① 在JAVA中使用SQL语句SELECT

package jdbcCaoZuoLianXi;

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

public class JDBCDemo01 {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 1.注册驱动---使用反射技术,将驱动类加入到内容---

		Class.forName("com.mysql.cj.jdbc.Driver");

		// 2.获得数据库的连接 DriverManager类中的静态方法

		String url = "jdbc:mysql://localhost:3306/mybase";
		String username = "root";
		String password = "123";
		Connection con = DriverManager.getConnection(url, username, password);

		// 3.获得语句执行平台,通过数据库连接对象,获取到SQL语句的执行者对象

		Statement stat = con.createStatement();
		// 拼写查询的SQL语句
		String sql = " SELECT * FROM sort";

		// 4.调用执行者对象方法,执行sql语句获取结果
		// ResultSet executeQuery(String sql) 执行SQL语句中的select查询语句
		// 返回值ResultSet接口的实现类对象,实现类在mysql驱动中
		ResultSet rs = stat.executeQuery(sql);
		// 5.处理结果集
		// ---ResultSet接口方法boolean next()返回true,有结果集,返回false没有结果集
		System.out.println(rs.next());

		// 获取每列的数据,使用的是ResultSet接口的方法getXXX,建议写Stringlieming
		while (rs.next()) {
			System.out.println(rs.getInt("sid") + " " + rs.getString("sname") + " " + rs.getDouble("sprice") + " "
					+ rs.getString("sdesc"));
			//这里课以用getObject或者getString偷懒
		}

		// 6.释放资源
		rs.close();
		stat.close();
		con.close();

	}
}

③ 用户登录

package jdbcCaoZuoLianXi;

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

public class JDBCDemo2 {
	public static void main(String[] args) throws Exception {
		Class.forName("com.mysql.cj.jdbc.Driver");
		String url = "jdbc:mysql://localhost:3306/mybase";
		String username = "root";
		String password = "123";
		Connection con = DriverManager.getConnection(url, username, password);
		Statement stat = con.createStatement();
		System.out.println("请输入用户名");
		Scanner sc = new Scanner(System.in);
		String name = sc.next();
		System.out.println("请输入密码");
		String pass = sc.next();
		
		String sql = "SELECT * FROM users WHERE username = '"+name+ "' AND PASSWORD = '"+ pass+"'";
		ResultSet rs = stat.executeQuery(sql);
		while(rs.next()) {
			System.out.println(rs.getString("username") + "  "+ rs.getString("password"));
		}
		sc.close();
		rs.close();
		stat.close();
		con.close();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值