一.curd操作
增删改查(curd):Create,Update,Retrieve,Delete
package com.openlab.test;
import com.openlab.util.JDBCUtils;
import java.sql.*;
public class Test02_curd {
public static void main(String agrs[]){
// create();
// delete();
// update();
// select01();
select02(804);
}
// INSERT INTO s_student VALUES(8,'root08','root08','男',8,'8559876234','西安市太白南路')
public static void create(){
JDBCUtils jdbcUtils = new JDBCUtils();
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(JDBCUtils.DRIVER);
conn = DriverManager.getConnection(JDBCUtils.URL,JDBCUtils.USER,JDBCUtils.PASSWORD);
String sql = "INSERT INTO s_student VALUES(?,?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,8);
pstmt.setString(2,"root08");
pstmt.setString(3,"root08");
pstmt.setString(4,"男");
pstmt.setInt(5,8);
pstmt.setString(6,"8559876234");
pstmt.setString(7,"西安市太白南路");
int rows = pstmt.executeUpdate();
System.out.println(rows);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
}
// DELETE FROM s_student WHERE s_no = 8
public static void delete(){
JDBCUtils jdbcUtils = new JDBCUtils();
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(JDBCUtils.DRIVER);
conn = DriverManager.getConnection(JDBCUtils.URL,JDBCUtils.USER,JDBCUtils.PASSWORD);
String sql = "DELETE FROM s_student WHERE s_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,8);
int rows = pstmt.executeUpdate();
System.out.println(rows);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
}
//UPDATE s_student SET s_no = 9, s_user = 'root09' , s_password='root09' WHERE s_no = 6
public static void update() {
JDBCUtils jdbcUtils = new JDBCUtils();
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(JDBCUtils.DRIVER);
conn = DriverManager.getConnection(JDBCUtils.URL, JDBCUtils.USER, JDBCUtils.PASSWORD);
String sql = "UPDATE s_student SET s_no = ?, s_user = ? , s_password=? WHERE s_no = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 6);
pstmt.setString(2, "root06");
pstmt.setString(3, "root06");
pstmt.setInt(4, 9);
int rows = pstmt.executeUpdate();
System.out.println(rows);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
jdbcUtils.close(null, pstmt, conn);
}
}
//无参 SELECT * FROM teacher WHERE tno = 804
public static void select01(){
JDBCUtils jdbcUtils = new JDBCUtils();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName(JDBCUtils.DRIVER);
conn = DriverManager.getConnection(JDBCUtils.URL,JDBCUtils.USER,JDBCUtils.PASSWORD);
String sql = "SELECT * FROM teacher WHERE tno = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,804);
rs = pstmt.executeQuery();
while (rs.next()){
String no = rs.getString("tno");
String name = rs.getString("tname");
String sex = rs.getString("tsex");
Date birthday = rs.getDate("tbirthday");
String prof = rs.getString("prof");
String depart = rs.getString("depart");
System.out.println(no+"\t"+name+"\t"+sex+"\t"+birthday+"\t"+prof+"\t"+depart);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
}
//有参 SELECT * FROM teacher WHERE tno = 804
public static void select02(int tno){
JDBCUtils jdbcUtils = new JDBCUtils();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName(JDBCUtils.DRIVER);
conn = DriverManager.getConnection(JDBCUtils.URL,JDBCUtils.USER,JDBCUtils.PASSWORD);
String sql = "SELECT * FROM teacher WHERE tno = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,tno);
rs = pstmt.executeQuery();
while (rs.next()){
String no = rs.getString("tno");
String name = rs.getString("tname");
String sex = rs.getString("tsex");
Date birthday = rs.getDate("tbirthday");
String prof = rs.getString("prof");
String depart = rs.getString("depart");
System.out.println(no+"\t"+name+"\t"+sex+"\t"+birthday+"\t"+prof+"\t"+depart);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
}
}
二.数据访问层
- com.openlab.bean.Student
实体类
添加无参,有参构造方法
添加set,get方法
package com.openlab.bean;
//实体类 Student s =new Student();pojo
public class Student {
private String stuNo;
private String stuName;
private String stuSex;
private String stuBorn;
private String stuClass;
public Student() {
}
public Student(String stuNo, String stuName, String stuSex, String stuBorn, String stuClass) {
this.stuNo = stuNo;
this.stuName = stuName;
this.stuSex = stuSex;
this.stuBorn = stuBorn;
this.stuClass = stuClass;
}
public Student(String stuNo) {
this.stuNo = stuNo;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuSex() {
return stuSex;
}
public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}
public String getStuBorn() {
return stuBorn;
}
public void setStuBorn(String stuBorn) {
this.stuBorn = stuBorn;
}
public String getStuClass() {
return stuClass;
}
public void setStuClass(String stuClass) {
this.stuClass = stuClass;
}
@Override
public String toString() {
return "Student{" +
"stuNo='" + stuNo + '\'' +
", stuName='" + stuName + '\'' +
", stuSex='" + stuSex + '\'' +
", stuBorn='" + stuBorn + '\'' +
", stuClass='" + stuClass + '\'' +
'}';
}
}
- com.openlab.util.JDBCUtils
工具包
简化代码
简单封装
package com.openlab.util;
import com.mysql.cj.jdbc.Driver;
import java.sql.*;
public class JDBCUtils{
public static final String DRIVER = "com.mysql.cj.jdbc.Driver";
public static final String URL = "jdbc:mysql:///demo04?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
public static final String USER = "root";
public static final String PASSWORD = "root";
static{
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public void close(ResultSet rs ,Statement stmt , Connection conn){
try {
if(null!=rs){
rs.close();
}
if(null!=stmt){
stmt.close();
}
if(null!=conn){
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
public Connection getConnection()throws Exception{
return DriverManager.getConnection(URL,USER,PASSWORD);
}
}
- com.openlab.dao.StudentDao
学生接口
package com.openlab.dao;
import com.openlab.bean.Student;
import java.util.List;
public interface StudentDao {
public int save(Student student);
public int update(Student student);
public int delete(String stuNo);
//根据学号获取唯一的学生对象
public Student finById(String stuNo);
//获取所有学生信息
public List<Student> findALL();
}
- com.openlab.dao.impl.StudentDaoImpl
package com.openlab.dao.impl;
import com.openlab.bean.Student;
import com.openlab.dao.StudentDao;
import com.openlab.util.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class StudentDaoImpl implements StudentDao{
JDBCUtils jdbcUtils = new JDBCUtils();
// INSERT INTO student VALUES(115,'白豆芽','男','2001-02-07 13:13:14',3223)
@Override
public int save(Student student) {
Connection conn =null;
PreparedStatement pstmt = null;
int rows = -1;
try {
conn = jdbcUtils.getConnection();
pstmt = conn.prepareStatement("INSERT INTO student VALUES(?,?,?,?,?)");
pstmt.setString(1,student.getStuNo());
pstmt.setString(2,student.getStuName());
pstmt.setString(3,student.getStuSex());
pstmt.setString(4,student.getStuBorn());
pstmt.setString( 5,student.getStuClass());
rows = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
return rows;
}
@Override
// UPDATE student SET stu_name = '我不是豆芽',stu_sex = '男',stu_born='2001-01-01 12:12:12',stu_class = '221' WHERE stu_no='116'
public int update(Student student) {
Connection conn = null;
PreparedStatement pstmt = null;
int rows = -1;
try {
conn = jdbcUtils.getConnection();
pstmt = conn.prepareStatement("UPDATE student SET stu_name =?,stu_sex = ?,stu_born=?,stu_class = ? WHERE stu_no=?");
pstmt.setString(1,student.getStuName());
pstmt.setString(2,student.getStuSex());
pstmt.setString(3,student.getStuBorn());
pstmt.setString(4,student.getStuClass());
pstmt.setString(5,student.getStuNo());
pstmt.executeUpdate();
rows = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
return rows;
}
@Override
// DELETE FROM student WHERE stu_no =116
public int delete(String stuNo) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = jdbcUtils.getConnection();
pstmt = conn.prepareStatement("DELETE FROM student WHERE stu_no =?");
pstmt.setString(1,stuNo);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
jdbcUtils.close(null,pstmt,conn);
}
return 0;
}
@Override
public Student finById(String stuNo) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Student s4 = null;
try {
conn = jdbcUtils.getConnection();
pstmt = conn.prepareStatement("SELECT * FROM student WHERE stu_no = ?");
pstmt.setString(1,stuNo);
rs = pstmt.executeQuery();
while (rs.next()){
s4= new Student();
s4.setStuNo(rs.getString("stu_no"));
s4.setStuName(rs.getString("stu_name"));
s4.setStuSex(rs.getString("stu_sex"));
s4.setStuBorn(rs.getString("stu_born"));
s4.setStuClass(rs.getString("stu_class"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
jdbcUtils.close(rs,pstmt,conn);
}
return s4;
}
@Override
public List<Student> findALL() {
List<Student> list =new ArrayList<>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Student s5 = null;
try {
conn = jdbcUtils.getConnection();
pstmt = conn.prepareStatement("SELECT * FROM student ");
rs = pstmt.executeQuery();
while (rs.next()){
s5= new Student();
s5.setStuNo(rs.getString("stu_no"));
s5.setStuName(rs.getString("stu_name"));
s5.setStuSex(rs.getString("stu_sex"));
s5.setStuBorn(rs.getString("stu_born"));
s5.setStuClass(rs.getString("stu_class"));
list.add(s5);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
jdbcUtils.close(rs,pstmt,conn);
}
return list;
}
public static void main(String[] args) {
StudentDao dao = new StudentDaoImpl();
// Student s= new Student("117","白豆芽","男","2001-02-07 13:13:14","3223");
// int rows = dao.save(s);
// UPDATE student SET stu_name = '我不是豆芽',stu_sex = '男',stu_born='2001-01-01 12:12:12',stu_class = '221' WHERE stu_no='116'
// Student s2 = new Student("116","我是豆芽","男","2001-01-01 12:12:12","221");
// int rows2 = dao.update(s2);
// Student s3 = new Student("115");
// int rows3 = dao.delete(s3);
// SELECT * FROM student WHERE stu_no = 111
// Student s4 =dao.finById("111");
List s5 = dao.findALL();
System.out.println(s5);
}
}
- com.openlab.dao.impl.StudentDaoImpl2
package com.openlab.dao.impl;
import com.openlab.bean.Student;
import com.openlab.dao.StudentDao;
import javax.print.DocFlavor;
import java.util.ArrayList;
import java.util.List;
public class StudentDaoImpl2 implements StudentDao {
static List<Student> list = new ArrayList<>();
static {
Student s1 = new Student();
Student s2 = new Student();
list.add(s1);
list.add(s2);
}
@Override
public int save(Student student) {
list.add(student);
return 1;
}
@Override
public int update(Student student) {
Student s = finById(student.getStuNo());
s.setStuName(student.getStuName());
return 0;
}
@Override
public int delete(String stuNo) {
Student s = finById(stuNo);
if(null!=s){
list.remove(s);
return 1;
}else{
return 0;
}
}
@Override
public Student finById(String stuNo) {
for(Student s:list){
if(s.getStuNo().equals(stuNo)) {
list.add(s);
return s;
}
}
return null;
}
@Override
public List<Student> findALL() {
return list;
}
}