首页 > 其他分享 >Spring使用jdbc模板增删改查

Spring使用jdbc模板增删改查

时间:2023-04-04 16:48:49浏览次数:40  
标签:account jdbc -- Spring 改查 Account import com public



 

 

applicationContext.xml

<?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:aop="http://www.springframework.org/schema/aop"
       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
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--配置数据源-->
    <bean id="dataSource" class=
            "org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- 数据库驱动 -->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <!-- 连接数据库url -->
        <property name="url" value="jdbc:mysql://localhost/spring?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai" />
        <property name="username" value="root"/><!-- 连接数据库用户名 -->
        <property name="password" value="1234"/><!-- 连接数据库密码 -->
    </bean>
<!--    配置jdbc模板-->
    <bean id="JdbcTemplate"
          class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 默认必须使用数据源 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>


    <!--    注册一个bean-->
<!--    <bean name="userDao" class="com.niuzhuang.dao.impl.UserDaoImpl"/>-->
<!--    <bean name="xmlAdvice" class="com.niuzhuang.demo.XmlAdice"/>-->
    <bean id="accountDao" class="com.niuzhuang.dao.impl.AccountDaoImpl">
        <property name="jdbcTemplate" ref="JdbcTemplate"/>
    </bean>
<!--    &lt;!&ndash;    配置spring AOP&ndash;&gt;-->
<!--    <aop:config>-->
<!--&lt;!&ndash;        指定切入点&ndash;&gt;-->
<!--        <aop:pointcut id="pointcut" expression="execution(* com.niuzhuang.dao.impl.UserDaoImpl.*(..))"/>-->
<!--&lt;!&ndash;        指定切面&ndash;&gt;-->
<!--        <aop:aspect ref="xmlAdvice">-->
<!--&lt;!&ndash;            前置通知&ndash;&gt;-->
<!--            <aop:before method="before" pointcut-ref="pointcut"/>-->
<!--            &lt;!&ndash;            返回通知&ndash;&gt;-->
<!--            <aop:after-returning method="afteReturnning" pointcut-ref="pointcut"/>-->
<!--            &lt;!&ndash;            环绕通知&ndash;&gt;-->
<!--            <aop:around method="around" pointcut-ref="pointcut"/>-->
<!--            &lt;!&ndash;            异常通知&ndash;&gt;-->
<!--            <aop:after-throwing method="afterException" pointcut-ref="pointcut"/>-->
<!--            &lt;!&ndash;            后置通知&ndash;&gt;-->
<!--            <aop:after method="after" pointcut-ref="pointcut"/>-->

<!--        </aop:aspect>-->
<!--    </aop:config>-->
    <!--使用context命名空间,开启注解处理器-->
<!--    <context:component-scan base-package="com.niuzhuang"/>-->
<!--    &lt;!&ndash;将类配置到容器当中,让容器创建实例&ndash;&gt;-->
<!--    &lt;!&ndash;setter注入&ndash;&gt;-->
<!--    <bean id="hello" class="com.niuzhuang.HelloSpring">-->
<!--        &lt;!&ndash;给属性赋值&ndash;&gt;-->
<!--        <property name="name" value="张三"/>-->
<!--    </bean>-->
<!--    &lt;!&ndash;构造方法注入&ndash;&gt;-->
<!--    <bean id="user" class="com.niuzhuang.User">-->
<!--        <constructor-arg name="id" value="1"/>-->
<!--        <constructor-arg name="username" value="zs"/>-->
<!--        <constructor-arg name="password" value="1234"/>-->
<!--    </bean>-->
<!--    &lt;!&ndash;注入dao&ndash;&gt;-->
<!--    <bean id="userDao" class="com.niuzhuang.dao.impl.UserDaoImpl"/>-->
<!--    &lt;!&ndash;注入service&ndash;&gt;-->
<!--    <bean id="userService" class="com.niuzhuang.service.impl.UserServiceImpl">-->
<!--        <property name="userDao" ref="userDao"/>-->
<!--    </bean>-->
</beans>

 

Account.java

package com.niuzhuang.entity;

public class Account {
    private int id;
    private String name;
    private double balance;

    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 double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }

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

UserDao.interface

package com.niuzhuang.dao;

import com.niuzhuang.entity.Account;

import java.util.List;
//这是接口
public interface AccountDao {
    public int addAccount(Account account);
    public int update(Account account);
    public int deleteAccount(Account account);
    public Account findByIdAndName(int id,String name);
    public List<Account> findAll();
}

AccountDaoImpl.java

package com.niuzhuang.dao.impl;

import com.niuzhuang.dao.AccountDao;
import com.niuzhuang.entity.Account;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.util.List;

public class AccountDaoImpl implements AccountDao {
    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public int addAccount(Account account) {
        String sql = "insert into account(name,balance) values(?,?)";
        Object[] args = {account.getName(),account.getBalance()};
        int num = jdbcTemplate.update(sql,args);
        return num;
    }

    public int update(Account account) {
        String sql = "update account set name=?,balance=? where id=?";
        int num = jdbcTemplate.update(sql,account.getName(),account.getBalance(),account.getId());
        return num;
    }

    public int deleteAccount(Account account) {
        String sql = "delete from account where id=?";
        return jdbcTemplate.update(sql,account.getId());
    }

    public Account findByIdAndName(int id, String name) {
        String sql = "select*from account where id=? and name=?";
        RowMapper rm = new BeanPropertyRowMapper<Account>(Account.class);//用于将查询的每一条结果转为对象
        Account account = (Account) jdbcTemplate.queryForObject(sql,rm,id,name);
        return account;
    }

    public List<Account> findAll() {
        String sql = "select*from account";
        RowMapper rm = new BeanPropertyRowMapper<Account>(Account.class);//用于将查询的每一条结果转为对象
        return jdbcTemplate.query(sql,rm);
    }
}

 

TestAddAccount.java

package com.niuzhuang.test;

import com.niuzhuang.dao.AccountDao;
import com.niuzhuang.entity.Account;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestAddAccount {
    public static void main(String[] args) {
        ApplicationContext applicationContext =  new ClassPathXmlApplicationContext("applicationContext.xml");
        AccountDao dao = applicationContext.getBean("accountDao",AccountDao.class);
        Account account = new Account();
        account.setBalance(94840.0);
        account.setName("里斯");
        int num = dao.addAccount(account);
        System.out.println("添加了"+num+"条记录");
    }
}
TestFindByIdAndName.java
package com.niuzhuang.test;

import com.niuzhuang.dao.AccountDao;
import com.niuzhuang.entity.Account;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class TestFindByIdAndName {
    public static void main(String[] args) {
        ApplicationContext applicationContext =  new ClassPathXmlApplicationContext("applicationContext.xml");
        AccountDao dao = applicationContext.getBean("accountDao",AccountDao.class);
//        System.out.println(dao.findByIdAndName(1,"1111"));
        List<Account> list = dao.findAll();
        if (list.size()>0){
            for (Account a:list){
                System.out.println(a);
            }
        }else{
            System.out.println("查询不到数据");
        }
    }
}
TestUpdate.java
package com.niuzhuang.test;

import com.niuzhuang.dao.AccountDao;
import com.niuzhuang.entity.Account;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestUpdate {
    public static void main(String[] args) {
        ApplicationContext applicationContext =  new ClassPathXmlApplicationContext("applicationContext.xml");
        AccountDao dao = applicationContext.getBean("accountDao",AccountDao.class);
        Account account = new Account();
        account.setBalance(11111);
        account.setName("1111");
        account.setId(4);
        dao.update(account);
    }
}

 

标签:account,jdbc,--,Spring,改查,Account,import,com,public
From: https://www.cnblogs.com/TokaiTeio32/p/17286891.html

相关文章

  • SpringWebFlux~webclient响应式HttpClient
    1.webClientSpringWebFlux包括WebClient对Http请求的响应式,非阻塞。WebClient实例创建方式:1.1通过静态工厂方法创建响应式WebClient实例WebClient.create()WebClient.create(StringbaseUrl)packagecom.crazymaker.springcloud.reactive.rpc.mock;importorg.......
  • 关于使用Kotlin开发SpringBoot项目使用@Transactional和@Autowired的报错问题
    原文地址:关于使用Kotlin开发SpringBoot项目使用@Transactional和@Autowired的报错问题-Stars-One的杂货小窝问题描述最近在开发一个订单模块,需要出现异常就会触发数据回滚操作,首先就是想到了SpringBoot提供的@Transactiona注解功能,但是使用的时候,发现其他方法就是出现......
  • 3-springcloud整体架构及调用举例
    SpringCloud的整体架构  ServiceProvider:暴露服务的服务提供方。ServiceConsumer:调用远程服务的服务消费方。EureKaServer:服务注册中心和服务发现中心。   ......
  • 【Spring原理分析-Bean生命周期+Spring原理分析-Bean后处理器】
    Spring原理分析-Bean生命周期一、Bean生命周期1、Bean生命周期测试2、生命周期顺序二、自定义BeanPostProcessor实现增强三、模板方法-设计模式一、Bean生命周期1、Bean生命周期测试①编写LifeCycleBean类②编写启动类③测试2、生命周期顺序执行顺序:构造方法→@Autowired→......
  • 【Spring原理分析-Aware接口&InitializingBean&初始化与销毁执行顺序】
    一、Aware接口&InitializingBean1、基础准备2、总结3、补充:EmbeddedValueResolverAware二、@Autowired和@PostConstruct注解失效1、基础准备2、失效情形3、失效原因4、使用Aware接口避免失效5、总结补充总结一、Aware接口&InitializingBean1、基础准备①编写MyBean实......
  • SpringBoot中如何实现业务校验,这种方式才叫优雅!
    大家好,我是飘渺。在日常的接口开发中,为了保证接口的稳定安全,我们一般需要在接口逻辑中处理两种校验:参数校验业务规则校验首先我们先看看参数校验。参数校验参数校验很好理解,比如登录的时候需要校验用户名密码是否为空,创建用户的时候需要校验邮件、手机号码格式是否准确。......
  • 在IDEA创建SpringBoot项目没有src等文件夹
    问题在IDEA创建SpringBoot项目的时候,有时候创建完成了,但是没有src等文件夹,可能前几分钟还行,突然就不行了。原因可能是网络等问题,我也还没弄懂,或者哪位大神知道的,可以留言告知一下。解决办法办法一:自己手动创建办法二:通过网页创建,下载压缩包,再通过IDEA打开即可阿里云:https:/......
  • 创建SpringSecurity项目
    一.搭建SpringBoot开发环境我们的SpringSecurity系列教程会基于SpringBoot环境,并且以案例迭代的方式进行开发,所以为了方便后续案例的编写,我们先提前搭建一个SpringBoot环境的Web项目。1.创建SpringBoot项目如各位对SpringBoot基础不熟悉,请参考本人的SpringBoot系列教程:blo......
  • 2-SpringBoot开发单体应用
    SpringBoot开发单体应用1.SpringBootWeb开发使用SpringBoot的步骤:创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好;手动在配置文件中配置部分配置项目就可以运行起来了。专注编写业务代码,不需要考虑以前那样一大堆的配置......
  • SpringBoot 跨域 解决方案
    SpringBoot跨域看大部分文章都是通过WebMvcConfigurer来处理的,这样的话会导致其他配置紊乱发一下我常用的配置importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.cors.C......