ssm的简单增删改查

本文通过myEclipse工具详细介绍了如何整合Spring、SpringMVC和MyBatis(SSM)框架,完成数据库的增删改查。首先介绍了Spring、SpringMVC和MyBatis的基本概念,接着演示了创建数据库、项目结构设计、实体类创建、添加依赖、DAO接口、SQL映射、配置文件编写、Service层和Web层的实现过程,最后展示了前端页面的交互效果。

使用 myEclipse 工具完成

在写代码之前我们先介绍一下要用到的springSpringMVC 以及 MyBatis 框架

Spring介绍:

spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控制反转(IoC )和面向切面( AOP )的容器框架。

SpringMVC介绍
Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在Spring Web Flow 里面。 Spring MVC 分离了 控制器 、模型 对象 、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis介绍
MyBatis 本是 apache 的一个开源项目 iBatis , 2010 年这个项目由apache software foundation 迁移到了 google code ,并且改名为 MyBatis 。MyBatis 是一个基于 Java 的 持久层 框架。 iBATIS 提供的 持久层 框架包括SQL Maps 和 Data Access Objects ( DAO ) MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。 MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs ( Plain Old Java Objects ,普通的 Java 对象)映射成数据库中的记录。

下面我们开始写代码

1.第一步创建数据库

/*
Navicat MySQL Data Transfer

Source Server : ****
Source Server Version : 50624
Source Host : 127.0.0.1:3306
Source Database : sping_mybatis

Target Server Type : MYSQL
Target Server Version : 50624
File Encoding : 65001

Date: 2019-08-28 09:32:36
*/

SET FOREIGN_KEY_CHECKS=0;


– Table structure for flower


DROP TABLE IF EXISTS flower;
CREATE TABLE flower (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
anothername varchar(255) NOT NULL,
property varchar(255) NOT NULL,
price double(10,0) NOT NULL,
production varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;


– Records of flower


INSERT INTO flower VALUES (‘1’, ‘opopo’, ‘ioioiuihjhj’, ‘jkjk’, ‘30’, ‘yiutyrdfg’);
INSERT INTO flower VALUES (‘2’, ‘百日草’, ‘金金菊’, ‘菊科’, ‘12’, ‘北非’);
INSERT INTO flower VALUES (‘3’, ‘sfdfsdf’, ‘fsdfsd’, ‘uiuiuiu’, ‘85’, ‘fsdfsfds’);
INSERT INTO flower VALUES (‘9’, ‘jkjkj’, ‘fds’, ‘fsfds’, ‘25’, ‘000’);
INSERT INTO flower VALUES (‘10’, 'dsadsa ', ‘jkjkj’, ‘ioio’, ‘7858’, ‘fdsfs’);
INSERT INTO flower VALUES (‘12’, ‘fsdfsdf’, ‘zxzx’, ‘xzx’, ‘777’, ‘dsdf’);

2.项目整体结构

在这里插入图片描述

3.接下来是创建实体类

package cn.pojo;

public class user {
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAnothername() {
return anothername;
}
public void setAnothername(String anothername) {
this.anothername = anothername;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getProduction() {
return production;
}
public void setProduction(String production) {
this.production = production;
}
private int id;
private String name;
private String anothername;
private String property;
private double price;
private String production;

}

4.然后是添加相关jar 包

在这里插入图片描述

导入相关jar 包后还要添加依赖 按住 shift 键 选中第一个jar 包 然后在点击最后一个 右键 选中 —— bulid Path ——Add to Build Parth
在这里插入图片描述

5 创建DAO接口【在mybatis中 mapper就相当于dao】

package cn.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.pojo.user;

public interface userDao {
List getStudents(); //查看
int addStudents(user user); //增加
int deleteStudents(@Param(“id”)Integer id); //删除
int updateStudents(user user); //修改
List getStudentss(@Param(“id”)Integer id); //id查看
}

6 写 sql 语句

<?xml version="1.0" encoding="UTF-8"?> SELECT * from flower INSERT INTO `sping_mybatis`.`flower` (`name`, `anothername`, `property`, `price`, `production`) VALUES (#{name}, #{anothername},#{property},#{price},#{production}); UPDATE `sping_mybatis`.`flower` SET `name`=#{name}, `anothername`=#{anothername}, `property`=#{property}, `price`=#{price}, `production`=#{production} WHERE (`id`=#{id}); DELETE from flower WHERE id=#{id} SELECT * from flower WHERE id=#{id}

有 2 点补充
1、namespace必须与对应的接口全类名一致。
2、id必须与对应接口的某个对应的方法名一致即必须要和UserMapper.java接口中的方法同名

7 编写配置文件

配置文件是整个项目的 重点 需要配置的内容在下面有详细的解释。(头部 有需要可以去 spring 或 mybatis 官方文档中查找)

1.applicationContext.xml 配置文件

头部
在这里插入图片描述


classpath:database.properties







<bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
         <property name="configLocation" value="classpath:mybatis-config.xml"></property>
   </bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
          <constructor-arg name="sqlSessionFactory" ref="sqlsessionFactory"></constructor-arg>
         
   </bean>
<!-- 4/注解注入service和dao -->
  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="cn.dao"></property>
  </bean>

<context:component-scan base-package=“cn.service,cn.dao”></context:component-scan>

<!-- 5/配置事务管理器 -->
<!-- 6/注解做事务管理器 -->
<!-- 7. -->
  <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"></property>
  </bean>
   <tx:annotation-driven transaction-manager="txManager" />

2.导入 database.peopertise —log4j.properties
在这里插入图片描述
3.log4j.properties 配置文件 内容如下:

log4j.rootLogger=debug,con

log4j.appender.con=org.apache.log4j.ConsoleAppender

log4j.appender.con.layout=org.apache.log4j.PatternLayout€
log4j.appender.con.layout.ConversionPattern=%d{MM-dd HH:mm:ss}[%p]%c%n -%m%n

4. mybatis-config.xml 配置文件

在这里插入图片描述
5. springmvc.xml 配置文件
头部
在这里插入图片描述

 <context:component-scan base-package="cn.web"></context:component-scan>
 <mvc:annotation-driven></mvc:annotation-driven>
 
 <!-- 配置试图 -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/"></property>
    <property name="suffix" value=".jsp"></property> 
 </bean>
  </beans>

**5. web.xml 配置文件 **
前后端的交互、

头部在这里插入图片描述


index.jsp



springmvc
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath*:springmvc.xml

1



springmvc
/


contextConfigLocation
classpath*:applicationContext.xml


org.springframework.web.context.ContextLoaderListener

encoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encoding /*

8 写 Service 层

在这里插入图片描述

1.serviveDao 中的代码

package cn.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.pojo.user;

public interface serviceDao {
List getStudents(); //查看
int addStudents(user user); //增加
int deleteStudents(@Param(“id”)Integer id); //删除
int updateStudents(user user); //修改
List getStudentss(@Param(“id”)Integer id); //id查看
}

2.serviceDaoImp 中的代码

package cn.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.pojo.user;
import cn.dao.userDao;

@Service(“serviceDao”)
public class serviceDaoImp implements serviceDao {

  @Resource(name="userDao")
  @Autowired
private userDao  userDao ;
public List<user> getStudents() {
	// TODO Auto-generated method stub
	return userDao.getStudents();
}

public int addStudents(user user) {
	// TODO Auto-generated method stub
	return userDao.addStudents(user);
}

public int deleteStudents(Integer id) {
	// TODO Auto-generated method stub
	return userDao.deleteStudents(id);
}

public int updateStudents(user user) {
	// TODO Auto-generated method stub
	return userDao.updateStudents(user);
}

public List<user> getStudentss(Integer id) {
	// TODO Auto-generated method stub
	return userDao.getStudentss(id);
}

}

9.web层

package cn.web;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.pojo.user;
import cn.service.serviceDao;

@Controller
public class oracleController {
@Autowired
@Resource(name=“serviceDao”)
private serviceDao service;

  @RequestMapping("/getStudents")
  public String   getStudents(Model model){
	  List<user> list=service.getStudents();
	  model.addAttribute("list", list);
      return "index";

}

	  @RequestMapping("addStudents")
     public String  addStudents(user user){
		 int i=service.addStudents(user);
		 if (i>0) {
			 System.out.println("------"+i);
		   	   return "redirect:/getStudents";
		}
		 else{
			 return "index";
		 }
		 
     }
	  
	  
	  @RequestMapping("deleteJsp/{id}")          //updateStudents
	     public String  deleteJsp(@PathVariable("id")Integer id){
			 System.out.println("---------------------------");
			  int i=service.deleteStudents(id);
			 if (i>0) {
				 System.out.println("------"+i);
			   	   return "redirect:/getStudents";
			}
			 else{
				 return "index";
			 }
			 
	     }
	  
	// 单条明细修改跳转到修改页面
		@RequestMapping("editgo")
		public ModelAndView editgo(int id) {
			user c = (user) service.getStudentss(id);
			ModelAndView mav = new ModelAndView("edit");
			mav.addObject("c", c);
			return mav;
		}
	  
	  
   
	    @RequestMapping("updateStudents")          //updateStudents
	     public String  updateStudents(user user){
			 System.out.println("---------------------------");
			  int i=service.updateStudents(user);
			 if (i>0) {
			   	   return "redirect:/getStudents";
			}
			 else{
				 return "index";
			 }
			 
	     }
 }

10 最后是前端代码

1.主页 (index。jsp)

花絮信息查询

新增
      </c:forEach>
   </table>
花絮编号花絮名称别名科属价格原产地操作
${list.id}${list.name }${list.anothername }${list.property }${list.price }${list.production }删除 修改

2.添加页面 (add页面)

**2.修改页面页面 **
在这里插入图片描述

到此 简单的整合SSM 【基本的操作内容已经完成】 让你们看下界面运行

地址:
在这里插入图片描述

在这里插入图片描述
这样就成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值