Spring学习之路(四)spring对数据库操作

1、导入jdbc.jar、tx. jar包

2、测试

package com.junit;

import static org.junit.Assert.*;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import com.ioc.User;

public class Text2 {
    //添加操作
    @Test
    public void testAdd() {
        //创建对象,获取数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///person");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
//        创建对象,获取数据源
        JdbcTemplate jdbctlt = new JdbcTemplate(dataSource);
//        创建SQL语句
        String sql = "insert into user values(null,?,?)";
        int rows = jdbctlt.update(sql, "admin2","123");
//        rows 执行成功会返回1
        System.out.println(rows);

    }
    //修改
    @Test
    public void testUpdate() {
        //创建对象,获取数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///person");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
//        创建对象,获取数据源
        JdbcTemplate jdbctlt = new JdbcTemplate(dataSource);
//        创建SQL语句
        String sql = "update user set uname=? where id=?";
        int rows = jdbctlt.update(sql, "历史","2");
        System.out.println(rows);
    }
    //删除
        @Test
        public void testDel() {
            //创建对象,获取数据库信息
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql:///person");
            dataSource.setUsername("root");
            dataSource.setPassword("root");
//            创建对象,获取数据源
            JdbcTemplate jdbctlt = new JdbcTemplate(dataSource);
//            创建SQL语句
            String sql = "delete from user where id=?";
            int rows = jdbctlt.update(sql, "1");
            System.out.println(rows);
        }
    //查询有多少条记录
    @Test
    public void testQery() {
        //创建对象,获取数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///person");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
//            创建对象,获取数据源
        JdbcTemplate jdbctlt = new JdbcTemplate(dataSource);
//            创建SQL语句
        String sql = "select count(*) from user";
        int count = jdbctlt.queryForObject(sql, Integer.class);
        System.out.println(count);
    }
    //查询返回对象
    @Test
    public void testObj() {
        //创建对象,获取数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///person");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
//        创建对象,获取数据源
        JdbcTemplate jdbctlt = new JdbcTemplate(dataSource);
//        创建SQL语句
        String sql = "select * from user where id=?";
        //继承接口
        User user = jdbctlt.queryForObject(sql, new myRowMapper(), "3");
        System.out.println(user);
    }
    //查询所有
    @Test
    public void testObjQuery() {
        //创建对象,获取数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///person");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
//        创建对象,获取数据源
        JdbcTemplate jdbctlt = new JdbcTemplate(dataSource);
//        创建SQL语句
        String sql = "select * from user";
         List<User> list = jdbctlt.query(sql, new myRowMapper());
         System.out.println(list);

    }
}
class myRowMapper implements RowMapper<User>{

    @Override
    public User mapRow(ResultSet rs, int num) throws SQLException {
//        获得数据
        int uid =  rs.getInt("id");
        String uname = rs.getString("uname");
        String upwd = rs.getString("upwd");
//        存储数据
        User user = new User();
        user.setId(uid);
        user.setUname(uname);
        user.setUpwd(upwd);;
        return user;
    }
}

时间: 2024-10-10 01:26:53

Spring学习之路(四)spring对数据库操作的相关文章

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

学习之路四十一丶简论重构

四月份的最后一天,写点心得,记录一下. 这个月一直忙着开发一个基于Win32 API的程序,大量运用了句柄等很多API的知识. 尤其随着代码量越来越大,逻辑越来越复杂,代码的清晰,健壮,扩展性成了一个需要重视的问题,也就是要适时的重构了. 一丶重构的时机 上个星期在修改一块重大逻辑的时候,需要修改很多代码,当时我犯了一个错误,一开始想了一个思路,但一上来没写多少就开始想着重构代码,目的是使其代码清晰以及可扩展. 可是随着时间的流失,不仅没有重构好,而且该改的逻辑也没有改好,我很郁闷,为什么会这样

Spring学习笔记一(Spring核心思想)

通过学习<Spring in action (Third edition)>的第一章,我大概了解了Spring的基本思想: 1,依赖注入(Dependnecy Injection): 在不使用Spring框架的情况下,一个类要跟另一个类建立联系,可能会使用如下的模式: class A{...} class B{ private A a; ...       } 这样的话,每次实例化一个B的对象,如b1,必定实例化一个A的对象,如a1,并且b1和a1是紧耦合的,b1牢牢地和a1绑定在一起了.他们

Git学习之路(6)- 分支操作

▓▓▓▓▓▓ 大致介绍 几乎所有的版本控制系统都会支持分支操作,分支可以让你在不影响开发主线的情况下,随心所欲的实现你的想法,但是在大多数的版本控制系统中,这个过程的效率是非常低的.就比如我在没有学习Git之前,想实现我的一个小想法,但是又害怕影响已完成的工作,只有ctrl+c.ctrl+v,但是在Git中,甚是方便了许多. 这篇博客主要讲以下几部分: ◆ 创建分支 ◆ 合并分支 ◆ 删除分支 ▓▓▓▓▓▓ 创建分支 在之前的学习中,都只有一个分支即 master分支 这是Git中主分支的默认名

Python/MySQL(四、MySQL数据库操作)

Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: 1 case when id>9 then ture else false 二.三元运算: 1 if(isnull(xx)0,1) 三.上下连表: select id,name from ta1 union 天然去重(检测上边的表和下边的表行内完全一样就只显示一行内容) select num,sname from tb2 ========================================== select

iOS学习笔记(十六)——数据库操作(使用FMDB)

iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一篇文章简单介绍下FMDB的使用. 在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包. FMDB同时兼容ARC和非ARC工

Spring学习笔记(四)-- Spring事务全面分析

通过本系列的文章对Spring的介绍,我们对Spring的使用和两个核心功能IOC.AOP已经有了初步的了解,结合我个人工作的情况,由于项目是金融系 统,那对事务的控制是必不可少的,并且是非常严格的控制.根据我对项目的研究,它在管理模块用的是JTA的事务,而在交易模块用的是JDBC的事 务,但是,所有的这些事务的使用,都是用Spring封装后的编程式事务.我在看完<Spring In Action>后,在网上看了下大家对Spring事务的理解,貌 似都没有真正的文章是去全面剖析Spring对这

Spring学习进阶(四) Spring JDBC

Spring JDBC是Spring所提供的持久层技术.主要目的是降低使用JDBC API的门槛,以一种更直接,更简洁的方式使用JDBC API.在Spring JDBC里用户仅需要做哪些比不可少的事,而将资源获取,Statement创建,异常处理,资源释放等繁杂而乏味的工作交交给Spring.一.使用Spring JDBC使用JDBC编写数据库的时候,由于JDBC API过于底层,开发者不但需要编写数据操作代码,还需要编写获得JDBC连接.异常处理.释放资源等.而Spring JDBC通过模板

Spring学习系列(四)——Spring中的国际化

1.Java中的国际化国际化(Internationalization)简称 i18n,简单来说就是不同国家/地区/语言的用户,访问同一个程序,得到对应的本地化资源. 首先要确定国家/地区/语言(Locale类) 然后根据不同的Locale获取对应的本地化资源(locale敏感的). 而本地化资源相关的主要有两种:ResourceBundle和Format抽象类的子类.①Jdk为ResourceBundle抽象类提供了两个子类(ListResourceBundle和PropertyResourc

Spring学习之路(一)spring入门

1.引入jar包 spring核心jar包 spring-beans-4.3.2.RELEASE.jar spring-core-4.3.2.RELEASE.jar spring-context-4.3.2.RELEASE.jar spring-expression-4.3.2.RELEASE.jar spring日志jar包 log4j-1.2.17.jar commons-logging-1.1.3.jar spring注解jar包 spring-aop-4.3.2.RELEASE.jar