建立SpringBoot+MyBatis的项目

      为实现项目的快速高效地开发,采取合适的框架尤为重要。利用SpringBoot+Mybatis框架可以达到快速高效开发的目的。而对于初学者,如何建立一个这样的项目呢?

      今天我就从最简单的项目建立开始讲起。

      首先希望你的开发者工具跟我一样也是idea,这样也许你能避免许多问题,因为在Eclipse中创建项目有着些许不同。但你如果有足够的经验,这些问题并不能阻碍你,我会在文中同样为Elipse的开发者提供相应的方法。

      第一步:创建一个SpringBoot的maven项目

建立SpringBoot+MyBatis的项目_第1张图片

2、设置项目的元数据

此处主要注意三处,分别如下图所示,其中第一个是包结构(Group),第二个是项目标识(Artifact),第三个是版本号,一般这三个要根据实际需要进行修改,如果是初学者,可以跟我设置的一样。

建立SpringBoot+MyBatis的项目_第2张图片

3.选择项目所需要的依赖

首先是Web的依赖:

建立SpringBoot+MyBatis的项目_第3张图片

然后是数据库的依赖:

建立SpringBoot+MyBatis的项目_第4张图片

完成后点击next

建立SpringBoot+MyBatis的项目_第5张图片

单击finish。

第一次建立项目,需要下载许多包,请耐心等待一下,如果已经下载过,或者建立过类似的项目,那么会快许多。完成后则有了一个基本结构的项目,此时的项目还没有实现任何功能,让我们看一下它的目录结构。

建立SpringBoot+MyBatis的项目_第6张图片

为了实现快速开发我们可以手动添加一些依赖,这一点可以在pom.xml文件中添加dependence。下面是完整的pom.xml文件的内容,可提供为参考,如果是使用eclipse的开发者,那么忽略前面的步骤,建立一个maven项目,复制下面pom文件的依赖项和插件即可:

pom.xml:



    4.0.0


    com.zt
    mybatis_springboot
    0.0.1-SNAPSHOT
    war


    mybatis_springboot
    Demo project for Spring Boot


    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
         
    


    
        UTF-8
        UTF-8
        1.8
    


    


        
            org.springframework.boot
            spring-boot-starter-web
        


        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        


        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-tomcat
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        


    


    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    





完成额外pom中添加依赖后,需要对数据库内容进行配置,配置数据库只要在application.properties里面进行配置即可,需要根据自己的实际情况,将文件中的内容进行替换,主要有ip、数据库用户名、数据库密码。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/你的数据库名?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=你的用户名
spring.datasource.password=你的密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mybatis.typeAliasesPackage=你的实体类包名 (例子项目的包名是com.shizhao.project.springdemo.model
mybatis.mapperLocations=classpath:mapper/*.xml
logging.level.com.shizhao.project.springdemo:DEBUG
server.port=你的服务端口号,要保证与其他服务不冲突,如8080
完成后在项目中建立controller、dao、model三个目录如下图所示

建立SpringBoot+MyBatis的项目_第7张图片

建立完成后在model目录下建立User.java,内容如下:

User.java:

public class User {
    String username;
    String password;
    String patternLock;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPatternLock() {
        return patternLock;
    }

    public void setPatternLock(String patterLock) {
        this.patternLock = patterLock;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", patterLock='" + patternLock + '\'' +
                '}';
    }
}

随后在dao目录下建立UserDAO.java。

UserDAO.java:

import com.shizhao.sifo.demo.model.User;

import java.util.List;

public interface UserDAO {
    List selectUsers();
}

最后在controller目录下建立UserController.java。

UserController.java:

import com.shizhao.sifo.demo.dao.UserDAO;
import com.shizhao.sifo.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping(value = "/try")
@EnableAutoConfiguration
public class UserController {
    @Autowired
    private UserDAO userDAO;

    @RequestMapping(value = "/user")
    public List getUsers(){
        return userDAO.selectUsers();
    }
}

当然得在你配置的数据库上对这一操作中的实体类建立对应的数据库表:

create table User
(
  id          int auto_increment
    primary key,
  username    varchar(20)  null,
  password    varchar(500) null,
  patternlock varchar(30)  null
);

当然你要插入一些数据,为了方便,我也提供一些数据

insert into User(username, password, patternlock) values ('Bill','123456','123456');
insert into User(username, password, patternlock) values ('Nancy','123456','123456');
insert into User(username, password, patternlock) values ('Bob','123456','123456');

最后为了能够进行查询操作,还必须配置Mapper文件,在resources文件夹下建立mapper目录,在mapper目录中建立一个Mapper.xml文件,该文件主要写对数据访问的操作。如下:

Mapper.xml:




    
        
        
        
    
    

最后在运行文件中,SpringdemoApplication.java需要进行最后的编辑,增加注解MapperScan,切记在MapperScan中你的目录结构必须是Dao文件所在的目录,许多时候忽略这一点就必然导致错误。如下:

SpringdemoApplication.java:

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.shizhao.project.springdemo.dao")
public class SpringdemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringdemoApplication.class, args);
	}
}

这样就完成了整个项目的构建,并且能够实现最简单的提供接口服务的功能。如何访问呢?

首先运行SpringdemoApplication.java,运行后控制台如下则为成功

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.2.RELEASE)

2018-05-27 20:02:59.474  INFO 1511 --- [           main] c.s.p.springdemo.SpringdemoApplication   : Starting SpringdemoApplication on shizhaodeMacBook-Pro.local with PID 1511 (/Users/shizhao/IDEA_Projece/springdemo/target/classes started by shizhao in /Users/shizhao/IDEA_Projece/springdemo)
2018-05-27 20:02:59.476 DEBUG 1511 --- [           main] c.s.p.springdemo.SpringdemoApplication   : Running with Spring Boot v2.0.2.RELEASE, Spring v5.0.6.RELEASE
2018-05-27 20:02:59.477  INFO 1511 --- [           main] c.s.p.springdemo.SpringdemoApplication   : No active profile set, falling back to default profiles: default
2018-05-27 20:02:59.522  INFO 1511 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4445629: startup date [Sun May 27 20:02:59 CST 2018]; root of context hierarchy
2018-05-27 20:03:00.420  INFO 1511 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8083 (http)
2018-05-27 20:03:00.439  INFO 1511 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-05-27 20:03:00.439  INFO 1511 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.31
2018-05-27 20:03:00.442  INFO 1511 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/shizhao/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
2018-05-27 20:03:00.494  INFO 1511 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-05-27 20:03:00.494  INFO 1511 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 975 ms
2018-05-27 20:03:00.577  INFO 1511 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-05-27 20:03:00.579  INFO 1511 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-05-27 20:03:00.580  INFO 1511 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-05-27 20:03:00.580  INFO 1511 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-05-27 20:03:00.580  INFO 1511 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2018-05-27 20:03:00.938  INFO 1511 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:03:01.106  INFO 1511 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4445629: startup date [Sun May 27 20:02:59 CST 2018]; root of context hierarchy
2018-05-27 20:03:01.169  INFO 1511 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/try/user]}" onto public java.util.List com.shizhao.project.springdemo.controller.UserController.getUsers()
2018-05-27 20:03:01.173  INFO 1511 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-05-27 20:03:01.173  INFO 1511 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-05-27 20:03:01.195  INFO 1511 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:03:01.195  INFO 1511 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-05-27 20:03:01.416  INFO 1511 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-05-27 20:03:01.418  INFO 1511 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'dataSource' has been autodetected for JMX exposure
2018-05-27 20:03:01.423  INFO 1511 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located MBean 'dataSource': registering with JMX server as MBean [com.zaxxer.hikari:name=dataSource,type=HikariDataSource]
2018-05-27 20:03:01.542  INFO 1511 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8083 (http) with context path ''
2018-05-27 20:03:01.546  INFO 1511 --- [           main] c.s.p.springdemo.SpringdemoApplication   : Started SpringdemoApplication in 2.361 seconds (JVM running for 2.975)
2018-05-27 20:06:12.909  INFO 1511 --- [       Thread-9] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4445629: startup date [Sun May 27 20:02:59 CST 2018]; root of context hierarchy
2018-05-27 20:06:12.910  INFO 1511 --- [       Thread-9] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
2018-05-27 20:06:12.911  INFO 1511 --- [       Thread-9] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans

打开浏览器,输入localhost:8083/try/user

建立SpringBoot+MyBatis的项目_第8张图片

完成一个最简单的demo访问。到这里一个简单的项目构建就完成了,为了方便大家,这里提供该项目下载地址

https://download.csdn.net/download/dtctcm/10441176 点击打开链接











你可能感兴趣的:(java,spring,mybatis,java)