文档章节

Spring Boot通过JdbcTemplate进行数据持久化

阿刚ABC
 阿刚ABC
发布于 2017/07/04 14:57
字数 707
阅读 166
收藏 0

JdbcTemplate - 这是经典的也是最常用的Spring对于JDBC访问的方案。这也是最低级别的封装, 其他的工作模式事实上在底层使用了JdbcTemplate作为其底层的实现基础。

 

通过观看https://my.oschina.net/sdlvzg/blog/1154281创建项目,再执行以下操作

在pom.xml中引入依赖库

引入jpa依赖库

<dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

另数据库使用MYSQL,需要引入相应的驱动程序

<dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
</dependency>

修改application.properties配置文件,增加配置

增加数据库联接配置信息

########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://192.168.1.121:3306/lvgangdb
spring.datasource.username = aorakidb
spring.datasource.password = Yes@126.com
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

 

创建数据库表

在数据库中执行以下创建表语句

CREATE TABLE `jdbc_demo` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `age` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

 

编写代码程序

编写一个实体类

package org.lvgang.bean;

public class JdbcDemo {
	private long id;// 主键.
	private String name;// 测试名称.
	private int age;// 测试年龄

	public long getId() {
		return id;
	}

	public void setId(long 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;
	}

}

 

创建数据持久类

package org.lvgang.Dao;

import javax.annotation.Resource;

import org.lvgang.bean.JdbcDemo;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

/**
 * 使用JdbcTemplate操作数据库.
 * @author Administrator
 */
@Repository
public class JdbcDao {
	@Resource
	private JdbcTemplate jdbcTemplate;   //只需要在此引入jdbcTemplate就可以进行数据库操作了
	/**
	 * 根据ID查询数据
	 * @param id
	 * @return
	 */
	public JdbcDemo getById(long id) {
		String sql = "select *from jdbc_demo where id=?";
		RowMapper<JdbcDemo> rowMapper = new BeanPropertyRowMapper<JdbcDemo>(JdbcDemo.class);
		return jdbcTemplate.queryForObject(sql, rowMapper, id);
	}
	
	/**
	 * 把数据持久化到数据库中
	 * @param jdbcDemo
	 * @return
	 */
	public int save(JdbcDemo jdbcDemo) {
		String sql = "insert into jdbc_demo(name,age) values(?,?)";
		return jdbcTemplate.update(sql, new Object[]{jdbcDemo.getName(),jdbcDemo.getAge()});
	}
}

 

创建业务服务层Service

package org.lvgang.service;

import javax.annotation.Resource;

import org.lvgang.Dao.JdbcDao;
import org.lvgang.bean.JdbcDemo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * JPA业务服务层
 * 
 * @author Administrator
 */
@Service
public class JdbcService {
	@Resource
	private JdbcDao jdbcDao; // 数据待久层

	/**
	 * 把数据保存到数据库中
	 * @param jdbcDemo
	 * @return 
	 */
	@Transactional
	public int save(JdbcDemo jdbcDemo) {
		return jdbcDao.save(jdbcDemo);
	}
	
	/**
	 * 根据ID查询数据
	 * @param id
	 * @return
	 */
	public JdbcDemo getById(long id) {
		return jdbcDao.getById(id);
	}
}

创建控制层Controller

package org.lvgang.controller;

import javax.annotation.Resource;

import org.lvgang.bean.JdbcDemo;
import org.lvgang.service.JdbcService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * JPA测试控制层
 * 
 * @author Administrator
 *
 */
@RestController
@RequestMapping("/jdbcdemo")
public class JdbcController {
	@Resource
	private JdbcService jdbcService;

	/**
	 * 测试保存数据方法.
	 * 
	 * @return
	 */
	@RequestMapping("/save")
	public String save() {
		JdbcDemo d = new JdbcDemo();
		d.setAge(20);
		d.setName("Angel");
		jdbcService.save(d);// 保存数据.
		return "ok.JdbcController.save";
	}
	
	/**
	 * 测试按ID查询数据
	 * @return
	 */
	@RequestMapping("/getById")
	public JdbcDemo getById() {
		return jdbcService.getById(2);
	}
}

 

完成以上代码编写,通过Main方法进行启动。

通过访问URL:http://127.0.0.1:8080/jdbcdemo/save,页面输入以下信息表示插入成功。

再次访问数据库查看jdbc_demo数据是否已经增加

完成以上信息表示数据插入成功

 

通过访问URL:http://127.0.0.1:8080/jdbcdemo/getById,验证用户是否已经读取到数据,如果页面展示以下信息表示读取成功

© 著作权归作者所有

阿刚ABC
粉丝 43
博文 152
码字总数 118786
作品 0
济南
高级程序员
私信 提问
SpringBoot的dao层、JdbcTemplate多数据源访问实例

前言: Spring boot集成mybatis大致过程如下: (1)新建maven project,在pom.xml文件中引入相关依赖。 (2)配置文件application.yml(application.properties) (3)编写pojo实体类 (4...

wangxuwei
2017/11/01
2.5K
0
Spring笔记8---数据库持久化

聊聊持久化。 ------------------------Spring的平台无关持久化异常 下面是Spring提供的数据访问模板,分别适用于不同的持久化机制 模板类org.springframework.* 用途 jca.cci.core.CciTemp...

强子哥哥
2015/01/12
64
0
Spring中用了哪些设计模式?这样回答面试官才稳

一:简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 sp...

java知识分子
02/16
64
0
SpringBoot高级篇JdbcTemplate之数据更新与删除

前面介绍了JdbcTemplate的插入数据和查询数据,占用CURD中的两项,本文则将主要介绍数据更新和删除。从基本使用上来看,姿势和前面的没啥两样 I. 环境准备 环境依然借助前面一篇的配置,链接...

小灰灰Blog
04/23
51
0
spring-boot 与 JdbcDaoSupport 的问题!

我使用spring-boot来构建系统, 持久层的接口: public interface JobsDao extends CrudRepository 这样是没问题,但是我想利用spring的JdbcDaoSupport来自己写SQL做一些复杂的查询语句 然后...

hosihui
2016/05/08
739
4

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
今天
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
今天
8
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
今天
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部