JDBC连接数据库

JDBC功能简介

首先JDBC是java自带的与数据库连接的一个类,基本功能与Mybatis相同(虽然MyBatis使用起来比它更加方便),它的优势在于由于是由java语言编写完成,所以具有很好的跨平台特性,使用JDBC编写的数据库应用程序可以在任何支持java的平台上运行,而不必在不同的平台上编写不同的应用程序。所以现在依然有一些企业在使用这种方法连接数据库。

JDBC主要功能如下

(1)建立与数据库或者其他数据源的链接
(2)向数据库发送SQL命令
(3)处理数据库的返回结果

实例

代码是最容易让人理解的,所以下面附上一个代码来让大家理解。

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

public class TestJDBC{
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动,没有这个后面的无效
		String URL="数据库地址";
		String User="数据库用户名";
		String Password="数据库密码";
		Connection conn=DriverManager.getConnection(URL,User,Password);//获取数据库连接
		Statement st=conn.createStatement();//通过上述连接操作数据库,使用Statement类实现对数据库中数据的增删改查操作
		//以select语句为例
		ResultSet msg=st.executeQuery("select * from user");//查找user表内容
		while(msg.next()) {//循环查找到的输出数据
			System.out.println(msg.getString("username")+" "+msg.getString("password"));
		}
		//使用完后关闭资源
		msg.close();
		st.close();
		conn.close();
	}
}

Statement中的方法

上面我们看到了我们使用Statement st=conn.createStatement();来使用tatement类实现对数据库中数据的增删改查操作,那么有哪些Statement呢?Statement中的方法又有哪些呢?
首先有三种Statement对象,它们都作为在给定链接上执行SQL语句的包容器:Statement、PreparedStatement(它从Statement继承而来)和CallableStatement(它从PreparedStatement继承而来)。它们都专用于发送特定类型的SQL语句:

Statement类型作用
Statement用于执行不带参数的简单的SQL语句;Statement接口提供了执行语句和获取结果的基本方法。
PerparedStatement用于执行带或不带IN参数的预编译SQL语句;PeraredStatement接口添加处理IN参数的方法。
CallableStatement用于执行对数据库已存储过程的调用;CallableStatement添加处理OUT参数的方法。

而Statement中常用的方法如下:

方法名作用
execute()运行语句,返回是否有结果集。
executeQuery()运行查询语句,返回ReaultSet对象。
executeUpdata()运行更新操作,返回更新的行数。
addBatch()增加批处理语句。
executeBatch()执行批处理语句。
clearBatch()清除批处理语句。

增加数据库中记录

文章上面已经有一个查询实例了,那么接下来我将给出一个插入语句的实现。

package com.hyx.tree;

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

public class TreeMap {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动,没有这个后面的无效
		String URL="数据库地址";
		String User="数据库用户名";
		String Password="数据库密码";
		Connection conn=DriverManager.getConnection(URL,User,Password);//获取数据库连接
		
		//插入语句的实现
		String s = "" + "insert into user(id,user_name,user_password) values(" + "2,?,123)";
		PreparedStatement pst = conn.prepareStatement(s);

		//插入两条语句
		pst.setString(1, "UZI");
		pst.setString(2, "Bang");

		//关闭资源
		pst.execute();
		pst.close();
		conn.close();
	}
}

删除数据库中记录

package com.hyx.tree;

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

public class TreeMap {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动,没有这个后面的无效
		String URL="数据库地址";
		String User="数据库用户名";
		String Password="数据库密码";
		Connection conn=DriverManager.getConnection(URL,User,Password);//获取数据库连接

		String s = "delete from user where user_name=?";
		PreparedStatement pst = conn.prepareStatement(s);


		pst.setString(1, "UZI");
		pst.setString(2, "Bang");

		// 关闭资源
		pst.execute();
		pst.close();
		conn.close();
	}
}

改变数据库记录

package com.hyx.tree;

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

public class TreeMap {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动,没有这个后面的无效
		String URL="数据库地址";
		String User="数据库用户名";
		String Password="数据库密码";
		Connection conn=DriverManager.getConnection(URL,User,Password);//获取数据库连接

		 String s="update user set user_name=? ";
	     PreparedStatement pst=conn.prepareStatement(s);


		pst.setString(1, "UZI");
		pst.setString(2, "Bang");

		// 关闭资源
		pst.execute();
		pst.close();
		conn.close();
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值