天天看點

config類搭建ssm項目

1、建立項目,先擇maven,選擇webapp

2、在pom.xmlim添加依賴

<dependencies>    
  <dependency>      
  <groupId>junit</groupId>      
<artifactId>junit</artifactId>      
<version>4.12</version>    
</dependency>    
<dependency>      
  <groupId>org.springframework</groupId>      
<artifactId>spring-jdbc</artifactId>      
<version>5.3.19</version>   
</dependency>    
<dependency>      
  <groupId>org.springframework</groupId>      
<artifactId>spring-webmvc</artifactId>      
<version>5.3.19</version>    </dependency>    
  <dependency>      
  <groupId>org.springframework</groupId>      
<artifactId>spring-test</artifactId>      
<version>5.3.22</version>    
</dependency>    
  <dependency>      
  <groupId>org.mybatis</groupId>      
<artifactId>mybatis</artifactId>      
<version>3.5.10</version>    
</dependency>    
<dependency>      
  <groupId>org.mybatis</groupId>      
<artifactId>mybatis-spring</artifactId>      
<version>2.0.7</version>    
</dependency>    
<dependency>      
  <groupId>mysql</groupId>      
<artifactId>mysql-connector-java</artifactId>      
<version>5.1.22</version>    
</dependency>    
<dependency>      
  <groupId>com.alibaba</groupId>      
<artifactId>druid</artifactId>      
<version>1.2.9</version>    
</dependency>    
<dependency>      
  <groupId>javax.servlet</groupId>      
<artifactId>javax.servlet-api</artifactId>      
<version>3.1.0</version>      
<scope>provided</scope>    
</dependency>    
<dependency>      
  <groupId>com.alibaba</groupId>      
<artifactId>fastjson</artifactId>      
<version>1.2.55</version>    
</dependency>  
</dependencies>           

3、補全java包和resources,test包

4、分層,添加com.pojo,com.mapper,com.config,com.service,com.controller,con.util

config類搭建ssm項目

5、建立jdbc.properties在resources目錄下面

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///examdb
jdbc.username=root
jdbc.password=root           
config類搭建ssm項目

6、建立JdbcConfig 類

public class JdbcConfig {   
  @Value("${jdbc.driver}")    
  private String driver;    
  @Value("${jdbc.url}")    
  private String url;    
  @Value("${jdbc.username}")    
  private String username;    
  @Value("${jdbc.password}")    
  private String password;    
  @Bean    public DataSource dataSource(){        
    DruidDataSource dataSource=new DruidDataSource();        
    dataSource.setDriverClassName(driver);        
    dataSource.setUrl(url);        
    dataSource.setUsername(username);        
    dataSource.setPassword(password);        
    return dataSource;    
  }}           

7、建立SpringConfig 類

@Configuration@ComponentScan({"com.service"})
@PropertySource("jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
public class SpringConfig {}           

8、建立MyBatisConfig 類

public class MyBatisConfig {   
  @Bean    
  public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){        
    SqlSessionFactoryBean factoryBean=new SqlSessionFactoryBean();       
    factoryBean.setDataSource(dataSource);        
    factoryBean.setTypeAliasesPackage("com.pojo");        
    return factoryBean;    
  }    
  @Bean    
  public MapperScannerConfigurer mapperScannerConfigurer(){        
    MapperScannerConfigurer msg=new MapperScannerConfigurer();       
    msg.setBasePackage("com.mapper");        
    return msg;    
  }}           

9、建立SpringMvcConfig 類

@Configuration@
ComponentScan("com.controller")
@EnableWebMvc
public class SpringMvcConfig {}           

10、建立ServletConfig 類

public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {    
  @Override    protected Class<?>[] getRootConfigClasses() {        
    return new Class[]{SpringConfig.class};    }    
@Override    protected Class<?>[] getServletConfigClasses() {       
  return new Class[]{SpringMvcConfig.class};    }   
@Override    protected String[] getServletMappings() {        
  return new String[]{"/"};    }}           

11、在pojo包下面建立role和user類

public class Role implements Serializable {    
  private Integer id;    
  private String typename;    
  public Integer getId() {        return id;    }    
  public void setId(Integer id) {        this.id = id;    }    
  public String getTypename() {        return typename;    }    
  public void setTypename(String typename) {        this.typename = typename;    }    
  @Override    public String toString() {       
    return "Role{" +               
      "id=" + id +               
      ", typename='" + typename + '\'' +               
      '}';    }}
public class User {    
  private Integer id;    
  private Integer typeid;    
  private String name;    
  private String pwd;    
  private Integer online;    
  private Integer pid;    
  private Role role;    
  public Integer getId() {        return id;    }    
  public void setId(Integer id) {        this.id = id;    }    
  public Integer getTypeid() {        return typeid;    }    
  public void setTypeid(Integer typeid) {        this.typeid = typeid;    }    
  public String getName() {        return name;    }    
  public void setName(String name) {        this.name = name;    }    
  public String getPwd() {        return pwd;    }    
  public void setPwd(String pwd) {        this.pwd = pwd;    }    
  public Integer getOnline() {        return online;    }    
  public void setOnline(Integer online) {        this.online = online;    }    
  public Integer getPid() {        return pid;    }    
  public void setPid(Integer pid) {        this.pid = pid;    }    
  public Role getRole() {        return role;    }    
  public void setRole(Role role) {        this.role = role;    }    
  @Override    public String toString() {       
    return "User{" +               
    "id=" + id +                
      ", typeid=" + typeid +               
      ", name='" + name + '\'' +               
      ", pwd='" + pwd + '\'' +               
      ", online=" + online +               
      ", pid=" + pid +               
      ", role=" + role.getTypename() +              
      '}';   
  }}           

12、在mapper 包裡面建立UserMapper接口

public interface UserMapper {    
  @Select("select *,r.id rid from user u,role r where u.typeid=r.id")   
  @Results({           
    @Result(column = "id",property = "id"),            
  @Result(column = "typeid",property = "typeid"),            
  @Result(column = "name",property = "name"),            
  @Result(column = "pwd",property = "pwd"),            
  @Result(column = "online",property = "online"),            
  @Result(column = "pid",property = "pid"),            
  @Result(column = "rid",property = "role.id"),            
  @Result(column = "typename",property = "role.typename")    })    
  public List<User>findAll();}           

13、在service包下面建立UserService 接口

public interface UserService {    public List<User> findAll();}           

14、在service包裡面建立一個impl包,在建立UserServiceImpl類,實作UserService接口

@Servicepublic class UserServiceImpl implements UserService {   
  @Autowired   
  private UserMapper mapper;    
  @Override    
  public List<User> findAll() {        return mapper.findAll();    }}           

15、在test包裡面的java包建立Code2 類

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class Code2 {    
  @Autowired    
  private UserService service;    
  @Test    
  public void t1(){        
    List<User> all = service.findAll();        
    all.forEach(System.out::println);   
  }}           

繼續閱讀