慕课网连接java
项目建立完成以后能够打开pom.xml看一下mysql
<?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.imooc</groupId> <artifactId>girl</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>girl</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath/> </parent> <!--项目的编码格式--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--为项目添加web服务--> <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> <!--项目编译--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.直接在idea启动 2.(命令行模式:进入到项目路径下)mvn spring-boot:run 3.(命令行模式:进入到项目路径下)编译程序 mvn install 进入target java -jar XXXX.jar
在rescourse下面有属性文件,可经过属性文件对象的属性进行配置(application.properties):web
server.port=8081 server.comtent-path=/demo girl.age=18 girl.name=小红 girl.cupSize=F #配置文件中使用配置文件中的属性 people: "age:${girl.age},cupSize:${girl.cupSize}"
也可使用application.yml配置文件:spring
server: port: 8080 context-path: /demo girl: age: 18 name: 小红 cupsize: F
在java类中使用如下方法能够得到配置文件的属性sql
@Value("${girl.age}") //获取.properties的属性值 private String age; @Value("${girl.name}") private String name; @Value("${girl.cupSize}") private String cupSize;
girl每有一个属性就须要使用一次@value注解数据库
可以使用girl类一次性赋值进去apache
@Component @ConfigurationProperties(prefix = "girl") //获取前缀是girl的属性 public class Girl{ private int age; private String name; private String cupSize; /** * 添加属性的setter和getter方法 */ }
经过下面代码获取配置文件属性赋值以后的对象json
@Autowired private Girl girl;
总不能每次换版本都从新修改配置文件吧springboot
能够在rescourses文件夹新建application-pro.yml和application-test.yml两个配置文件app
并在两个文件中分别配置产品和测试所须要的属性及属性值
并在application.yml修改配置。决定运行时使用的是哪个属性配置文件(以下代码,使用的是application-test.yml的属性配置)
spring: profiles: active: test
@Controller //声明控制器类 @RestController //该注解类的方法返回json数据;=@ResponseBody + @Controller @RequestMapping(value = {"/hello", "/hi"}, method = RequestMethod.GET) /* 两个url路径均可以访问同一个方法 当不指定请求方式时,get/post均可以请求到,可是不推荐。 该注解能够给整个类指定Url*/ //处理url里面的参数: @PathVariable //获取url中的数据 @RequestMapping("/hello/{id}") public void hello(@PathVariable Integer id){} @RequestParam //获取请求参数的值 @GetMapping/PostMapping //组合注解
准备阶段(添加依赖)
为了使用数据库,须要在pom.xml文件中,加入两个依赖: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
添加配置
在application.yml文件中做相应配置: 1)mysql的相关配置 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/dbgirl username: root password: root 2)jpa的配置 spring: jpa: hibernate: ddl-auto: update show-sql: true ddl-auto:creat、update、none、creat-drop、validate creat每次运行时,都会建立新表(如有,删除原有的,再建新的),update不会删除原有的,保留改变的,更新,create-drop不运行时,删表,none什么也不做,validate验证类里面属性是否与表结构一致,不一致报错;
新建数据库表
新建数据库; 在main/imooc下新建Girl类,(和数据库对应)包括: 1)类的前面有@Entity注解(表示此类对应数据库中的一个表) 2)类中包含属性,其前有注解@Id @GeneratedValue,(主键并自增) 3)有无参的构造方法,以及set和get方法;
数据库操做
建立Dao接口继承JpaRepository接口,该接口有泛型<Girl , id>
能够用该接口实例进行数据库操做
public interface GirlRepository extends JpaRepository<Girl, Integer> { }
数据库的一系列操做
@Autowired private GirlRepository girlRepository; @GetMapping(value = "/girls") public List<Girl> girlList() { return girlRepository.findAll(); } @GetMapping(value = "/girls/{id}") public Girl girlFindOne(@PathVariable("id") Integer id) { return girlRepository.findOne(id); } ................
若是要实现本身添加的方法,有严格的命名规范(在接口GirlRepository中添加方法)
public interface GirlRepository extends JpaRepository<Girl, Integer> { //经过年龄来查询 public List<Girl> findByAge(Integer age); }
事务的使用
实现事务,能够在@Service中,指定方法前加@Transactional注解
mysql 表存储引擎为MyISAM ,不支持事物回滚,须要设置为InnoDB