java做电话簿的需求目的_jdbc模拟电话本。

package com.liu.dianhua;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**

* 业务处理类

* 对添加、查询、修改、修改、删除、排序等信息子菜单的业务逻辑

* 以及访问数据库的具体实现

* @author Administrator

*

*/

//业务处理类

public class Operate

{

private List list; //集合

// 用户添加信息业务逻辑控制

public void addLogic()

{

while(true)

{

switch(new TelNoteRegex().menuRegex(1, 3))

{case 1:

TelNoteRegex te =new TelNoteRegex();

addOperation(te.nameRegex(),te.ageRegex(),

te.sexRegex(),te.telNumRegex(), te.addressRegex()) ;

break;

case 2:

List lp =new Operate().showAll();//查找所有

for(Person pe:lp)

{

System.out.println(pe);

}

break;

case 3:

new Menu().mainMenu();//返回上一级主菜单

break;

default :

System.out.println("您输入的内容超出范围");

new Menu().addMenu();//返回添加用户的菜单

break;

}

//break;

}

}

//用户查询信息业务逻辑控制

public void searchLogic()

{

while(true)

{

switch(new TelNoteRegex().menuRegex(1, 7))

{case 1: //按姓名查找

System.out.println("请输入姓名,1-10位字母");

Scanner sc=new Scanner(System.in);

String xm =sc.nextLine();

Operate op=new Operate();

List pe=op.searchByName(xm);

for(Person p:pe)//遍历符合姓名的结果

{

System.out.println(p);

}

break;

case 2://按年龄个查找

System.out.println("请输入年龄,1-100");

Scanner sc1=new Scanner(System.in);

String nl= sc1.nextLine();

Operate op1=new Operate();

List pe2=op1.searchByAge(nl);//调用按年龄查找的方法

for(Person p:pe2)//遍历符合年龄的结果

{

System.out.println(p);

}

break;

case 3://按性别查找

System.out.println("请输入性别,男、 m或M,女、 f或F");

Scanner sc2=new Scanner(System.in);

String sex =sc2.nextLine();

Operate op2=new Operate();

List pe3=op2.searchBySex(sex);//调用按性别查找的方法

for(Person p:pe3)//遍历符合性别的结果

{

System.out.println(p);

}

break;

case 4://按电话查找

System.out.println("输入电话号码");

Scanner sc3=new Scanner(System.in);

String telnum =sc3.nextLine();

Operate op3=new Operate();

Listpe4=op3.searchByTelNum(telnum);//调用按电话查找的方法

for(Person p:pe4)//遍历符合电话的结果

{

System.out.println(p);

}

break;

case 5://按地址查找

System.out.println("请输入地址");

Scanner sc4=new Scanner(System.in);

String address =sc4.nextLine();

Operate op4=new Operate();

Listpe5=op4.searchByAdd(address);//调用按电话查找的方法

for(Person p:pe5)//遍历符合地址的结果

{

System.out.println(p);

}

break;

case 6:

List lp =new Operate().showAll();//查找所有

for(Person pk:lp)

{

System.out.println(pk);

}

break;

case 7:

new Menu().mainMenu();//返回上一级主菜单

break;

default :

System.out.println("您输入的内容超出范围");

new Menu().searchMenu();//返回查找用户的菜单

break;

}

//break;

}

}

// 修改信息业务逻辑控制

public void modifyLogicLogic()

{

while(true)

{

switch(new TelNoteRegex().menuRegex(1, 3))

{

case 1:

List lp =new Operate().showAll();//查找所有

for(Person pk:lp)

{

System.out.println(pk);

}

break;

case 2:

Menu mn=new Menu();

mn.subModifyMenu();

break;

case 3:

new Menu().mainMenu();//返回上一级主菜单

break;

default :

System.out.println("您输入的内容超出范围");

new Menu().modifyMenu();//返回修改用户的菜单

break;

}

//break;

}

}

//删除信息业务逻辑控制

public void deleteLogic()

{

while(true)

{

switch(new TelNoteRegex().menuRegex(1, 4))

{

case 1:

List lp =new Operate().showAll();//查找所有

for(Person pk:lp)

{

System.out.println(pk);

}

break;

case 2:

System.out.println("请输入要删除的序号");

Scanner sc=new Scanner(System.in);

int a=sc.nextInt();

Operate op=new Operate();

op.delete(a);

break;

case 3:

new Operate().deleteAll();

break;

case 4:

new Menu().mainMenu();

break;

default :

System.out.println("您输入的内容超出范围");

new Menu().deleteMenu();//返回删改用户的菜单

break;

}

}

}

//排序信息业务逻辑控制

public void orderLogic()

{

while(true)

{

switch(new TelNoteRegex().menuRegex(1, 5))

{

case 1://按姓名排序

List pe2=new Operate().orderName();//调用按姓名排序的方法

for(Person p:pe2)//遍历符合年龄的结果

{

System.out.println(p);

}

break;

case 2://按年龄排序

List pe3=new Operate().orderAge();//调用按姓名排序的方法

for(Person p:pe3)//遍历符合年龄的结果

{

System.out.println(p);

}

break;

case 3://按性别排序

List pe4=new Operate().orderSex();//调用按姓名排序的方法

for(Person p:pe4)//遍历符合年龄的结果

{

System.out.println(p);

}

break;

case 4:

List lp =new Operate().showAll();//查找所有

for(Person pk:lp)

{

System.out.println(pk);

}

break;

case 5:

new Menu().mainMenu();

break;

default :

System.out.println("您输入的内容超出范围");

new Menu().orderMenu();//返回排序用户的菜单

break;

}

break;

}

}

///添加新用户信息

public boolean addOperation (String name,String age,String sex,String telnum,String address)

{

boolean rtn=false;

//构建连接池

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

try {

//获取数据库连接

Connection conn=cp.getConnection();

String sql= "insert into person "

+ "values(test_seq.nextval,?,?,?,?,?)";

//获得访问数据库的声明

PreparedStatement ps =conn.prepareStatement(sql);

ps.setString(1, name);

ps.setString(2, age);

ps.setString(3, sex);

ps.setString(4, telnum);

ps.setString(5, address);

ps.executeUpdate();

System.out.println("添加联系人成功");

ps.close();

conn.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return rtn;

}

//查询全部用户信息

public List showAll()

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

try

{

//配置连接池cp

conn=cp.getConnection();

//获取操作数据库声明

Statement st = conn.createStatement();

//查询结果集

ResultSet rs = st.executeQuery("select * from person");

//便利结果集

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

rs.close();

st.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//按姓名查询用户信息

public List searchByName(String name)

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="select *from person where name=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, name);

ResultSet rs = ps.executeQuery();

//便利结果集

if(rs.next())

{

rs = ps.executeQuery();

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

}

else

{

System.out.println("该姓名的信息不存在,请重新输入");

}

rs.close();

ps.close();

conn.close();

cp.close();

} catch (SQLException e)

{

e.printStackTrace();

}

return list;

}

//按年龄查询用户信息

public List searchByAge(String age)

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="select *from person where age=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, age);

ResultSet rs = ps.executeQuery();

//便利结果集

if(rs.next())

{

rs = ps.executeQuery();

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

}

else

{

System.out.println("该年龄的用户信息不存在,请重新输入");

}

rs.close();

ps.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//按性别查询用户信息

public List searchBySex(String sex)

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="select *from person where sex=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, sex);

ResultSet rs = ps.executeQuery();

//便利结果集

if(rs.next())

{

rs = ps.executeQuery();

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

}

else

{

System.out.println("该性别的用户信息不存在,请重新输入");

}

rs.close();

ps.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//按电话号码查询用户信息

public List searchByTelNum(String telnum)

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="select *from person where telnum=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, telnum);

ResultSet rs = ps.executeQuery();

//便利结果集

if(rs.next())

{

rs = ps.executeQuery();

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

}

else

{

System.out.println("该电话的信息不存在,请重新输入");

}

rs.close();

ps.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//按地址查询用户信息

public List searchByAdd(String address)

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="select *from person where sex=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, address);

ResultSet rs = ps.executeQuery();

if(rs.next())//便利结果集

{

rs = ps.executeQuery();

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

}

else

{

System.out.println("该地址的用户信息不存在,请重新输入");

}

rs.close();

ps.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//修改指定记录信息

public void modify()

{

//Menu m=new Menu();

//m.subModifyMenu();//调用修改用户记录的子菜单

while(true)

{

switch(new TelNoteRegex().menuRegex(1, 6))

{case 1: //按姓名修改

System.out.println("请输入要修改姓名的id");

Scanner sc0=new Scanner(System.in);

int id=sc0.nextInt();

System.out.println("请输入姓名,1-10位字母");

Scanner sc=new Scanner(System.in);

String xm =sc.nextLine();

Operate op=new Operate();

op.modifyName(xm, id);

new Menu().subModifyMenu();

break;

case 2://按年龄个修改

System.out.println("请输入要修改年龄 的id");

Scanner s=new Scanner(System.in);

int id1=s.nextInt();

System.out.println("请输入年龄,1-100");

Scanner sc1=new Scanner(System.in);

String nl= sc1.nextLine();

new Operate().modifyAge(nl, id1);

new Menu().subModifyMenu();

break;

case 3://按性别修改

System.out.println("请输入要修改性别的id");

Scanner s1=new Scanner(System.in);

int id2=s1.nextInt();

System.out.println("请输入性别,男、 m或M,女、 f或F");

Scanner sc2=new Scanner(System.in);

String sex =sc2.nextLine();

new Operate().modifysex(sex, id2);

new Menu().subModifyMenu();

break;

case 4://按电话修改

System.out.println("请输入要修改电话的id");

Scanner s2=new Scanner(System.in);

int id3=s2.nextInt();

System.out.println("输入电话号码");

Scanner sc3=new Scanner(System.in);

String telnum =sc3.nextLine();

new Operate().modifyTelnum(telnum, id3);

new Menu().subModifyMenu();

break;

case 5://按地址修改

System.out.println("请输入要修改地址的id");

Scanner s3=new Scanner(System.in);

int id4=s3.nextInt();

System.out.println("请输入地址");

Scanner sc4=new Scanner(System.in);

String address =sc4.nextLine();

new Operate().modifyAddress(address, id4);

new Menu().subModifyMenu();

break;

case 6://返回上一级

new Menu().modifyMenu();//修改用户信息子菜单

}

}

}

//根据id修改姓名

public void modifyName(String name,int id)

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="update Person set name=?where id=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, name);

ps.setInt(2, id);

int k=ps.executeUpdate();//查询结果集

if(k==1)

{

System.out.println("修改姓名成功");

}

else

{

System.out.println("修改姓名失败,该用户id不存在");

}

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//根据id修改年龄

public void modifyAge(String age,int id)

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="update Person set age=?where id=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, age);

ps.setInt(2, id);

int k=ps.executeUpdate();//查询结果集

if(k==1)

{

System.out.println("修改年龄成功");

}

else

{

System.out.println("修改年龄失败,该用户id不存在");

}

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//根据id修改性别

public void modifysex(String sex,int id)

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="update Person set sex=?where id=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, sex);

ps.setInt(2, id);

int k=ps.executeUpdate();//查询结果集

if(k==1)

{

System.out.println("修改性别成功");

}

else

{

System.out.println("修改性别失败,该用户id不存在");

}

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//根据id修改号码

public void modifyTelnum(String telnum,int id)

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="update Person set telnum=?where id=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, telnum);

ps.setInt(2, id);

int k=ps.executeUpdate();//查询结果集

if(k==1)

{

System.out.println("修改号码成功");

}

else

{

System.out.println("修改号码失败,该用户id不存在");

}

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//根据id修改地址

public void modifyAddress(String address,int id)

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="update Person set address=?where id=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setString(1, address);

ps.setInt(2, id);

int k=ps.executeUpdate();//查询结果集

if(k==1)

{

System.out.println("修改地址成功");

}

else

{

System.out.println("修改地址失败,该用户id不存在");

}

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//删除指定用户信息

public void delete(int id)

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="delete Person where id=?";

PreparedStatement ps=conn.prepareStatement(sql);

ps.setInt(1, id);

int k=ps.executeUpdate();//查询结果集

if(k==1)

{

System.out.println("删除成功");

}

else

{

System.out.println("删除失败,该用户id不存在");

}

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//删除全部用户信息

public void deleteAll()

{

//获得数据库连接

Connection conn;

try

{

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

//配置连接池cp

conn=cp.getConnection();

String sql="truncate table Person ";

PreparedStatement ps=conn.prepareStatement(sql);

ps.executeUpdate();//查询结果集

System.out.println("电话博内容已清空,请继续操作");

conn.close();

}

catch (SQLException e)

{

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

//按用户姓名排序信息

public List orderName( )

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

try

{

//配置连接池cp

conn=cp.getConnection();

//获取操作数据库声明

Statement st = conn.createStatement();

//查询结果集

ResultSet rs = st.executeQuery("select * from Person order by name");

//便利结果集

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

rs.close();

st.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//按用户年龄排序信息

public List orderAge()

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

try

{

//配置连接池cp

conn=cp.getConnection();

//获取操作数据库声明

Statement st = conn.createStatement();

//查询结果集

ResultSet rs = st.executeQuery("select * from Person order by age");

//便利结果集

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

rs.close();

st.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

//按用户性别排序信息

public List orderSex()

{

list = new ArrayList<>();

//获得数据库连接

Connection conn;

ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");

try

{

//配置连接池cp

conn=cp.getConnection();

//获取操作数据库声明

Statement st = conn.createStatement();

//查询结果集

ResultSet rs = st.executeQuery("select * from Person order by sex");

//便利结果集

while(rs.next())

{

Person pe =new Person();

pe.setId(rs.getInt("id"));

pe.setName(rs.getString("name"));

pe.setAge(rs.getString("age"));

pe.setSex(rs.getString("sex"));

pe.setTelNum(rs.getString("telnum"));

pe.setAddress(rs.getString("address"));

list.add(pe);

}

rs.close();

st.close();

conn.close();

cp.close();

} catch (SQLException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

return list;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值