Java——JDBC(Java DataBase Connectivity)数据库连接技术
目录
1、什么是JDBC?
2、JDBC的本质
3、JDBC入门案例
3.1、前期准备
3.2、mysql数据库准备
3.3、测试类代码
1、什么是JDBC?
通过Java语言操作数据库,操作表中的数据。
SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。
2、JDBC的本质
是官方(sun公司)定义的一套操作所有关系型数据库的规则(接口)。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,运行时的代码其实是驱动jar包中的实现类。
在Java中要想访问数据库只能通过JDBC,JDBC是Java访问数据库的基础,其他数据库访问技术都是对JDBC的封装(Hibernate,MyBatis),JDBC是为了访问不同的数据库,提供了一种统一的访问方式,JDBC本身是Java连接数据库的一个标准,是进行数据库连接的抽象层。由Java编写的一组类和接口,接口的实现由各大数据库厂商来实现。
3、JDBC入门案例
3.1、前期准备
为了能够测试JDBC,这里利用junit进行测试,首先创建一个JavaWeb项目,在项目src包下创建一个测试类UserTest,并导入mysql-connector的jar包,这就是JDBC的核心jar包,没有它是不能调用其中的类方法的,jar包放到WEB-INF下的lib包内。
这里提供了mysql5版本和mysql8版本的jar包,对应的就是mysql的版本,如果是mysql5系列版本的就用5.16的jar包,如果是mysql8系列的版本就用8.0.16版本jar包。
链接:https://pan.baidu.com/s/1loxaN41BXlfdePT_8DDBDw
提取码:388i
添加到lib包下的jar包需要手动去导入一下右键jar包,点击ADD Library
3.2、mysql数据库准备
创建一个t_user表,自行添加数据
CREATE TABLE `t_user` (
`id` int(11) NOT NULL,
`username` varchar(20) DEFAULT NULL,
`password` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这里是我添加的数据
3.3、测试类代码
前期工作准备就绪后,就开始连接数据库,编写代码了,下面就演示一下CRUD操作
public class UserTest {
@Test
public void select_User() throws ClassNotFoundException, SQLException {
//加载mysql数据库JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
//后面test是我t_user存放的数据库名
String url="jdbc:mysql://localhost:3306/test";
//数据库账户
String username="xxx";
//数据库密码
String password="xxx";
//获取connection对象
Connection con = DriverManager.getConnection(url, username, password);
//创建statement对象
Statement statement = con.createStatement();
//查询语句得到一个ResultSet类型的结果集
ResultSet resultSet = statement.executeQuery("select * from t_user");
//遍历结果集 输出控制台 next()方法如果有结果就返回true
while (resultSet.next()){
int id = resultSet.getInt("id");
String username1 = resultSet.getString("username");
String password1 = resultSet.getString("password");
int age = resultSet.getInt("age");
System.out.println(id+" "+username1+" "+password1+" "+age);
}
}
@Test
public void add_User() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test";
String username="xxx";
String password="xxx";
//获取connection对象
Connection con = DriverManager.getConnection(url, username, password);
//创建statement对象
Statement statement = con.createStatement();
//返回int 类型 代表的是修改的条数 executeUpdate可以为insert、delete、update操作
int i = statement.executeUpdate("insert into t_user value(6,'王五','wda4822',26)");
System.out.println(i);
}
@Test
public void delete_User() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test";
String username="xxx";
String password="xxx";
//获取connection对象
Connection con = DriverManager.getConnection(url, username, password);
//创建statement对象
Statement statement = con.createStatement();
int i = statement.executeUpdate("delete from t_user where id=6");
System.out.println(i);
}
@Test
public void update_User() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test";
String username="xxx";
String password="xxx";
//获取connection对象
Connection con = DriverManager.getConnection(url, username, password);
//创建statement对象
Statement statement = con.createStatement();
int i = statement.executeUpdate("update t_user set username='宋浩',password='555sss4',age=24 where id=5 ");
System.out.println(i);
}
}