首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringJDBC

SpringJDBC

作者头像
用户3112896
发布于 2019-09-26 06:53:26
发布于 2019-09-26 06:53:26
49300
代码可运行
举报
文章被收录于专栏:安卓圈安卓圈
运行总次数:0
代码可运行

除了Spring自带的Jar包,还要下载几个Jar包,这里我吐槽下CSDN,下个Jar包都要积分,真是想钱想疯了,其实可以Google得到

我把所有依赖的Jar包贴出来

MySql数据库的搭建和使用我就不说了,百度即可。现在的MySQL Workbench挺好用的

我们先来看下

普通的JDBC的写法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JdbcDemo1 {
    @Test
    public void demo1() {
        //创建连接池
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///spring_database");
        dataSource.setUsername("root");
        dataSource.setPassword("1234");
        //创建jdbc模板
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        jdbcTemplate.update("insert into account values (null,?,?)", "大傻", 10000d);
    }
}

下面是SpringJDBC写法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Account {
    private Integer id;
    private String name;
    private Double money;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

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

配置文件

applicationContext6.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!--引入属性文件-->
    <!--第一种方式:通过bean标签(很少用)-->
    <!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
         <property name="location" value="classpath:jdbc.properties"/>
     </bean>-->
    <!--第二种方式:通过context标签引入-->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!--配置Spring内置的连接池-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!--属性注入-->
        <property name="driverClassName" value="${jdbc.driverClass}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!--配置DBCP连接池-->
   <!-- <bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClass}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>-->

    <!--配置C3P0连接池-->
    <!--<bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>-->

    <!--配置Spring的JDBC的模板-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
</beans>

jdbc.properties

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///spring_database
jdbc.username=root
jdbc.password=1234

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext6.xml")
public class SpringJDBC {
    @Resource(name = "jdbcTemplate")
    private JdbcTemplate jdbcTemplate;

    @Test
    //保存操作
    public void demo() {
        jdbcTemplate.update("insert into account value (null,?,?)", "大静", 20000d);
    }

    @Test
    //修改操作
    public void demo1() {
        jdbcTemplate.update("update account set name = ?,money = ? where id = ?", "dbcp", 3000d, 4);
    }

    @Test
    //删除操作
    public void demo2() {
        jdbcTemplate.update("delete from account where id = ?", 6);
    }

    @Test
    //查询操作
    public void demo3() {
        String name = jdbcTemplate.queryForObject("select name from account where id = ?", String.class, 2);
        System.out.println("name=" + name);
    }

    @Test
    //统计个数
    public void demo4() {
        Long count = jdbcTemplate.queryForObject("select count(*) from account", Long.class);
        System.out.println("count=" + count);
    }

    @Test
    //封装到一个对象
    public void demo5() {
        Account account = jdbcTemplate.queryForObject("select * from account where id = ?", new MyRowMapper(), 5);
        System.out.println(account);
    }

    @Test
    //查询多条记录
    public void demo6() {
        List<Account> list = jdbcTemplate.query("select * from account", new MyRowMapper());
        for (Account account : list) {
            System.out.println(account);
        }
    }

    class MyRowMapper implements RowMapper<Account> {

        @Override
        public Account mapRow(ResultSet resultSet, int i) throws SQLException {
            Account account = new Account();
            account.setId(resultSet.getInt("id"));
            account.setName(resultSet.getString("name"));
            account.setMoney(resultSet.getDouble("money"));
            return account;
        }
    }

}

Spring除了可以集成JDBC模板,还可以集成DBCP或者C3P0模板

执行结果就是在MySQL Workbench中查看

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安卓圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从零到一搭建基础架构(5)-让你的RPC原地起飞
本文为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!
柏炎
2022/10/31
5460
从零到一搭建基础架构(6)-让你的服务组件化
本文为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!
柏炎
2022/10/31
3750
从零到一搭建基础架构(6)-让你的服务组件化
从零到一搭建基础架构(2)-如何构建基础架构模块划分
Hello,这里是爱 Coding,爱 Hiphop,爱喝点小酒的 AKA 柏炎。
柏炎
2022/10/28
4750
从零到一搭建基础架构(2)-如何构建基础架构模块划分
看完这篇,你就是架构师
hello,everyone。接着上篇文章求求你,别写祖传代码了,继续聊聊架构与代码设计的问题。
柏炎
2022/08/23
2880
看完这篇,你就是架构师
手把手教你搭建SpringCloudAlibaba微服务架构——集成Dubbo、Feign实现服务注册、远程服务调用(RPC)
Nacos肯定是要有的,上一篇已经介绍了Nacos的搭建以及配置中心的基本使用,而在这篇文章中Nacos扮演的是注册中心的角色,通过集成Dubbo与Feign完成RPC的调用,还没有搭建Nacos的小伙伴可以参考我的上一篇文章哦。
敲得码黛
2021/02/22
2.7K0
手把手教你搭建SpringCloudAlibaba微服务架构——集成Dubbo、Feign实现服务注册、远程服务调用(RPC)
从零到一搭建基础架构(7)-管理好你的工程门面
Hello,这里是爱 Coding,爱 Hiphop,爱喝点小酒的 AKA 柏炎。
柏炎
2022/11/03
3980
从零到一搭建基础架构(7)-管理好你的工程门面
从零到一搭建基础架构(3)-base模块搭建上篇
本文为稀土掘金技术社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!
柏炎
2022/10/28
5230
架构:第四章:微服务架构下的分布式架构之搭建环境
下面是我要写的一个简单的分布式架构:SpringCloud+SpringBoot+SpringMVC+MyBatis+MySQL
Java廖志伟
2022/09/28
4770
架构:第四章:微服务架构下的分布式架构之搭建环境
零基础入门gRPC:从 0 实现一个Hello World
文章链接:https://cloud.tencent.com/developer/article/2468390
努力的小雨
2024/11/21
1K0
微服务下 Spring Boot Maven 工程依赖关系管理
最基本的 pom.xml 包含工程信息、Spring Boot 父工程、属性配置、依赖包、构建插件
轻量级云原生架构实验室
2018/08/02
7450
微服务下 Spring Boot Maven 工程依赖关系管理
架构:第三章:单一(伪分布式)架构之SSM整合
单一(伪分布式)架构之使用Maven建立各个工程之间的依赖、继承、聚合关系 SSM jar包依赖统一管理 工程:parent pom.xml
Java廖志伟
2022/09/28
3920
架构:第三章:单一(伪分布式)架构之SSM整合
SpringBoot多模块项目初始化搭建
木字楠
2023/10/17
4210
SpringBoot多模块项目初始化搭建
微服务(二)——SpringCloud入门&项目搭建
SpringCloud:分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶
不愿意做鱼的小鲸鱼
2022/09/26
1.1K0
微服务(二)——SpringCloud入门&项目搭建
电商4.0项目【二】: 架构搭建
l 修改pom.xml文件,确定spring boot、spring cloud、spring cloud Alibaba 等版本
Maynor
2022/01/07
5560
电商4.0项目【二】: 架构搭建
spring boot整合dubbox进行服务拆分
Dubbo是一个来自阿里巴巴的开源分布式服务框架,当当根据自身的需求,为Dubbo实现了一些新的功能,包括REST风格远程调用、Kryo/FST序列化等等。并将其命名为Dubbox(即Dubbo eXtensions)。 Dubbox地址:https://github.com/dangdangdotcom/dubbox 由于dubbox没有发布到maven中央仓库,需要自己安装到本地maven库或者私库。 git clone https://github.com/dangdangdotcom/dubbox
猿天地
2018/04/03
3.1K0
spring boot整合dubbox进行服务拆分
如何简洁高效的搭建一个SpringCloud2023的maven工程
依赖管理有gradle和maven,在这里选择比较常用和方便的Maven作为工程项目和依赖管理工具来搭建SpringCloud实战工程。主要用到的maven管理方式是多模块和bom依赖管理。
codetrend
2024/03/06
5780
从零到一搭建基础架构(1)-玩转maven依赖版本管理
Hello,这里是爱 Coding,爱 Hiphop,爱喝点小酒的 AKA 柏炎。
柏炎
2022/10/05
7410
1-4 云商城项目工程搭建
  因为我们搭建的是微服务项目,所以整体的项目结构会非常的零散。虽然零散但是程序的复用性会非常高,所以首先在划分的时候我们可以将相关的业务服务放置在一个工程结构下。
用户4919348
2021/01/14
8520
1-4 云商城项目工程搭建
一SpringCloud史上最详细微服务架构+系统架构的演变
一、微服务介绍 之前有大佬为了进大厂,辞职在家啃这张图,把这张图吃透了! 之前有大佬为了进大厂,辞职在家啃这张图,把这张图吃透了! 之前有大佬为了进大厂,辞职在家啃这张图,把这张图吃透了! 1.系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。 从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布 式架构--->SOA架构--->微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。 接下来
天蝎座的程序媛
2022/11/18
3.9K0
一SpringCloud史上最详细微服务架构+系统架构的演变
SpringCloud 实战|SpringCloud 实现docker 镜像部署-提升项目的生产力
在父级项目的pom->properties 添加如下配置 docker.host:docker安装的主机ip docker.registry.repository:上面搭建的本地仓库主机ip+端口号 docker.maven.plugin.version:插件版本
AI码师
2022/09/19
5510
推荐阅读
相关推荐
从零到一搭建基础架构(5)-让你的RPC原地起飞
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档