JDBC的使用

主要调用的类

1、DriverManager:驱动管理器类

要操作数据口,首先就要与数据库创建连接,得到连接对象(Connection)。Java.sql包中的DriverManager类定义了连接数据库的方法

public static Connection getConnection(String url, String user, String password)

其中url称为连接串,体现了连接数据库的连接协议、数据库名称、端口、主机号等信息

2、Connection:数据库连接接口

通过DriverManager类的getConnection方法,将获得连接对象,在API中用Connection表示连接对象,获得连接对象后就表示已经与数据库创建了连接。对数据库操作,也就是执行sql语句,需要借助语句对象(Statement),方法如下
Statement createStatement()

3、Statement:语句对象接口

在获得Statement对象之后,Statement提供了executeUpdate、executeQuery方法,分别执行不同的sql语句Int executeUpdate(String sql):执行增加、删除、修改操作的sql语句,返回值为操作的总行数;
ResultSet executeQuery(String sql):执行查询语句,返回值为查询结果集合。

4、ResultSet:结果集接口

JDBC中查询结果都封装在ResultSet对象中,该接口提供了便利结果集的方法,主要的有下面几个:
boolean next():使结果集下标下移,仍有结果返回true,遍历结束,返回false
getXXX(String columnName)根据字段名返回字段名的值,XXX表示数据类型
getXXX(int index)根据索引返回值

实战

1、加载驱动
在工程目录中创建lib文件夹,将下载好的JDBC放到该文件夹下,如下图所示:
在这里插入图片描述
2、连接
增改删操作

package Demo; 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
/**
 * 使用JDBC访问数据库
 * 进行增删改操作
 *
 */
public class Test {
	//用户名
	private static final String USER = "root";
	//密码
	private static final String PASSWD = "root";
	//连接串
	//useUnicode=true&characterEncoding=utf8解决数据编码问题mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码
	//serverTimezone=GMT%2B8北京时间东八区解决时间问题,UTC表示全球标准时间
	//useSSL=false指定是否用ssl连接
	//ssl连接是Web浏览器与服务器之间的身份认证和加密数据传输.
	private static final String URL = "jdbc:mysql://localhost:3306/lj?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
	//驱动程序类的名字
	private static final String driverClassName = "com.mysql.cj.jdbc.Driver";
	//创建连接对象
	static Connection connection = null;
	//创建语句对象
	static Statement statement =  null;
	
	public static void main(String[] args) {
        try {
        //  1、注册数据库的驱动,使用反射注册驱动
        	//加载驱动程序
			Class.forName("com.mysql.cj.jdbc.Driver");//将驱动类加载到内存
			System.out.println("注册驱动成功");
         //2、获得数据库的连接访问权限
        	//使用DriverManager类的getConnection方法获取连接对象
			connection = DriverManager.getConnection(URL, USER, PASSWD);
			System.out.println("连接数据库成功");
         //3、向数据库发送执行的SQL执行语句
        	//使用createStatement获得语句对象
			statement = connection.createStatement();
			//编写SQL语句
			String sql = "insert into user_1 values('liangjie','123456')";
			//使用executeUpdate执行增删改语句
			statement.executeUpdate(sql);
         //4、获取执行的返回结果
        } catch (ClassNotFoundException e) {//抛出异常
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (SQLException e) {
			e.printStackTrace();
		}
         //5、关闭数据库连接
		 finally {//必须执行
			 if(statement != null) {
				 try {
					 statement.close();
				 } catch (SQLException e) {
					 e.printStackTrace();
				 }
			 }
			 if(connection != null) {
				 try {
					 connection.close();
				 } catch (SQLException e) {
					 e.printStackTrace();
				 }
			 }
		 }	}
}

查询操作

package Demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class Test_1 {
/*
 * 使用JDBC连接数据库
 * 进行查询操作
 */
	
	private static String USER = "root";
	private static String PASSWORD = "root";
	//连接串
		//useUnicode=true&characterEncoding=utf8解决数据编码问题mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码
		//serverTimezone=GMT%2B8北京时间东八区解决时间问题,UTC表示全球标准时间
		//useSSL=false指定是否用ssl连接
		//ssl连接是Web浏览器与服务器之间的身份认证和加密数据传输.
	private static String URL = "jdbc:mysql://localhost:3306/lj?userUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
	private static final String driverClassName = "com.mysql.cj.jdbc.Driver";
	static Connection connection = null;
	static Statement statement = null;
	static ResultSet result = null;
	public static void main(String[] args) {
		try {
			Class.forName(driverClassName);
			connection = DriverManager.getConnection(URL, USER, PASSWORD);
			statement = connection.createStatement();
			
			String sql = "select * from user_1";
			result = statement.executeQuery(sql);
			while(result.next()) {
				System.out.println(result.getString("user")+""+result.getString(2));
			}
		}catch(ClassNotFoundException e) {
			e.printStackTrace();
		}catch(SQLException e) {
			e.printStackTrace();
		}
		 finally {//必须执行
			 if(statement != null) {
				 try {
					 statement.close();
				 } catch (SQLException e) {
					 e.printStackTrace();
				 }
			 }
			 if(connection != null) {
				 try {
					 connection.close();
				 } catch (SQLException e) {
					 e.printStackTrace();
				 }
			 }
		 }
	}
}

懒的打字了,所以直接上代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值