1.新建一个new project项目
2.点击next
3.取一个名字
在java文件夹下面创建文件
创建名字为
1.Controller -- 用于接受用户传过来的数据
2.Serive -- 用于处理数据的业务
3.Dao -- 用于容器里面的增删改查
4.entry -- 主方法入口
5.Util -- 直接调用包
6.pojo -- 创建对象
点击右侧的Database
选择mysql
输入自己的账号和密码,然后点击OK
点击创建数据库表
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL COMMENT '姓名',
`number` varchar(20) DEFAULT NULL COMMENT '学号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='学生表';
在pojo里面创建一个学生类Student
package pojo;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student(int id, String name, String number) {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
数据库增删改查工具类
public class JDBCDemo {
/**
* 创建学生表
* CREATE TABLE `student` (
* `id` int(11) NOT NULL AUTO_INCREMENT,
* `name` varchar(10) DEFAULT NULL COMMENT '姓名',
* `number` varchar(20) DEFAULT NULL COMMENT '学号',
* PRIMARY KEY (`id`)
* ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='学生表';
*
* @param args
* @throws Exception
*/
//TODO 先跑一下主方法
public static void main(String[] args) throws Exception {
// 增加
add("刘一", "s20220315");
add("陈二", "s20220316");
add("张三", "s20220317");
add("李四", "s20220318");
add("王五", "s20220319");
add("赵六", "s20220320");
// 删除
delete(1);
// 修改
update(1, "王二", "123456");
// 查询
select();
}
/**
* 增加学生
*
* @param name 姓名
* @param number 学号
* @throws Exception
*/
private static void add(String name, String number) throws Exception {
Connection conn = getConnection();
//3. 定义sql
String sql = "INSERT INTO `student`(`name`, `number`) VALUES ('" + name + "', '" + number + "')";
//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5. 执行sql
int count = stmt.executeUpdate(sql);
//6. 处理结果
if (count > 0) {
System.out.println("执行成功");
}
//7. 释放资源
stmt.close();
conn.close();
}
/**
* 删除学生
*
* @param id id
* @throws Exception
*/
public static void delete(Integer id) throws Exception {
Connection conn = getConnection();
//3. 定义sql
String sql = "DELETE FROM student WHERE id = " + id;
//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5. 执行sql
int count = stmt.executeUpdate(sql);
//6. 处理结果
if (count > 0) {
System.out.println("执行成功");
}
//7. 释放资源
stmt.close();
conn.close();
}
/**
* 修改学生
*
* @param id id
* @param name 姓名
* @param number 学号
* @throws Exception
*/
public static void update(Integer id, String name, String number) throws Exception {
Connection conn = getConnection();
//3. 定义sql
String sql = "UPDATE `student` SET `name` = '" + name + "', `number` = '" + number + "' WHERE `id` = " + id;
System.out.println("修改sql语句:" + sql);
//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5. 执行sql
int count = stmt.executeUpdate(sql);
//6. 处理结果
if (count > 0) {
System.out.println("执行成功");
}
//7. 释放资源
stmt.close();
conn.close();
}
/**
* 查询所有学生
*
* @throws Exception
*/
public static ArrayList<Student> select() {
ArrayList<Student> students=new ArrayList<>();
try{
Connection conn = getConnection();
//3. 定义sql
String sql = "select * from student";
//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5. 执行sql
ResultSet rs = stmt.executeQuery(sql);
//6. 处理结果
// 6.1 光标向下移动一行,并且判断当前行是否有数据
while (rs.next()) {
// 6.2获取数据 getXxx()
int id = rs.getInt("id");
String name = rs.getString("name");
String number = rs.getString("number");
Student student = new Student(id, name, number);
students.add(student);
}
//7. 释放资源
stmt.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
} finally {
}
return students;
}
public static Connection getConnection() throws Exception {
//1. 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获取连接
String url = "jdbc:mysql://127.0.0.1:3306/demo?useSSL=false";
String username = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
然后点击运行
执行成功
执行成功
执行成功
执行成功
执行成功
执行成功
修改sql语句:UPDATE `student` SET `name` = '王二', `number` = '123456' WHERE `id` = 1
如果执行不了,请在pom.xml
在<build>标签上面写入
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
在dao文件创建一个接口StudentDao
import com.itheima.pojo.Student;
import java.util.ArrayList;
import com.itheima.pojo.Student;
import java.util.ArrayList;
public interface StudentDao {
/***
* findAllData 查询所有数据
* @return
*/
ArrayList<Student> findAllData();
}
在dao文件下面创建一个impl文件夹在创建一个StudentDaoImpl
import com.itheima.dao.StudentDao;
import com.itheima.pojo.Student;
import com.itheima.util.JDBCDemo;
import java.util.ArrayList;
public class StudentDaoImpl implements StudentDao {
@Override
public ArrayList<Student> findAllData() {
ArrayList<Student> list = JDBCDemo.select();
return list;
}
}
Service文件夹创建一个StudentService接口
import com.itheima.dao.StudentDao;
import com.itheima.dao.impl.StudentDaoImpl;
import com.itheima.pojo.Student;
import com.itheima.service.StudentService;
public interface StudentService {
ArrayList<Student> findStudent();
}
在进入service文件创建一个impl文件
import com.itheima.dao.StudentDao;
import com.itheima.pojo.Student;
import com.itheima.util.JDBCDemo;
public class StudentServiceImpl implements StudentService {
private StudentDao studentDao = new StudentDaoImpl();
@Override
public ArrayList<Student> findStudent() {
ArrayList<Student> list = studentDao.findAllData();
return list;
}
}
在controller文件创建一个StudentController
import com.itheima.pojo.Student;
import com.itheima.service.StudentService;
import com.itheima.service.impl.StudentServiceImpl;
import java.util.ArrayList;
public class StudentController {
private StudentService studentService = new StudentServiceImpl();
public void find(){
ArrayList<Student> list = studentService.findStudent();
if (list.size() == 0){
System.out.println("暂无数据");
return;
}
System.out.println("id\t\t\t年龄\t\t\t名字");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
public static void main(String[] args) {
new StudentController().find();
}
}