Service的增删改查项目

Service的增删改查项目

搭建后端步骤:
1.创建数据库
2.搭建数据库连接池

#数据库连接池
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///exam?characterEncoding=utf8
username=root
password=123456
#参数
#初始化池子的连接数量
initialSize=10
#最大池子连接数量
maxActive=50
#最长等待时间
maxWait=3000

3.在tools工具包中创建DBUtil德鲁伊的工具类

//德鲁伊的工具类
public class DBUtil {

	// 数据库访问池
	private static DataSource pool;

	static {
		Properties pro = new Properties();
		InputStream is = DbUtils.class.getClassLoader().getResourceAsStream("db.properties");

		try {
			pro.load(is);
			pool = DruidDataSourceFactory.createDataSource(pro);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// 提供连接数据的方法
	public static DataSource getDataSource() {
		return pool;
	}

	public static void main(String[] args) {
		Connection con; // 连接
		try {
			con = pool.getConnection();
			System.out.println(con);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

前端页面index.jsp全局格式

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>全局显示</title>
  </head>
  <body>
      <table border="1" align="center" width="600px">
          <tr>
            <td>客户名称</td>
            <td>客户地址</td>
            <td>客户来源</td>
            <td>客户电话</td>
            <td>客户等级</td>
            <td>修改操作</td>
            <td>删除操作</td>
          </tr>
          <c:forEach items="${list}" var="customer" varStatus="status" >
              <tr>
                  <td>${customer.name}</td>
                  <td>${customer.address}</td>
                  <td>${customer.source}</td>
                  <td>${customer.phone}</td>
                  <td>${customer.level}</td>
                  <td>
                      <a href="${pageContext.request.contextPath}/update?id=${customer.id}">修改</a>
                  </td>
                  <td>
                      <a href="${pageContext.request.contextPath}/delete?id=${customer.id}">删除</a>
                  </td>
              </tr>
          </c:forEach>
          <tr>
              <td colspan="7"><a href="${pageContext.request.contextPath}/add.jsp">添加用户信息</a></td>
          </tr>
      </table>

  </body>
</html>

添加类

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>页面添加</title>
</head>
<body>
  <form action="${pageContext.request.contextPath}/add" method="post">
         客户名称:<input type="text" name="name" >
         客户地址:<input type="text" name="address" ><br>
         客户来源:<input type="text" name="source" >
         客户电话:<input type="text" name="phone" ><br>
         客户级别:<input type="text" name="level" ><br>
         <input type="submit" value="保存">
    </form>
</body>
</html>

在pojo中写实体类 带属性的类

public class Customer {
	private Integer id;
	private String name;
	private String address;//地址
	private String source;//来源
	private String phone;//电话
	private String level;//等级
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getSource() {
		return source;
	}
	public void setSource(String source) {
		this.source = source;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getLevel() {
		return level;
	}
	public void setLevel(String level) {
		this.level = level;
	}
	public Customer(Integer id, String name, String address, String source, String phone, String level) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
		this.source = source;
		this.phone = phone;
		this.level = level;
	}
	public Customer() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Customer [id=" + id + ", name=" + name + ", address=" + address + ", source=" + source + ", phone="
				+ phone + ", level=" + level + "]";
	}
	
	

}

在dao层里面完成接口(接口里面一般是增删改查抽象方法)再把pojo实体类的对象注入进来 在创建dao层实现类(里面一般是增删改查的方法,例如数据库语句)这一层跟数据库关系很大

//在dao层写一个接口
public interface CustomerDao {
	
	// 查询所有客户信息
	List<Customer> queryAll();
	
	   // 添加客户信息
    void addCustomer(Customer customer);

}
public class CustomerDaoImpl implements CustomerDao {

	// 使用 DBUtils工具类
	QueryRunner qr = new QueryRunner(DBUtil.getDataSource());// 查询数据源

	@Override // 查询
	public List<Customer> queryAll() {
		String sql = "select * from customer";
		List<Customer> list = null;
		try {
			list = qr.query(sql, new BeanListHandler<Customer>(Customer.class));
			System.out.println(list);
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public void addCustomer(Customer customer) {
		String sql = "insert into customer values(null,?,?,?,?,?)";
		try {
			int count = qr.update(sql, customer.getName(), customer.getAddress(), customer.getSource(),
					customer.getPhone(), customer.getLevel());
			if (count > 0) {
				System.out.println("添加数据成功!");
			} else {
				System.out.println("添加数据失败!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

.这一层是服务层service 就是把dao层的数据传输给servlet服务器  有实体类注入的对象,有接口,有实现类,

public interface CustomerService {
	 // 查询所有客户信息
    List<Customer> queryAll();
    
    // 添加客户信息
    void addCustomer(Customer customer);
}
//服务层
public class CustomerServiceImpl implements CustomerService{

	 // 属性注入
    private CustomerDao cd = new CustomerDaoImpl();

    //查询
    @Override
    public List<Customer> queryAll() {

        return cd.queryAll();
    }

    //添加
	@Override
	public void addCustomer(Customer customer) {
		cd.addCustomer(customer);
		
	}

}

controller控制器中创建增删改查的最终方法 里面有服务器的dogGet 和dogPost 注意这一层有注解@WebServlet

@WebServlet("/add")
public class AddServlet extends HttpServlet {
    // 关联service层
    // 属性注入
    private CustomerService  cs = new CustomerServiceImpl();

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        Customer customer = new Customer();
        try {
            BeanUtils.populate(customer, request.getParameterMap());
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 调用service层的方法
        cs.addCustomer(customer);

        // 跳转到查询所有信息的Servlet中
        response.sendRedirect(request.getContextPath()+"/queryAll");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的SSM框架增删改查项目的示例,以下是具体步骤: 1. 创建数据库表 首先,您需要在MySQL数据库中创建一个名为“user”的表,该表包含以下字段:id(主键)、name、age、email。 2. 配置SSM框架 在搭建SSM框架时,您需要在pom.xml文件中引入相应的依赖,如MyBatis、Spring和Spring MVC等。 3. 创建实体类 创建一个名为User的Java实体类,该类包含与数据库表中相同的字段,并添加相应的getter和setter方法。 4. 创建Mapper接口 创建一个名为UserMapper的Mapper接口,并添加相应的增删改查方法。 5. 创建Mapper映射文件 创建一个名为UserMapper.xml的Mapper映射文件,并配置相应的SQL语句,用于实现增删改查操作。 6. 创建Service接口及实现类 创建一个名为UserServiceService接口,并添加相应的增删改查方法。然后创建一个名为UserServiceImpl的Service实现类,并注入UserMapper,并在实现类中实现UserService接口中定义的方法。 7. 创建Controller类 创建一个名为UserController的Controller类,并注入UserService,并在该类中添加相应的增删改查方法。 8. 配置Spring MVC 在web.xml文件中配置DispatcherServlet,并在springmvc-servlet.xml文件中配置相应的视图解析器和扫描包路径。 9. 创建JSP页面 创建一个名为index.jsp的JSP页面,并在该页面中添加相应的表单,用于实现增删改查操作。 以上是一个简单的SSM框架增删改查项目的示例,您可以根据您的需要进行修改和完善。希望对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值