一、Springboot与Mybatis集成
1、思路 一是引入mybatis-starter使springboot与mybatis集成
二是完成连接数据库
(1)pom.xml 主要是引入mybatis-spring-boot-starter
<!-- mybatis新增 begin-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis end -->
(2)application.properties 添加相关配置
#mybatis add
mybatis.type-aliases-package=com.neusoft.demo.domain
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root
(3)在启动类中添加对mapper包扫描@MapperScan
@SpringBootApplication
@MapperScan("com.neusoft.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
(4)新建UserController
package com.neusoft.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.neusoft.demo.domain.User;
import com.neusoft.demo.service.UserService;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/findAll")
public List<User> findAll(){
return userService.findAll();
}
}
(5)新建Service接口和实现类
package com.neusoft.demo.service;
import java.util.List;
import com.neusoft.demo.domain.User;
public interface UserService {
List<User> findAll();
}
package com.neusoft.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.neusoft.demo.domain.User;
import com.neusoft.demo.mapper.UserMapper;
@Service
public class UserServiceImpl implements UserService{
@Autowired
UserMapper userMapper;
@Override
public List<User> findAll() {
// TODO Auto-generated method stub
return userMapper.findAll();
}
}
(6)新建UserMapper接口
package com.neusoft.demo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import com.neusoft.demo.domain.User;
public interface UserMapper {
@Select("select id,name from user")
List<User> findAll();
}
(7)新建表user,varchar类型id和name
二、springboot与jpa集成
1、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、配置数据源和JPA
配置数据源,在application.properties文件中加入如下信息
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.tomcat.max-active=20
配置JPA,在application.properties配置文件中加入如下信息
#连接哪种数据库
spring.jpa.database=mysql
#查询过程中日志里是否显示查询语句
spring.jpa.show-sql=true
#自动根据实体创建表
spring.jpa.hibernate.ddl-auto=update
配置说明
ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空
ddl-auto:create-drop----每次程序结束的时候会清空表
ddl-auto:update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新
ddl-auto:validate----运行程序会校验数据与数据库的字段类型是否相同,不同会报错
3、创建实体类
package com.neusoft.demo.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="person")
@GenericGenerator(name="jpa-uuid",strategy="uuid")
public class Person {
@Id
@GeneratedValue(generator="jpa-uuid")
@Column(length=32)
private String id;
@Column(name="name",nullable=true,length=20)
private String name;
@Column(name="age",nullable=true,length=4)
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4、创建接口
package com.neusoft.demo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import com.neusoft.demo.domain.Person;
public interface PersonRepository extends JpaRepository<Person, String>{
}
5、创建controller
package com.neusoft.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.neusoft.demo.dao.PersonRepository;
import com.neusoft.demo.domain.Person;
@RestController
@RequestMapping("/person")
public class JPAController {
@Autowired
PersonRepository personRepository;
@RequestMapping("/add")
public String addPerson(Person person) {
personRepository.save(person);
return "success";
}
@RequestMapping("/update")
public String updatePerson(Person person) {
personRepository.save(person);
return "success";
}
@RequestMapping("/del")
public String delPerson(String id) {
personRepository.deleteById(id);
return "success";
}
@RequestMapping("/findAll")
public List<Person> findPerson() {
return personRepository.findAll();
}
}
网友评论