java语句实现数据库的增删查改(面向对象方式,以student为例)

共创建了三个包 分别为com.hkd.myschool.biz(包含main类和studentBiz类),com.hkd.myschool.dao(包含BaseDao类和StudentDao类),

com.hkd.myschool.enty(包含student类) ,具体实现代码如下:

package com.hkd.myschool.biz;


import java.util.Scanner;


public class main {

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
studentBiz sb =new studentBiz();
int option = 0;
show();
while(option<5){
option =scan.nextInt();
switch (option) {
case 1:
sb.search();//查询学生
show();
break;
case 2:
sb.delete();//删除学生
show();
break;
case 3:
sb.add();//增加学生
show();
break;
case 4:
sb.update();//修改学生信息
show();
break;
}

}
}


private static void show() {
System.out.println("****************************************");
System.out.println("*                1、查询学生                                    *");
System.out.println("*                2、删除学生                                    *");
System.out.println("*                3、增加学生                                    *");
System.out.println("*                4、修改学生信息                            *");
System.out.println("****************************************");
System.out.print("请选择你要执行的功能:");
}




}

package com.hkd.myschool.biz;


import java.util.List;
import java.util.Scanner;


import com.hkd.myschool.dao.StudentDao;
import com.hkd.myschool.entity.student;


public class studentBiz {
student stu =new student();
Scanner scan = new Scanner(System.in);


public void add(){
StudentDao sd =new StudentDao();
System.out.print("请输入要添加的学生姓名:");
String name=scan.next();
stu.setName(name);
System.out.print("请输入要添加的学生年龄:");
int age =scan.nextInt();
stu.setAge(age);
System.out.print("请输入要添加的学生电话:");
String tel =scan.next();
stu.setTel(tel);
int a =sd.add(stu);
if(a>0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
}

public void delete(){
StudentDao sd =new StudentDao();
search();
System.out.print("输入你要删除的学号:");
int id =scan.nextInt();
int a =sd.delete(id);
if(a>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}

}

public void update(){
StudentDao sd =new StudentDao();
search();
System.out.println("请输入要更改的编号:");
stu.setStudentNo(scan.nextInt());
System.out.println("请输入要更改的姓名:");
stu.setName(scan.next());
System.out.println("请输入要更改的年龄:");
stu.setAge(scan.nextInt());
System.out.println("请输入要更改的电话号码:");
stu.setTel(scan.next());
int a =sd.update(stu);
if(a>0){
System.out.println("更改成功");
}else{
System.out.println("更改失败");
}




}

public void search(){
StudentDao sd =new StudentDao();
System.out.println("编号\t姓名\t年龄\t电话号码");
List <student> list =sd.selectAll();
for(student stu:list){
System.out.println(stu.getStudentNo()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getTel());
}
}
}

package com.hkd.myschool.dao;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class BaseDao {

String DBUser ="root";//用户名
String DBPwd= "root";//密码
String DBHost ="localhost";//服务器地址
String DBName ="myschool";//数据库名称
int Port1 =3306;//数据库端口
int Port2 =1433;
int DBType =1;//1代表mysql 2 代表sqlserver
Connection conn;//连接对象
PreparedStatement ps;//查询对象
ResultSet rs;//结果集

public void open(){
try{
if(DBType==1){
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://"+DBHost+":"+Port1+"/"+DBName,DBUser,DBPwd);
}else if(DBType==2){
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://"+DBHost+":"+Port2+";databasename="+DBName,DBUser,DBPwd);
}
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("驱动加载失败");
e.printStackTrace();
}
catch(Exception e){
System.out.println("数据库链接失败");
e.printStackTrace();
}
}
public void close(){
try{
if(rs!=null) rs.close();//如果结果集存在,就关闭结果集
ps.close();//关闭查询对象
conn.close();//关闭链接对象
}
catch(Exception e){
e.printStackTrace();
}
}
/**
* 执行增删改
* @param sql语句
* @param parm参数
* @return 受影响的行数
*/
public int executeUpdate(String sql,Object[] parm){
open();
int a =0;
try{
ps=conn.prepareStatement(sql);
if(parm!=null){
for(int i=0;i<parm.length;i++){
ps.setObject(i+1, parm[i]);
}
}
a=ps.executeUpdate();//执行

}catch(SQLException e){
e.printStackTrace();
}
close();
return a;
}
/**
* 执行查询结果集
* @param sql 语句
* @param parm 参数
* @return 结果集
*/
public ResultSet executeQuery(String sql,Object[] parm){
open();
try{
ps=conn.prepareStatement(sql);
if(parm!=null){
for(int i=0;i<parm.length;i++){
ps.setObject(i+1, parm[i]);
}
}
rs=ps.executeQuery();//执行

}catch(SQLException e){
e.printStackTrace();
}
return rs;
}
}

package com.hkd.myschool.dao;


import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import com.hkd.myschool.entity.student;


public class StudentDao extends BaseDao {

public int add(student stu){
String sql="insert into student values(null,?,?,?)";
Object parm[]={stu.getName(),stu.getAge(),stu.getTel()};
int a =executeUpdate(sql, parm);
return a;
}
public int delete(int id){
String sql="delete from student where studentNo=? ";
Object parm[]={id};
int a =executeUpdate(sql, parm);
return a;

}
public int update(student stu){
String sql="update student set  name=? , age=? , tel=? where studentNo =?";
Object parm[]={stu.getName(),stu.getAge(),stu.getTel(),stu.getStudentNo()};
int a =executeUpdate(sql, parm);
return a;
}
public List<student> selectAll(){
String sql="select * from student";
List<student> list=new ArrayList<student>();
rs=executeQuery(sql, null);
try {
while(rs.next()){
student stu = new student();
stu.setStudentNo(rs.getInt("studentNo"));
stu.setName(rs.getString("name"));
stu.setAge(rs.getInt("age"));
stu.setTel(rs.getString("tel"));
list.add(stu);
}
close();//在这里进行关闭

catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;

}
}

package com.hkd.myschool.entity;


public class student {
String name;
int age;
int studentNo;
String tel;


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;
}
public int getStudentNo() {
return studentNo;
}
public void setStudentNo(int studentNo) {
this.studentNo = studentNo;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}



}

猜你喜欢

转载自blog.csdn.net/fredrik/article/details/72877357