热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spring基础08jdbcTemplate

jdbcTemplate基础Employee.java:packagecom.atguigu.bean;importlombok.Data;importlombok.ToStrin

jdbcTemplate基础

Employee.java:

package com.atguigu.bean;
import lombok.Data;
import lombok.ToString;
/**
* @Title: Employee
* @Description:
* @Author:
* @Version: 1.0
* @create 2020/6/9 9:16
*/
@Data
@ToString
public class Employee {
private Integer empId;
private String empName;
private double salary;
}

EmployeeDao.java:

package com.atguigu.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import com.atguigu.bean.Employee;
@Repository
public class EmployeeDao {

@Autowired
JdbcTemplate jdbcTemplate;

public void saveEmployee(Employee employee){
String sql = "INSERT INTO employee(emp_name,salary) VALUES(?,?)";
jdbcTemplate.update(sql, employee.getEmpName(),employee.getSalary());
}
}

ApplicationContext.xml:

1
2 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:cOntext="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
6
7
8
9
10
11
12
13
17
18


19


20


21


22
23
24
30
31
32

33
34
35
36
37
38

39

db.properties:

jdbc.username=root
jdbc.password=root
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/jdbc_template?serverTimezOne=GMT%2B8
jdbc.dirverClass=com.mysql.cj.jdbc.Driver

TxTest.java:

package com.atguigu.test;
import com.atguigu.bean.Employee;
import com.atguigu.dao.EmployeeDao;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Title: TxTest
* @Description:
* @Author:
* @Version: 1.0
* @create 2020/6/8 23:50
*/
public class TxTest {
ApplicationContext ioc = new ClassPathXmlApplicationContext("ApplicationContext.xml");
JdbcTemplate jdbcTemplate = ioc.getBean(JdbcTemplate.class);
NamedParameterJdbcTemplate namedJdbcTemplate = ioc.getBean(NamedParameterJdbcTemplate.class);
@Test
public void test() throws SQLException {
DataSource bean = ioc.getBean(DataSource.class);
Connection cOnnection= bean.getConnection();
System.out.println(connection);
connection.close();
}
/**
* 实验2:将emp_id=5的记录的salary字段更新为1300.00
*/
@Test
public void test02(){
String sql = "UPDATE employee SET salary=? WHERE emp_id=?";
int update = jdbcTemplate.update(sql, 1300.00,5);
System.out.println("更新员工:"+update);
}
/**
* 实验3:批量插入;
*/
@Test
public void test03(){
String sql ="INSERT INTO employee(emp_name,salary) VALUES(?,?)";
//List
//List的长度就是sql语句要执行的次数
//Object[]:每次执行要用的参数
List batchArgs = new ArrayList();
batchArgs.add(new Object[]{"张三",1998.98});
batchArgs.add(new Object[]{"李四",2998.98});
batchArgs.add(new Object[]{"王五",3998.98});
batchArgs.add(new Object[]{"赵六",4998.98});
int[] is = jdbcTemplate.batchUpdate(sql, batchArgs);
for (int i : is) {
System.out.println(i);
}
}
/**
* 实验5:查询salary>4000的数据库记录,封装为List集合返回
*/
@Test
public void test05(){
String sql = "SELECT emp_id empId,emp_name empName,salary FROM employee WHERE salary>?";
//封装List;集合里面元素的类型
List list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Employee.class), 4000);
for (Employee employee : list) {
System.out.println(employee);
}
}
/**
* 实验6:查询最大salary
*/
@Test
public void test06(){
String sql = "select max(salary) from employee";
//无论是返回单个数据还是单个对象,都是调用queryForObject
Double object = jdbcTemplate.queryForObject(sql, Double.class);
System.out.println(object);
}
/**
* 实验7:使用带有具名参数的SQL语句插入一条员工记录,并以Map形式传入参数值
*
* 具名参数:(具有名字的参数,参数不是占位符了,而是一个变量名)
* 语法格式: :参数名
* Spring有一个支持具名参数功能的JdbcTemplate
*
* 占位符参数:?的顺序千万不能乱。传参的时候一定注意;
*/
@Test
public void test07(){
String sql = "INSERT INTO employee(emp_name,salary) VALUES(:empName,:salary)";
//Map
Map paramMap = new HashMap<>();
//将所有具名参数的值都放在map中;
paramMap.put("empName", "田七");
paramMap.put("salary", 9887.98);
int update = namedJdbcTemplate.update(sql, paramMap);
System.out.println(update);
}
/**
* 实验8:重复实验7,以SqlParameterSource形式传入参数值
*/
@Test
public void test08(){
String sql = "INSERT INTO employee(emp_name,salary) VALUES(:empName,:salary)";
Employee employee = new Employee();
employee.setEmpName("哈哈");
employee.setSalary(998.98);
//
int i = namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(employee));
System.out.println(i);
}
/**
* 实验9:创建BookDao,自动装配JdbcTemplate对象
*/
@Test
public void test09(){
EmployeeDao bean = ioc.getBean(EmployeeDao.class);
Employee employee = new Employee();
employee.setEmpName("哈哈2");
employee.setSalary(998.98);
bean.saveEmployee(employee);
}
}

 



推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
author-avatar
关圣钊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有