部分一(util):將常用代碼封裝方法的類,
包括:注冊、建立連接物件、資料庫處理物件、物件銷毀
部分二(DAO):封裝增刪改查
部分三(Test):測驗
空資料庫:

部分一代碼(資料庫密碼打上*了):
import java.sql.*;
//部分一:注冊、建立連接物件、資料庫處理物件、物件銷毀
public class Student_table_Util {
private Connection conn = null;
private PreparedStatement ps = null;
//注冊
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//獲取連接物件
public void createCon(){
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","***");
} catch (SQLException e) {
e.printStackTrace();
}
}
//獲取資料庫操作物件
public PreparedStatement getPre(String sql){
this.createCon();
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
//增刪改的物件銷毀(無ResultSet)
public void close(){
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//查操作的物件銷毀
public void close(ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
this.close();
}
}
部分二代碼:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
//部分二:對表增刪改查
public class Student_table_DAO {
private Student_table_Util util = new Student_table_Util();
//增添資料操作
public int insert(String no,String name,String classno){
String sql = "insert into student_table(no,name,classno) values(?,?,?)";
PreparedStatement ps = util.getPre(sql);
int chance = 0;
try {
ps.setInt(1,Integer.valueOf(no));
ps.setString(2,name);
ps.setInt(3,Integer.valueOf(classno));
chance = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally{
util.close();
return chance;
}
}
//洗掉資料操作
public int del(String no){
String sql = "delete from student_table where no = ?";
PreparedStatement ps = util.getPre(sql);
int chance = 0;
try{
ps.setInt(1,Integer.valueOf(no));
chance = ps.executeUpdate();
} catch (SQLException e){
e.printStackTrace();
} finally{
util.close();
return chance;
}
}
//查找操作(全部)
public List<Student> sel(){
String sql = "select * from student_table";
PreparedStatement ps = util.getPre(sql);
List<Student> result = new ArrayList<>();
ResultSet rs = null;
try {
rs = ps.executeQuery();
while(rs.next()){
Student student = new Student(rs.getInt("no"),rs.getString("name"),rs.getInt("classno"));
result.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
util.close(rs);
return result;
}
}
//改
public int Update(String no,String name,String classno){
String sql = "update student_table set name=?,classno=? where no=?";
PreparedStatement ps =util.getPre(sql);
int chance = 0;
try {
ps.setString(1,name);
ps.setInt(2,Integer.valueOf(classno));
ps.setInt(3,Integer.valueOf(no));
chance = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally{
util.close();
return chance;
}
}
}
class Student{
int no;
String name;
int classno;
public Student(int no, String name, int classno) {
this.no = no;
this.name = name;
this.classno = classno;
}
public Student() {
}
}
部分三代碼:
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Student_table_DAO std = new Student_table_DAO();
Scanner s = new Scanner(System.in);
while(true){
switch(print()){
case 1:{
List<Student> list = std.sel();
for(int i=0;i<list.size();i++){
System.out.println("學號:"+list.get(i).no+" 姓名:"+list.get(i).name+" 班級編號:"+list.get(i).classno);
}
break;
}
case 2:{
System.out.println("請依次輸入新同學的學號,姓名,班級編號");
String no = s.next();
String name = s.next();
String classno = s.next();
int chance = std.insert(no,name,classno);
if(chance!=0){
System.out.println("添加成功");
}else{
System.out.println("添加失敗");
}
break;
}
case 3:{
System.out.println("請要洗掉資料庫中的同學的學號");
String no = s.next();
int chance = std.del(no);
if(chance!=0){
System.out.println("洗掉成功");
}else{
System.out.println("洗掉失敗");
}
break;
}
case 5:{
System.out.println("請輸入要修改資料的同學的學號");
String no = s.next();
System.out.println("請依次輸入新的姓名和班級編號");
String name = s.next();
String classno = s.next();
int chance = std.Update(no,name,classno);
if(chance!=0){
System.out.println("修改成功");
}else{
System.out.println("修改失敗");
}
break;
}
case 6:{
System.exit(1);
}
}
}
}
public static int print(){
System.out.println("******歡迎來到資料庫管理系統******");
System.out.println("1:查看資料庫");
System.out.println("2:增加資料");
System.out.println("3:洗掉資料");
System.out.println("5:改動資料");
System.out.println("6:退出系統");
Scanner scanner = new Scanner(System.in);
return scanner.nextInt();
}
}
測驗截圖:
增:

刪:
改:
查:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/330228.html
標籤:其他
上一篇:【Java書籍送送送】MapReduce的安裝和基礎編程
下一篇:MySQL 資料庫簡介
