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
5、建立jdbc.properties在resources目錄下面
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///examdb
jdbc.username=root
jdbc.password=root
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);
}}