基于javaweb+mysql的springbootcrm客户关系管理系统(java+springboot+maven+mysql)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBootcrm客户关系管理系统(java+springboot+maven+mysql)
Springboot项目CRM客户关系管理系统:
系统实现了CRM客户关系系统的基本功能,主要有看板(当月参与的业务机会、当月转化情况、将要结束的业务机会等)、业务机会(初步接触中、需求分析中、协商方案中、商业谈判中的业务机会)、客户管理、联系人管理、个人日报管理、查看团队日报、主数据管理(组织架构管理)、系统管理(用户管理、角色管理、菜单管理)。
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(98, 98, 98)));
pack();
}// </editor-fold>
//GEN-END:initComponents
private void jtb_userMouseClicked(java.awt.event.MouseEvent evt) {
DefaultTableModel tableModel = (DefaultTableModel) jtb_user.getModel();
int selectRows = jtb_user.getSelectedRows().length;// 取得用户所选行的行数
int selectedRowIndex = jtb_user.getSelectedRow(); // 取得用户所选单行
if (selectRows == 1) {
String id = tableModel.getValueAt(selectedRowIndex, 0).toString();
User user = UserEbiFactory.getUserEbi().search(id);
});
jtb_user.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jtb_userMouseClicked(evt);
});
jScrollPane1.setViewportView(jtb_user);
jLabel1.setText("\u7528\u6237\u540d\uff1a");
jLabel2.setText("\u5bc6 \u7801\uff1a");
jLabel3.setText("\u89d2 \u8272\uff1a");
jcb_role.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
"Item 1", "Item 2", "Item 3", "Item 4" }));
private javax.swing.JTextField jtf_username;
// End of variables declaration//GEN-END:variables
用户服务类:
public class UserSerInterFrm extends javax.swing.JInternalFrame {
/**
*/
private static final long serialVersionUID = -8462503234613628488L;
private PageBean bean = null;
/** Creates new form UserSerInterFrm */
public UserSerInterFrm() {
jl_checkImage = new javax.swing.JLabel();
jb_login = new javax.swing.JButton();
jb_cancle = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("\u7528\u6237\u767b\u5f55");
jLabel1.setFont(new java.awt.Font("宋体", 0, 24));
jLabel1.setText("\u5ba2\u6237\u5173\u7cfb\u7ba1\u7406\u7cfb\u7edf");
jLabel2.setText("\u7528\u6237\u540d\uff1a");
jLabel3.setText("\u5bc6 \u7801\uff1a");
jLabel4.setText("\u9a8c\u8bc1\u7801\uff1a");
jb_login.setText("\u767b\u5f55");
jb_login.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_loginActionPerformed(evt);
dcm.addElement(role);
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jtb_user = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
JOptionPane.showMessageDialog(this, "修改失败!");
private void jb_addActionPerformed(java.awt.event.ActionEvent evt) {
String username = this.jtf_username.getText();
String password = this.jtf_password.getText();
User user = new User(username, password, new BigDecimal(5));
boolean b = UserEbiFactory.getUserEbi().add(user);
if (b) {
JOptionPane.showMessageDialog(this, "添加成功!");
} else {
JOptionPane.showMessageDialog(this, "添加失败!");
jb_modify)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
jb_del)))
.addContainerGap(20, Short.MAX_VALUE)));
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
return;
User user = new User(userName, password);
UserEbi userEbi = UserEbiFactory.getUserEbi();
User currentUser = userEbi.login(user);
if (currentUser == null) {
JOptionPane.showMessageDialog(this, "用户名或密码错误!");
return;
// System.out.println("登录成功");
this.dispose();
new MainFrm(currentUser).setVisible(true);
jLabel1))
.addGroup(
layout.createSequentialGroup()
.addGap(78, 78,
78)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING,
false)
.addGroup(
layout.createSequentialGroup()
.addGroup(
jb_start)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
jb_previouspage)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
jb_nextpage)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(
87,
Short.MAX_VALUE)
.addComponent(
jb_start)
.addGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(99, Short.MAX_VALUE)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(
jtf_username,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_infoActionPerformed(evt);
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addContainerGap()
});
jb_end.setText("\u672b\u9875");
jb_end.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_endActionPerformed(evt);
});
jb_nextpage.setText("\u4e0b\u4e00\u9875");
jb_nextpage.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_nextpageActionPerformed(evt);
});
jb_previouspage.setText("\u4e0a\u4e00\u9875");
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jb_end)
.addComponent(jb_nextpage)
.addComponent(jb_previouspage)
.addComponent(jb_start)
.addComponent(jLabel9)
.addComponent(jb_info))
.addGap(24, 24, 24)));
pack();
}// </editor-fold>
javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addComponent(
jLabel1)
.addGap(18,
18,
18)
.addComponent(
jtf_cusid,
javax.swing.GroupLayout.PREFERRED_SIZE,
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_nextpageActionPerformed(evt);
});
jLabel9.setText("jLabel9");
jb_info.setText("\u660e\u7ec6");
jb_info.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_infoActionPerformed(evt);
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jb_add;
private javax.swing.JButton jb_del;
private javax.swing.JButton jb_end;
private javax.swing.JButton jb_modify;
private javax.swing.JButton jb_nextpage;
private javax.swing.JButton jb_previouspage;