1.在mysql中创建数据库、表并插入测试记录
--数据库
create database 'test' default character set utf8;
use test;
create table 'prov' (
'id' int(11) not null auto_increment,
'pro_name' varchar(128) default null,
'city' varchar(64) default null,
primary key('id')
)engine=InnoDB default charset=utf8;
或 (不带引号)
create table prov (
id int(11) not null auto_increment,
pro_name varchar(128) default null,
city varchar(64) default null,
primary key(id)
)engine=InnoDB default charset=utf8;
insert into 'prov'('id','pro_name','city') values (1,'江苏省','南京市'),(2,'浙江省','杭州市');
2.在IDEA中创建Spring Boot 并添加POM依赖
SpringBoot 分为四层:controller层、service层、dao层、entity层。
entity层:与 model 层类似,存放的是数据库实体类,属性值与数据库值保持一致,实现 setter 和 getter 方法。
dao层:即 mapper层,负责java和数据库交互,对数据库进行持久化操作,他的方法使针对数据库操作的,基本上用的就是增删改查,他就是个接口,只有方法名,具体实现在mapper.xml中实现。
service层:业务层,存放业务逻辑处理,不直接对数据库进行操作,有接口和接口实现类,提供 controller 层调用方法。
controller层:控制层,所有请求的入口,前后端交互的入口;导入 service层,调用你service方法,controller通过接受前端传来的参数进行业务操作,在返回一个制定的路径或数据表。
其他
Dto:数据传输对象
数据传输对象(Data Transfer Object),用于前后端数据交互。
添加POM依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.9</version>
</dependency>
</dependencies>
3.在application.properties添加数据库配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://192.168.40.128:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=password
4.创建prov 类
public class prov {
public Integer id;
public String pro_name;
public String city;
}
5.创建prodao
@Repository
public class prodao {
@Autowired
JdbcTemplate jdbcTemplate;
public int insertprov(prov prov){
return jdbcTemplate.update("insert into prov (id,pro_name,city) values (?,?,?)",prov.id,prov.pro_name,prov.city);
}
public int updateprov(prov prov){
return jdbcTemplate.update("update prov set pro_name=?,city=? where id=?",prov.pro_name,prov.city,prov.id);
}
public int deleteprov(prov prov){
return jdbcTemplate.update("delete from prov where id=?",prov.id);
}
public prov getproById (Integer id){
return jdbcTemplate.queryForObject("select * from prov where id=?",new BeanPropertyRowMapper<>(prov.class),id);
}
public List<prov> getAllProv(){
return jdbcTemplate.query("select * from prov",new BeanPropertyRowMapper<>(prov.class));
}
}
6.创建service
import java.util.List;
@Service
public class ProvService {
@Autowired
prodao prodao;
public int insertprov(prov prov){
return prodao.insertprov(prov);
}
public int updateprov(prov prov){
return prodao.updateprov(prov);
}
public int deleteprov(prov prov) {
return prodao.deleteprov(prov);
}
public prov getproById (Integer id){
return prodao.getproById(id);
}
public List<prov> getAllProv(){
return prodao.getAllProv();
}
}
7.创建Controller
@RestController
public class DemoController {
@Autowired
ProvService provService;
@GetMapping("/proname")
public void pronm(){
prov pv1=new prov();
pv1.id=8;
pv1.pro_name="江西省";
pv1.city="南昌";
int i=provService.insertprov(pv1);
System.out.println("insetpro>>>>"+i);
prov pv2=new prov();
pv2.id=6;
pv2.pro_name="广东省";
pv2.city="广州市";
int uppro=provService.updateprov(pv2);
System.out.println("update>>>>"+uppro);
}
}