示例 使用CrudRepository接口访问数据
创建一个新的Maven项目,命名为crudrepositorytest。按照Maven项目的规范,在src/main/下新建一个名为resources的Folder。
(1) 修改pom.xml文件。
在pom.xml文件中增加web开发的启动器配置如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependenc>
最后需要加spring-boot-starter-data-jpa,它是Spring Boot项目访问数据库的核心依赖配置,加入此配置后,系统会自动导入Spring Data相关的核心数据访问接口包,以及Hibernate框架相关的依赖包,该配置如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
配置基本属性
在src/main/resources包下新建一个全局配置文件,命名为application.properties,在该配置文件中配置数据源和jpa相关的属性:
数据库地址
spring.datasource.url = jdbc:mysql://localhost:3306/springdatajpa
用户名
spring.datasource.username = root
密码
spring.datasource.password =
数据库驱动
spring.datasource.driverClassName = com.mysql.jdbc.Driver
指定连接池中最大的活跃连接数.
spring.datasource.max-active=20
指定连接池最大的空闲连接数量.
spring.datasource.max-idle=8
指定必须保持连接的最小值
spring.datasource.min-idle=8
指定启动连接池时,初始建立的连接数量
spring.datasource.initial-size=10
JPA持久化配置
指定数据库的类型
spring.jpa.database = MYSQL
指定是否需要在日志中显示sql语句
spring.jpa.show-sql = true
指定自动创建|更新|验证数据库表结构等配置,配置成update
表示如果数据库中存在持久化类对应的表就不创建,不存在就创建对应的表
spring.jpa.hibernate.ddl-auto = update Naming strategy
指定命名策略
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
指定数据库方言
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
AJAX: 是一种用于创建快速动态网页的技术。是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
AJAX调用,@ResponseBody 返回一个指定格式(如JSON或者XML)
@Controller 提供给前台调用,就要使用该注解
@PathVariable用法(和@RequestParam作用一样)
![](https://img.haomeiwen.com/i1369744/a88097f5b5a2e01d.png)
@RestController 不管页面好没好,都可以吧返回值显示在页面中(调试的时候常用)
@Value(“${XXurl}”) 将url配置在application.property里,方便修改和查找维护。
@RequestMapping 用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。如: @RequestMapping("/index")
@requestparam 用来接收前端请求过来的参数(GET 方式)
@requestBody 主要用来接收前端请求来的POST参数
如果有一个User类包含:userName,pwd字段。@requestBody User user 这种形式会将JSON字符串中的值赋予user中对应的属性上。需要注意的是,JSON字符串中的key必须对应user中的属性名,否则是请求不过去的。
$.ajax({
url:"/login",
type:"POST", data:'{"userName":"admin","pwd","admin123"}', content-type:"application/json charset=utf-8", success:function(data){
alert("request success ! ");
}
});
//JAVA
requestMapping("/login")
public void login(@requestBody String userName,@requestBody String pwd){ System.out.println(userName+" :"+pwd);
}
//如果参数较少,不需要用类接收参数,接收到的是JSON字符串
public void login(@RequestBody(required = false) String userName,String pwd){ System.out.println(userName+" :"+pwd);}
@Mapper
@Entity 用于标记持久化类,Spring Boot项目加载后会自动根据持久化类建表
@Id指定主键. 使用代码@GeneratedValue(strategy=GenerationType.AUTO)
指定主键的生成策略,mysql默认的是自增长。
如:
@Id
@GeneratedValue(strategy =GenerationType.AUTO)
private int id;// 主键.
private String userName;
private String loginName;
private char sex;
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
.......
在web程序开发中,前端和服务器数据的传输方式常用的有两种,一种是以表单的形式提交,此时可以利用jquery的serialize()方法将表单内容转为
“a=1&b=2&c=3&d=4&e=5&name=zhangsan”
这样的格式传输过去,接收端则可以用javabean直接接收。
还有一种方式是以json格式传输,接收时若直接用bean接收则接收不到,此时应该用@RequestBody方式,需要注意的是接收的需要是json串,而不是json对象,可以在发送前使用JSON.stringify函数进行处理。
@component (把普通实体类,实例,实例化到spring容器中, 注册成组件,交给Spring管理,无需new)
@autowaire 可以把它当成new一个对象就行。
![](https://img.haomeiwen.com/i1369744/d34202b0395c5aa9.png)
Spring的便利,优点就在这里:component注册组件后Spring管理,全局使用该实体类的时候使用@Autowaire 就可以获取。
--------------------------持续更新,喵~
网友评论