java客户关系管理系统_【JavaWeb】客户关系管理系统

前言

为了巩固开发的流程,我们再拿一个客户关系管理系统来练手...!

成果图

我们完成的就是下面的项目!

9mxqkq3.png

搭建配置环境

配置Tomcat

导入开发包

建立开发用到的程序包

RERM9ic.png

在数据库创建相对应的表

CREATE TABLE customer (

id VARCHAR(40) PRIMARY KEY,

name VARCHAR(20) NOT NULL,

gender VARCHAR(10) NOT NULL,

birthday DATE,

cellphone VARCHAR(30) NOT NULL,

email VARCHAR(30),

preference VARCHAR(200),

type VARCHAR(20),

description VARCHAR(255)

);

开发实体

开发实体十分简单,对照着数据库的表就行了!

private String id;

private String name ;

private String gender ;

private Date birthday ;

private String cellphone ;

private String eamil ;

private String preference ;

private String type ;

private String description;

//....各种setter、getter

开发获取数据库连接池的Utils

导入配置文件

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/zhongfucheng

root

root

5

10

5

20

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/zhongfucheng

root

root

5

10

5

20

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@//localhost:1521/事例名...

用户名

密码

5

10

5

20

开发提供数据连接池的工具类

public class Utils2DB {

private static ComboPooledDataSource comboPooledDataSource = null;

static {

//它会自动寻找配置文件,节点为mysql的数据库(默认就是Mysql)

comboPooledDataSource = new ComboPooledDataSource();

}

public static DataSource getDataSource() {

return comboPooledDataSource ;

}

public static Connection connection() {

try {

return comboPooledDataSource.getConnection();

} catch (SQLException e) {

e.printStackTrace();

throw new RuntimeException("数据库初始化失败了!");

}

}

}

开发UUID工具类##

public class WebUtils {

public static String makeId() {

return UUID.randomUUID().toString();

}

}

开发DAO

DAO应该提供增加客户和查询用户的功能

增加用户

public void addCustomer(Customer customer) {

QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

String sql = "INSERT INTO customer (id,name, gender, birthday, cellphone, preference, type, description) VALUES (?, ?, ?, ?, ?, ?, ?, ?,?)";

//得到用户传递进来的数据

String id = customer.getId();

String name = customer.getName();

String gender = customer.getGender();

String cellphone = customer.getCellphone();

String email = customer.getEmail();

String preference = customer.getPreference();

String type = customer.getType();

String description = customer.getDescription();

//对于日期,要转换一下

Date date = customer.getBirthday();

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

String birthday = simpleDateFormat.format(date);

try {

//向数据库插入数据

queryRunner.update(sql, new Object[]{id, name, gender, birthday, cellphone, email, preference, type, description});

//插入记录成功!

} catch (SQLException e) {

//如果出现了异常,就抛出Dao异常吧(自定义的异常)

e.printStackTrace();

throw new DaoException("添加用户出错了!");

}

}

测试增加用户

写完一个功能,不要急着去写其他的功能,先测试一下!

@Test

public void add() {

//为了测试的方便,直接使用构造函数了!

Customer customer = new Customer("1", "zhongfucheng", "男", new Date(), "1234", "aa@sina.com", "打代码", "高贵的用户", "我是个好人");

CustomerDao customerDao = new CustomerDao();

customerDao.addCustomer(customer);

}

好的,没有报错!再看看数据库-----------只要是中文的数据,都乱码了!

9eKLvnp.png

查询用户

将所有的客户查询出来就行了!

//得到所有的用户

public List getAll() {

QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

String sql = "SELECT * FROM customer";

try {

List customers = (List) queryRunner.query(sql, new BeanListHandler(Customer.class));

//如果集合大于个数大于0,就返回集合,不大于0,就返回null

return customers.size() > 0 ? customers : null;

} catch (SQLException e) {

e.printStackTrace();

throw new DaoException("获取所有的用户出错了!");

}

}

测试查询用户

@Test

public void find() {

CustomerDao customerDao = new CustomerDao();

List customers = customerDao.getAll();

for (Customer customer : customers) {

System.out.println(customer.getName());

}

}

gHO46Xg.png

修改用户信息

修改用户信息首先要知道用户的信息,在web端,只有id能唯一标识用户,我们需要通过id,获取用户全部信息(也就是Customer对象)

public Customer find(String id) {

QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

String sql = "SELECT * FROM customer WHERE id = ?";

try {

Customer customer = (Customer) queryRunner.query(sql, new BeanHandler(Customer.class), new Object[]{id});

return customer;

} catch (SQLException e) {

e.printStackTrace();

throw new DaoException("查找用户失败了");

}

}

修改用户都是外边传递个对象进来,Dao层取出对象的数据,从而对数据库的数据进行修改!

public void update(Customer customer) {

QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

String sql = "UPDATE customer set name=?,gender=?,birthday=?,cellphone=?,email=?,preference=?,type=?,description=? WHERE id = ?";

try {

queryRunner.update(sql, new Object[]{customer.getName(), customer.getGender(), customer.getBirthday(),customer.getCellphone(), customer.getEmail(), customer.getPreference(), customer.getType(), customer.getDescription(), customer.getId()});

} catch (SQLException e) {

e.printStackTrace();

throw new DaoException("更新失败");

}

}

测试修改用户

@Test

public void update() {

CustomerDao customerDao = new CustomerDao();

//我们已经知道了某id,通过id获取得到用户信息(Customer)

String id = "043f7cce-c6f1-4155-b688-ba386cae1636";

Customer customer = customerDao.find(id);

//修改用户信息

customer.setName("看完博客要点赞");

customerDao.update(customer);

}

原来该用户的名字是d

8Pmhvtg.png

测试完之后:

qDPN8PF.png

删除用户

通过外界传递进来的id,就可以删除数据库表中的记录了

public void delete(String id) {

QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

String sql &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值