基础环境搭配
1.创建一个maven工程
2.引入项目依赖的jar包
3.引入bootstrap,jquery
4.创建项目包结构
5.编写web.xml配置文件
6.编写sping,springmvc,mybatis配置文件
7.创建数据库表
CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;
SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计表时外键不能设为not null;
RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;NO ACTION:同 RESTRICT,也是首先先检查外键;
8.使用mybatis逆向工程自动生成dao接口以及mapper映射文件
1、创建一个maven工程
创建项目成功之后,可能会报错,右键项目名称,选择最下方的Properties
2.引入项目依赖的jar包
4.0.0
com.igeek
ssm
0.0.1-SNAPSHOT
war
com.github.pagehelper
pagehelper
5.0.0
org.mybatis.generator
mybatis-generator-core
1.3.5
org.springframework
spring-webmvc
4.3.7.RELEASE
com.fasterxml.jackson.core
jackson-databind
2.8.8
org.hibernate
hibernate-validator
5.4.1.Final
org.springframework
spring-jdbc
4.3.7.RELEASE
org.springframework
spring-test
4.3.7.RELEASE
org.springframework
spring-aspects
4.3.7.RELEASE
org.mybatis
mybatis
3.4.2
org.mybatis
mybatis-spring
1.3.1
c3p0
c3p0
0.9.1
mysql
mysql-connector-java
5.1.41
jstl
jstl
1.2
javax.servlet
javax.servlet-api
3.0.1
provided
junit
junit
4.12
3.引入bootstrap,jquery
4.创建项目包结构
5.编写web.xml配置文件
ssm
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
1
dispatcherServlet
/
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceRequestEncoding
true
forceResponseEncoding
true
CharacterEncodingFilter
/*
6.编写sping,springmvc,mybatis配置文件
Springmvc
Spring和Mybatis
注:Spring的配置文件为applicationContext.xml
Mybatis的配置文件为mybatis-config.xml
dbconfig.properties则存放连接数据库的基本信息
applicationContext.xml
dbconfig.properties
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=root123
mybatis-config.xml
7.创建数据库表
8.使用mybatis逆向工程自动生成dao接口以及mapper映射文件
在项目下配置mbg.xml
在包结构下的test中,新建MBGTest.java文件
package com.igeek.crud.test;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class MBGTest {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
List warnings = new ArrayList();
boolean overwrite = true;
File configFile = new File("mbg.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
}
运行成功之后,会自动在包结构下的bean包中生成数据库表对应的实体类
在dao层中生成ssm封装好的接口(其中包含了基本的增删改查方法)
所对应的,他会在src/main/resources下的mapper中,生成接口所对应的配置语句
配置好一切之后,便可进行开发了,可以再test包中创建类测试一下,是否能成功连接数据库,调用生成接口中的方法进行增删改查
package com.igeek.crud.test;
import java.util.UUID;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.igeek.crud.bean.Department;
import com.igeek.crud.bean.Employee;
import com.igeek.crud.dao.DepartmentMapper;
import com.igeek.crud.dao.EmployeeMapper;
/*
* 使用spring的单元测试
*
*
* @ContextConfiguration主要作用就是用来指定spring配置文件的位置。
* 这个注解的作用 自动帮你创建springIOC的容器对象
* @RunWith 表示如果说方法被@Test修饰 那么使用 spring 提供的单元测试类
* */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class SpringTest {
@Autowired
private DepartmentMapper departmentMapper;
@Autowired
private EmployeeMapper employeeMapper;
@Autowired
private SqlSession sqlSession;
@Test
public void test1(){
//System.out.println(departmentMapper);
/*Department dept = new Department(10,"鱼翅");
departmentMapper.insert(dept);*/
for (int i = 8; i < 1007; i++) {
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
mapper.deleteByPrimaryKey(i);
}
//批量添加
/*for (int i = 0; i < 1000; i++) {
String uuid = UUID.randomUUID().toString().substring(0,5);
Employee emp = new Employee(null,uuid+"敖冠海","A",uuid+"qq.com",5);
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
mapper.insertSelective(emp);
}*/
}
}