Spring boot之JdbcTemplate

实体类
package com.kfit.demo1.bean; import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id; /**
* 创建了一个实体类。
*
* 如何持久化呢?
*
* 1、使用@Entity进行实体类的持久化操作,当JPA检测到我们的实体类当中有
*
* @Entity 注解的时候,会在数据库中生成对应的表结构信息。
*
*
* 如何指定主键以及主键的生成策略?
*
* 2、使用@Id指定主键.
*
*/
@Entity
public class Cat { /**
* 使用@Id指定主键.
*
* 使用代码@GeneratedValue(strategy=GenerationType.AUTO)
* 指定主键的生成策略,mysql默认的是自增长。
*
*/
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int id;//主键. private String catName;//姓名. cat_name private int catAge;//年龄. cat_age; 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;
} }
DAO类
package com.kfit.demo1.dao; import javax.annotation.Resource; import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository; import com.kfit.demo1.bean.Cat; /**
* 使用@Repository注解,标注这是一个持久化操作对象.
*/
@Repository
public class CatDao { @Resource
private JdbcTemplate jdbcTemplate; public Cat selectByCatName(String catName){ /**
* 1、定义一个Sql语句;
* 2、定义一个RowMapper.
* 3、执行查询方法.
*/
String sql = "select *from cat where cat_name=?";
RowMapper<Cat> rowMapper = new BeanPropertyRowMapper<>(Cat.class);
Cat cat = jdbcTemplate.queryForObject(sql, new Object[]{catName}, rowMapper); return cat;
} }
repository类
package com.kfit.demo1.repository; import org.springframework.data.repository.CrudRepository; import com.kfit.demo1.bean.Cat; /**
* Repository -- 是接口 ,不是class.
*/
public interface CatRepository extends CrudRepository<Cat, Integer>{ }
package com.kfit.demo1.repository; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param; import com.kfit.demo1.bean.Cat; public interface Cat2Repository extends PagingAndSortingRepository<Cat, Integer>{ /**
* 1/ 查询方法 以 get | find | read 开头.
* 2/ 涉及查询条件时,条件的属性用条件关键字连接,要注意的是条件属性以首字母大写。
*/ //根据catName进行查询 : 根据catName进行查询.
public Cat findByCatName(String catName); /**
* 如何编写JPQL语句,
* Hibernate -- HQL语句.
* JPQL 语句 和HQL语句是类似的.
*/
@Query("from Cat where catName=:cn")
public Cat findMyCatName(@Param("cn")String catName);
}
service类
package com.kfit.demo1.service; import javax.annotation.Resource;
import javax.transaction.Transactional; import org.springframework.stereotype.Service; import com.kfit.demo1.bean.Cat; import com.kfit.demo1.repository.CatRepository;
import com.kfit.demo1.dao.CatDao;
import com.kfit.demo1.repository.Cat2Repository; @Service
public class CatService { @Resource
private CatRepository catRepository; @Resource
private Cat2Repository cat2Repository; @Resource
private CatDao catDao; /**
* save,update ,delete 方法需要绑定事务.
*
* 使用@Transactional进行事务的绑定.
*
* @param cat
*/ //保存数据.
@Transactional
public void save(Cat cat){
catRepository.save(cat);
} //删除数据》
@Transactional
public void delete(int id){
catRepository.delete(id);
} //查询数据.
public Iterable<Cat> getAll(){
return catRepository.findAll();
} public Cat findByCatName(String catName){
return cat2Repository.findByCatName(catName);
} public Cat findByCatName2(String catName){
return cat2Repository.findMyCatName(catName);
} public Cat selectByCatName(String catName){
return catDao.selectByCatName(catName);
}
}
controller类
package com.kfit.demo1.controller; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.kfit.demo1.bean.Cat;
import com.kfit.demo1.service.CatService; @RestController
@RequestMapping("/cat")
public class CatController { @Resource
private CatService catService; @RequestMapping("/save")
public String save(){
Cat cat = new Cat();
cat.setCatName("jack");
cat.setCatAge(3);
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();
} @RequestMapping("/findByCatName")
public Cat findByCatName(String catName){ return catService.findByCatName(catName);
} @RequestMapping("/findByCatName2")
public Cat findByCatName2(String catName){
System.out.println("CatController.findByCatName2()");
return catService.findByCatName2(catName); } @RequestMapping("/selectByCatName")
public Cat selectByCatName(String catName){
return catService.selectByCatName(catName);
}
}
Spring boot之JdbcTemplate的更多相关文章
- spring boot与jdbcTemplate的整合案例2
简单入门了spring boot后,接下来写写跟数据库打交道的案例.博文采用spring的jdbcTemplate工具类与数据库打交道. 下面是搭建的springbootJDBC的项目的总体架构图: ...
- Spring Boot2 系列教程(二十)Spring Boot 整合JdbcTemplate 多数据源
多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...
- spring boot 系列之三:spring boot 整合JdbcTemplate
前面两篇文章我们讲了两件事情: 通过一个简单实例进行spring boot 入门 修改spring boot 默认的服务端口号和默认context path 这篇文章我们来看下怎么通过JdbcTemp ...
- Spring Boot 整合JDBCTemplate
1. 首先配置pom.xml 1.1 dbcm2 是数据源类型,表示配置dataSource的方式 1.2 spring-boot-starter-jdbc是表示让spring boot 支持jdbc ...
- Spring Boot之JdbcTemplate多数据源配置与使用
之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源.在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.propertie ...
- spring boot(6)-JdbcTemplate访问数据库
pom.xml 添加jdbc模块和mysql依赖 <dependency> <groupId>org.springframework.boot</groupId&g ...
- Spring Boot (7) JdbcTemplate访问数据库
使用jdbcTemplate操作数据库 spring framework对数据库的操作在jdbc上面做了深层次的封装,通过依赖注入功能,可以将datasource注册到jdbcTemplate中,学习 ...
- Spring Boot2 系列教程(十九)Spring Boot 整合 JdbcTemplate
在 Java 领域,数据持久化有几个常见的方案,有 Spring 自带的 JdbcTemplate .有 MyBatis,还有 JPA,在这些方案中,最简单的就是 Spring 自带的 JdbcTem ...
- Spring Boot整合 JdbcTemplate
(1) 在pom.xml加入jdbcTemplate的依赖: (2) 编写DemoDao类,声明为:@Repository,引入JdbcTemplate (3) 编写DemoService类,引入De ...
- spring boot+logback+JdbcTemplate打印sql日志
项目中使用的JdbcTemplate直接在service中执行sql语句,配置如下: 使用IDEA创建的项目自带 main/resource 中自带logback.xml 配置文件,添加以下日志配置, ...
随机推荐
- 基于Hadoop伪分布式集群搭建Spark
一.前置安装 1)JDK 2)Hadoop伪分布式集群 二.Scala安装 1)解压Scala安装包 2)环境变量 SCALA_HOME = C:\ProgramData\scala-2.10.6 P ...
- Codeforces 1221B. Knights
传送门 看到棋盘上跳马,发现如果把棋盘黑白染色,那么每次移动都是从白点到黑点,从黑点到白点 所以直接根据黑白染色判断每个位置的马的颜色即可 #include<iostream> #incl ...
- 全面解析java编码问题
1.web.xml文件里配置 <filter> <filter-name>CharacterEncodingFilter</filter-name> <fil ...
- 类的函数成员之属性property
属性命名采用Pascal命名方式,每个单词的首字母大写.访问方式与访问类的公共字段类似. /// <summary> /// 字段 /// </summary> private ...
- O022、如何使用 OpenStack CLI
参考https://www.cnblogs.com/CloudMan6/p/5402490.html 本节首先讨论如何删除image,然后介绍OpenStack CLI 的使用方法,最后讨论如何 ...
- spring基于注解的IoC以及IoC的案例
1.Spring中IoC的常用注解 1.1明确: (1)基于注解的配置和xml的配置要实现的功能都是一样的,都是要降低程序之间的耦合,只是配置的形式不一样 2.案例:使用xml方式和注解方式实现单表的 ...
- 多Y轴示例
//多Y轴示例 <template> <div id="main" :style="{width:'1000px',height:'500px' }&q ...
- int 问号的使用
单问号---为泛型 Nullable<int> 的简写方式. 双问号---用于判断前一个操作数是否为null,如为null则"返回"后一个操作数,否则"返回& ...
- 从Spring看Web项目开发
之前简单介绍过Spring框架,本文换个角度重新诠释Spring.使用Java语言开发的项目,几乎都绕不过Spring,那么Spring到底是啥,为何被如此广泛的应用,下面从以下两个问题出发来剖析Sp ...
- linux上搭建单机版hadoop和spark
依赖的安装包 首先hadoop和spark肯定是必须的,而hadoop是用java编写的,spark是由Scala编写的,所以还需要安装jdk和scala. 大数据第三方组件我们统统都安装在/opt目 ...