首页 > 其他分享 >JDBCTemplate 的简单使用

JDBCTemplate 的简单使用

时间:2023-10-01 13:56:01浏览次数:30  
标签:name void 简单 public pwd JDBCTemplate 使用 id String

什么是JDBCTemplate

Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

使用JDBCTemplate

1.在xml文件中配置 JdbcTemplate 对象,注入 DataSource(即数据库、数据源)

<context:component-scan base-package="transaction" />

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!--数据库驱动-->
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <!--连接数据库URL-->
        <property name="url" value="jdbc:mysql://localhost:3306/0908?characterEncoding=UTF-8&amp;serverTimezone=GMT"/>
        <property name="username" value="root"/>
        <property name="password" value="root" />

    </bean>

    <!--配置JDBCTemplate-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--配置数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

2.创建实体类

public class User {

    private int id;
    private String name;
    private String pwd;

    public User() {
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                '}';
    }
}

3.测试

package jdbc_template;

import org.apache.tomcat.jdbc.pool.DataSource;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * @Author ywzh
 * @Date 2023/9/8 10:05
 * @注释 JdbcTemplate测试
 */
public class JdbcTest {

    private JdbcTemplate jdbcTemplate;

    @Before//标识单元测试启动方法(初始化工作)
    public void before(){

        DataSource dataSource = new DataSource();

        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/0908?characterEncoding=UTF-8&&serverTimezone=GMT");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        dataSource.setInitialSize(5);

        jdbcTemplate = new JdbcTemplate(dataSource);

        System.out.println("开始测试");
    }

    @After//标识单元测试销毁方法(清理工作)
    public void after(){
        System.out.println("结束测试");
    }

    @Test//查询所有用户
    public void Test1(){
        List<Map<String,Object>> maps = jdbcTemplate.queryForList("select * from user");
        System.out.println(maps);
    }

    @Test//单行记录转换为对象
    public void Test3(){

        String sql = "select * from user where id = ?";
        RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
        User user = jdbcTemplate.queryForObject(sql,rowMapper,1);
        System.out.println(user);
    }

    @Test//条件查询
    public void Test4(){
        String sql = "select * from user where id > ?";
        RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
        List<User> users = jdbcTemplate.query(sql,rowMapper,1);
        System.out.println(users);

    }

    @Test//使用execute()方法插入
    public void Test5(){
        String sql = "insert into user (id,name,pwd) values (4,'ls','123')";
        jdbcTemplate.execute(sql);

    }

    @Test//使用update()方法插入
    public void Test6(){
        String sql = "insert into user (id,name,pwd) values (5,'ls','123')";
        int update = jdbcTemplate.update(sql);//影响行数
        System.out.println(update);
    }

    @Test //插入(有参)
    public void Test7(){
        String sql = "insert into user (id,name,pwd) values (?,?,?)";

        int update = jdbcTemplate.update(sql,6,"zl","123");
        System.out.println(update);

    }

    @Test //批量插入
    public void Test8(){
        //将数组转化为List集合
        List<Object[]> list = Arrays.asList(
                new Object[] {7,"ll1","123"},
                new Object[] {8,"ll2","123"},
                new Object[] {9,"ll3","123"},
                new Object[] {10,"ll4","123"}
        );

        int[] updateRows = jdbcTemplate.batchUpdate("insert  into user (id,name,pwd) value(?,?,?)",list);

        for (int i = 0; i < updateRows.length; i++) {
            System.out.println(updateRows[i]);
        }

    }

    @Test//删除
    public void Test9(){
        int row = jdbcTemplate.update("delete from user where id = ?",1);
        System.out.println(row);
    }


}

 

标签:name,void,简单,public,pwd,JDBCTemplate,使用,id,String
From: https://www.cnblogs.com/ywzh/p/17738797.html

相关文章

  • pnputil 是一个命令行实用程序,它用于管理 Windows 系统中的设备驱动程序。它提供了一
    pnputil是一个命令行实用程序,它用于管理Windows系统中的设备驱动程序。它提供了一种简单的方式来安装、卸载、列出和导出设备驱动程序。使用pnputil可以完成以下任务:安装设备驱动程序:将设备驱动程序添加到驱动程序存储库并安装它们。这对于管理员或高级用户来说是很有用的,......
  • DOSBox0.74使用Debug时p命令报错
    环境操作系统:Windows10DOSBox0.74DEBUG.EXE从WindowsXP或其他复制到的DOSBox下问题在学习到王爽的《汇编语言》时,第4章,第5章用到了debug中的p命令。但是,在自己的环境下,debug程序的p命令直接报错!可能的原因首先,p命令报错,应该是debug程序的问题。除了这个问......
  • Llama2-Chinese项目:2.3-预训练使用QA还是Text数据集?
      Llama2-Chinese项目给出pretrain的data为QA数据格式,可能会有疑问pretrain不应该是Text数据格式吗?而在Chinese-LLaMA-Alpaca-2和open-llama2预训练使用的LoRA技术,给出pretrain的data为Text数据格式。所以推测应该pretrain时QA和Text数据格式都应该支持。然后马上就会有一个疑问......
  • 03_nodjs_npm的使用
    03【npm的使用】1.包和npm1.1什么是包由于Node是一套轻内核的平台,虽然提供了一系列的内置模块,但是不足以满足开发者的需求,于是乎出现了包(package)的概念:与核心模块类似,就是将一些预先设计好的功能或者说API封装到一个文件夹,提供给开发者使用。Node本身并没有太多的功能性AP......
  • 在k8s中使用secret存储敏感数据与四种用法
    当需要存储敏感数据时可以使用,secret会以密文的方式存储数据。创建secret的四种方法(1)通过--from-literal#每个--from-literal对应一个信息条目kubectlcreatesecretgenericmysecret--from-literal=username=admin--from-literal=password=123456(2)通过--from-file#每个文件内......
  • 使用onblur属性让input标签保持焦点
    做一个类似命令行的功能,输入用input标签,得保持焦点,弄了半天才成功思路如下:在input标签内使用属性onblur(失去焦点时触发代码)onblur触发javascript的focus函数,找回焦点实际操作:在你想保持焦点的input标签上加上:onblur="this.focus();console.log('refocus!')"如这样:......
  • 实验一 C语言输入输出和简单程序编写
    实验任务一1#include<stdio.h>2#include<stdlib.h>3intmain()4{5printf("0\n");6printf("<H>\n");7printf("||\n");8printf("0\n");9print......
  • java中观察者模式的简单实现
    4要素:1观察者接口2具体的观察者3管理者接口4管理者实现类5调用1观察者接口包含观察者行为方法publicinterfaceObserver{/***当目标类发生变化时所执行的操作**/StringdoSomething();}2具体的观察者//具体观察者A@Slf4j@Component("ObserverA")pu......
  • SpringBoot框架大晚上报错404--我的路径问题(附上SpringBoot MVC管理系统的简单具体代
    代码application.ymlspring:web:resources:static-locations:classpath:/static/,classpath:/templates/datasource:type:com.alibaba.druid.pool.DruidDataSourceurl:jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf......
  • 实验1—C语言输入输出和简单程序应用编写
    1.实验1实验1_1源代码1#include<stdio.h>2#include<stdlib.h>3intmain()4{5printf("O\n");6printf("<H>\n");7printf("II\n");8printf("\n");9printf("......