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

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,页面输入以下信息表示插入成功。

151832_GrVy_2273688.png

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

151847_XIFV_2273688.png

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

 

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

151818_80jl_2273688.png

转载于:https://my.oschina.net/sdlvzg/blog/1154204

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值