目录
一、准备工作
二、准备数据
代码
三、存放MySQL驱动jar包
四、编程步骤
五、代码实现
1.增
代码
执行结果
2.改
代码
执行结果
3.查
代码
执行结果
4.删
代码
执行结果
一、准备工作
下载MySQL驱动jar包,资源直达:http://t.csdn.cn/TZRBw
二、准备数据
创建所需的数据库及表
代码
代码语言:javascript复制#创建数据库
CREATE DATABASE jdbc;
use jdbc;
#创建student表
CREATE TABLE Student(
stuId INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(50),
sex VARCHAR(2),
email VARCHAR(50),
phone VARCHAR(20)
);
三、存放MySQL驱动jar包
在eclipse中创建Java项目,然后导入MySQL驱动jar包创建lib目录,用于存放当前项目需要的所有jar包选择jar包,右键执行build path / Add to Build Path
四、编程步骤
1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
2.创建连接
String url ="jdbc:mysql://localhost:3306/lesson23_jdbc?serverTimezone=GMT
+8&characterEncoding=utf8&useSSL=true";
3.得到执行sql语句的对象
4.执行sql语句,并返回结果
5.处理结果
6.关闭连接
五、代码实现
Driver接口:Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。同于加载驱动 DriverManager类:使用该类注册驱动。 Connection接口:Java程序和数据库的连接对象。 Statement接口:用于执行静态的SQL语句,并返回一个结果对象。SQL语句的执行者,通过Connection接口对象获取。 ResultSet接口:用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。 PreparedStatement接口;Statement的子接口,用于执行预编译的SQL语句。
1.定义Student类,该类与前面创建的数据库表student的表结构相对应
代码语言:javascript复制package test1;
public class Student {
private int stuld;
private String sname;
private String sex;
private String email;
private String phone;
public Student(int stuld, String sname, String sex, String email, String phone) {
super();
this.stuld = stuld;
this.sname = sname;
this.sex = sex;
this.email = email;
this.phone = phone;
}
public int getStuld() {
return stuld;
}
public void setStuld(int stuld) {
this.stuld = stuld;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Student [stuld=" stuld ", sname=" sname ", sex=" sex ", email=" email ", phone=" phone
"]";
}
}
1.增
2.编写向数据库表增加一条记录的测试类代码(AddDemo1)
代码
代码语言:javascript复制package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class AddDemo {
private static Statement statement;
private static Statement createStatement;
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1、加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");// 反射技术,保证内存中只有一个Driver对象
// 2、创建连接
String url="jdbc:mysql://localhost:3306/jdbc?serverTimezone=GMT+8&characterEncoding=utf8&useSSL=true";
String user="root";// 数据库用户名
String pw="123456";// 数据库密码(每个人都不一样我的是123456)
Connection conn=DriverManager.getConnection(url, user, pw);//补全快捷键ctrl 1
System.out.println(conn);//测试是否连接上mysql数据库
// 3、得到执行sql语句的对象
java.sql.Statement statement = conn.createStatement();//补全快捷键ctrl 1
// 4、执行sql语句,并返回结果
String sql="INSERT INTO student VALUES(NULL,'tom','男','tom@163.com','18888888888')";//执行语句
int i=statement.executeUpdate(sql);
// 5、处理结果
if (i > 0) {
System.out.println("添加成功");
}
// 6、关闭连接
statement.close();
conn.close();
}
}
执行结果
2.改
编写修改数据库表中一条记录的测试类代码
代码
代码语言:javascript复制package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class UpdateDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?characterEncoding=utf8&useSSL=true", "root", "123456");
Statement statement = conn.createStatement();
statement.execute("INSERT INTO student VALUES(NULL,'zhangsan','男','zhangsan@163.com','16666666666')");
int i=statement.executeUpdate("UPDATE student SET sname='rose',sex='女' WHERE stuid=2");
if(i>0) {
System.out.println("修改成功!");
}
statement.close();
conn.close();
}
}
执行结果
3.查
编写查询数据库表中所有记录的测试类代码
代码
代码语言:javascript复制package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mysql.cj.xdevapi.Statement;
public class FindAllDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?characterEncoding=utf8&useSSL=true", "root","123456");
java.sql.Statement statement=connection.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM student");
List<Student> stu = new ArrayList<Student>();
while (rs.next()) {
Student s = new Student();// 创建一个Student对象
// 封装Student对象:把每个记录的字段值赋给Student对象的成员变量
s.setStuld(rs.getInt("stuId"));
s.setSname(rs.getString("sname"));
s.setSex(rs.getString("sex"));
s.setEmail(rs.getString("email"));
s.setPhone(rs.getString("phone"));
// 把封装的Student对象添加到stu集合
stu.add(s);
}
stu.forEach(s -> System.out.println(s));
rs.close();
statement.close();
connection.close();
}
}
执行结果
4.删
编写从数据库表删除一条记录的测试类代码
代码
代码语言:javascript复制package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DeleteDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc?characterEncoding=utf8&useSSL=true", "root", "123456");
Statement statement = connection.createStatement();
int i= statement.executeUpdate("DELETE FROM student WHERE stuid=2");
if(i>0) {
System.out.println("删除成功");
}
statement.close();
connection.close();
}
}