使用 myEclipse 工具完成
在写代码之前我们先介绍一下要用到的spring 和 SpringMVC 以及 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
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 【基本的操作内容已经完成】 让你们看下界面运行
地址:


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

被折叠的 条评论
为什么被折叠?



