ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IDEA创建springboot项目

2021-10-23 14:01:53  阅读:120  来源: 互联网

标签:String spring 创建 boot IDEA private mysql public springboot


1、新建

 

2、选择版本依赖

 

3、maven配置

 

4、yml文件配置

# YML文件的语法
# 1.数据结构   key-value结构
# 2.写法:     key:(空格)value
# 3.层级代码结构,注意缩进 !!!!!
# 4.字符集  文件读取时,默认采用UTF-8编码 可以写中文
# 规则: 命名时最好指定前缀.
server:
  port: 8080
mysql:
  username: root
  password: root

5、动态为属性赋值,JDBCController

/**
 * 说明:
 *  1.将该类交给Spring容器管理
 *  2.SpringMVC负责调用该对象接收用户的请求.
 *  3.将业务处理之后的结果,为页面返回JSON数据.
 *  @ResponseBody作用: 将数据转化为JSON串
 */
@RestController
public class JDBCController {

    //${key} Spring提供的springel表达式 简称为:spel表达式
    //语法: 从spring容器内部获取key,动态为属性赋值.
    @Value("${mysql.username}")
    String username;     // = "root|";
    @Value("${mysql.password}")
    String password;     // = "root";

    @RequestMapping("/getMsg")
    public String getMsg(){

        return "你好数据库:"+ username +password;
    }

}

 

6、访问:http://localhost:8080/getMsg,页面显示

 

 

7、利用properties文件为属性赋值,mysql.properties

#默认ISO-8859-1 中文必定乱码
mysql.username2=mysql数据库
mysql.password2=你猜猜

 

8、通过注解为属性赋值,可以指定字符集

/**
 * 说明:
 *  1.将该类交给Spring容器管理
 *  2.SpringMVC负责调用该对象接收用户的请求.
 *  3.将业务处理之后的结果,为页面返回JSON数据.
 *  @ResponseBody作用: 将数据转化为JSON串
 *
 *  propertySource:  value属性指定路径
 *                   encoding属性指定配置文件编码格式
 */
@RestController
@PropertySource(value="classpath:/mysql.properties", encoding = "UTF-8")
public class JDBCController {

    //${key} Spring提供的springel表达式 简称为:spel表达式
    //语法: 从spring容器内部获取key,动态为属性赋值.
    @Value("${mysql.username}")
    String username;     // = "root|";
    @Value("${mysql.password}")
    String password;     // = "root";

    @RequestMapping("/getMsg")
    public String getMsg(){

        return "你好数据库:"+ username +password;
    }


    /**
     * 难点: 如何将pro文件交给Spring容器管理????
     * 解决方案: @PropertySource("xxxxxx/xxx.properties") 指定配置文件交给Spring容器管理
     */
    @Value("${mysql.username2}")
    private String username2;
    @Value("${mysql.password2}")
    private String password2;

    @RequestMapping("/getMsg2")
    public String getMsg2(){

        return "你好数据库:"+ username2 +password2;
    }

}

9、访问:http://localhost:8080/getMsg2,显示

10、springboot高级用法,创建springboot项目

模板,maven

 

11、编辑pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jt</groupId>
    <artifactId>springboot_demo2</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--只需要复制 除了坐标之外的文件即可-->
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.4.1</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <mainClass>com.jt.SpringbootDemo1Application</mainClass>
                </configuration>
                <!--排除一些指定的配置-->
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

12、yml配置文件

开发 dev: 8080端口       生产 prod: 9000端口

#指定环境的默认配置
spring:
  profiles:
    active: dev
---
#为环境定义名称
server:
  port: 8080
spring:
  config:
    activate:
      on-profile: dev
# 采用---的方式实现环境分割
---
server:
  port: 9000
spring:
  config:
    activate:
      on-profile: prod

 

13、热部署

在开发阶段,需要频繁的修改配置文件/代码

需求:要求将代码保存之后,程序自动的编译,并且完成tomcat服务的重启

个别IDEA版本可能不生效

        <!--支持热部署 开发阶段有效-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

 

14、创建pojo

/**
 * 实体对象要求:
 *      1.类名一般与表名关联
 *      2.属性名称一般与字段关联
 *      3.pojo中的属性类型必须为引用类型(包装类型)
 *      4.实体对象必须有get/set方法
 *      5.一般实体对象需要实现序列化接口(规则)
 *          原因: 数据可能跨平台(跨服务器)传输,必须序列化
 */
public class DemoUser implements Serializable {

    private Integer id;
    private String name;
    private Integer age;
    private String sex;

}

 

15、lombok

lombok可以为POJO实体对象,动态的生成get/set/toString/hashcode/equals等方法,无需程序员手动编辑

        <!--引入插件lombok 自动的set/get/构造方法插件  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

16、采用注解

@Data  //动态生成get/set/toString/equals等方法
@Accessors(chain = true) //开启链式加载 重写set方法
@NoArgsConstructor  //无参构造
@AllArgsConstructor //有参构造
public class DemoUser implements Serializable {

    private Integer id;
    private String name;
    private Integer age;
    private String sex;

    //方法测试
    public void add(){
        DemoUser user = new DemoUser();
        user.setId(100).setName("aaaa").setAge(18).setSex("女");
    }

}

17、Mybatis

        <!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

18、POJO对象

@Data  //动态生成get/set/toString/equals等方法
@Accessors(chain = true) //开启链式加载 重写set方法
@NoArgsConstructor  //无参构造
@AllArgsConstructor //有参构造
public class DemoUser implements Serializable {

    private Integer id;
    private String name;
    private Integer age;
    private String sex;

}

19、编辑mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--核心配置文件-->
<configuration>

    <!--环境配置标签 default 默认加载的环境 只能写一个   -->
    <environments default="development">

        <!--编辑开发环境  id是环境唯一标识符  -->
        <environment id="development">
            <!--事物管理器  利用jdbc控制事务 -->
            <transactionManager type="JDBC"/>
            <!--mybatis采用数据库链接池的方式整合数据源 -->
            <dataSource type="POOLED">
                <!--高版本数据库驱动 需要添加cj-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&amp;useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true&amp;allowMultiQueries=true"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>

    </environments>

    <!--Mybatis加载Mapper映射文件-->
    <mappers>
        <mapper resource="mybatis/mappers/UserMapper.xml"/>
    </mappers>
</configuration>

20、构建mapper接口

/**
 * 说明:
 *      1.根据面向接口开发的思想需要定义一个Mapper接口
 *      2.在接口中可以写接口方法, 谁用谁去实现!!!
 */
public interface DemoUserMapper {
    //1.查询所有的表数据
    public List<DemoUser> findAll();
}

21、xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--xml映射文件 必须与接口一对一绑定
    namespace: 指定需要绑定的接口名称. 不能重复.
 -->
<mapper namespace="com.jt.mapper.DemoUserMapper">

    <!--实现接口中的方法
        id: 需要与接口中的方法绑定. 一般复制粘贴
        resultType: 对象的包路径.
        规则: sql语句不要添加多余的;号  Oracle数据库不能添加;号
    -->
    <select id="findAll" resultType="com.jt.pojo.DemoUser">
        select id,name,age,sex from demo_user
    </select>

    <!-- <insert id=""></insert>
     <update id=""></update>
     <delete id=""></delete>-->

</mapper>

22、mybatis实现数据库查询

    /**
     * 业务说明: 实现mybatis入门案例
     * 步骤:
     *      1.动态生成SqlSessionFactory
     */
    @Test
    public void demo1() throws IOException {
        //指定配置文件地址
        String resource = "mybatis-config.xml";
        //通过IO流 加载指定的配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //动态生成SqlSessionFactory
        SqlSessionFactory sqlSessionFactory =
                new SqlSessionFactoryBuilder().build(inputStream);
        //获取SqlSession  类比 数据库链接
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //获取Mapper接口
        DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
        //获取数据
        List<DemoUser> userList = demoUserMapper.findAll();
        System.out.println(userList);
        //关闭链接
        sqlSession.close();
    }

23、查询结果

 

24、根据ID查询数据

DemoUser findOne(int id);

 

25、xml映射文件

    <!--
        parameterType: 参数类型
        mybatis中通过 #{} 获取参数
        resultType: 返回值结果对象
   -->
    <select id="findOne" parameterType="int" resultType="com.jt.pojo.DemoUser">
        select * from demo_user where id = #{id}
    </select>

26、测试

    /***
     *  需求: 根据ID查询数据库记录   id=1的数据
     */
    @Test
    public void testFindOne() throws IOException {
        //指定配置文件地址
        String resource = "mybatis-config.xml";
        //通过IO流 加载指定的配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //动态生成SqlSessionFactory
        SqlSessionFactory sqlSessionFactory =
                new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //获取接口
        DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
        int id = 1;
        DemoUser demoUser = demoUserMapper.findOne(id);
        System.out.println(demoUser);
        //关闭链接
        sqlSession.close();
    }

27、结果

 

 

标签:String,spring,创建,boot,IDEA,private,mysql,public,springboot
来源: https://blog.csdn.net/hpcbluesky/article/details/120919438

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有