一.Jpa-hibernate
1.pom.xml中添加依赖
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- data-jpa依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2.application.properties配置 mysql 和 jpa
# mysql配置
spring.datasource.url=jdbc:mysql://localhost:3306/testspringboot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# spring jpa配置
spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
# spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
3.创建实体类
@Entity
public class Cat {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String catName;
private int catAge;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCatName() {
return catName;
}
public void setCatName(String catName) {
this.catName = catName;
}
public int getCatAge() {
return catAge;
}
public void setCatAge(int catAge) {
this.catAge = catAge;
}
}
4.创建respository
public interface CatRepositroy extends CrudRepository<Cat,Integer>{
}
4.创建service
@Service
public class CatService {
@Resource
private CatRepositroy _catRepository;
@Transactional
public void save(Cat cat) {
_catRepository.save(cat);
}
@Transactional
public void delete(int id) {
_catRepository.deleteById(id);;
}
public Iterable<Cat> getAll() {
return _catRepository.findAll();
}
}
5.controller调用
@RestController
@RequestMapping("/cat")
public class CatController {
@Resource
private CatService _catService;
@RequestMapping("/save")
public String save() {
Cat cat = new Cat();
cat.setCatAge(1);
cat.setCatName("lili");
_catService.save(cat);
return "save ok";
}
@RequestMapping("/delete")
public String delete() {
_catService.delete(1);
return "delete ok";
}
@RequestMapping("/getall")
public Iterable<Cat> getAll(){
return _catService.getAll();
}
}
二.jdbcTemplate
1.添加依赖
2.添加Dao类
@Repository
public class CatDao {
@Resource
private JdbcTemplate _jdbcTemplate;
public Cat getByCatName(String catName) {
String sql = "select * from Cat where cat_name=?";
RowMapper<Cat> rowMapper = new BeanPropertyRowMapper<>(Cat.class);
Cat cat = null;
try {
cat = _jdbcTemplate.queryForObject(sql, new Object[]{catName},rowMapper);
}
catch(Exception ex) {
Cat catTemp =new Cat();
catTemp.setCatName("null cat");
return catTemp;
}
return cat;
}
}
3.Servicevs 使用
三.Mybatis
1.添加mybatis依赖
2.添加扫描
获取自增长id
实体类中标记说明
sql语句占位符
#{name}, 字符串占位符, 若name=2,得到 2=>'2' , 可防止sql注入
${} 原型占位福,输入和输出一样 ,若name=2,得到 2=>2
@Result 标记
当数据库中字段与实体类中字段名不一致时使用