Java_EE企业级开发学习笔记——spring学习笔记第四章

  记录笔记。

  spring的jdbc模块负责数据库数据资源管理和错误处理。

一.Spring JdbcTemplate的解析

  spring框架提供了JdbcTemplate类,该类是核心类。

   JdbcTemplate的直接父类是JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性,比如DataSource和SQLExceptionTranslator。

   而JdbcOperations则定义了操作。

二.Spring JDBC的配置

  主要由四个包组成。

   如果想要使用JDBC,必须在xml文件里面进行配置,注意观察。

  配置数据源(连接数据库),配置JDBC模板,配置注入类。

  示例配置文件(依据自己的情况修改数据库信息,MySQL的默认端口是3036)

 三.Spring JdbcTemplate的常用方法

  execute()

  execute()能够完成执行SQL语句的功能,示例是创建。

  选择数据库,配置xml文件,测试类(启动类)加入execute语句(还是spring要使用的三部曲,只有获得实例才可以调用主动类的方法,这里的主动类是JDBC模板提供的)

 (这里除了spring的基础包之外还需要加入的包是:mysql-connector , spring-jdbc,spring-tx。

   启动类。

 (项目执行我记得没有错误)

   可以去test->java里面新建一个java文件当作测试类,测试类如下,注解如果报错那么就alt+Enter快速加载

   update()

  update()方法有四种,根据参数不同各自分类。

   这里也是一样的,主要类(JDBC,自定义类),xml配置,启动类配置。

  我们上一条是Create指令,直接输入语句就可以了。而下面的示例,我们选择了Insert INTO语句,除了语句,我们还需要数据,所以我们需要一堆数值,使用类封装,也就是说我们需要一个Account类,所以主要类又加入了Account类。

  主要类:

   (示例需要返回受到影响的行数,也就是说在update方法的类中,我们需要获得Account的实例的数据,所以我们需要加入getter和setter方法,可以的话连toString也可以加进去,使用Alt+insert快捷键选择,这里省略掉了这些方法。)

  创建接口。(update方法是修改,增删改查,还需要一个操作主要类)

   操作主要类。

  注意看这几个方法是怎么实现的。

public class AccountDaoImpl implements  AccountDao{
    //需要使用update方法,所以还是要声明JdbcTemplate,启动类的不用,因为启动类直接获得了JdbcTemplate的Bean实例了。
    private JdbcTemplate jdbcTemplate;

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

    //添加账户
    public int addAccount(Account account){
        //定义sql
        String sql = "insert into account(username , balance) value(?,?)";
        //定义数组来存储sql语句中的参数
        Object[] obj = new Object[]{
                account.getUsername(),
                account.getBalance()
        };
        //执行添加操作,返回的是受SQL语句影响的记录条数
        int num = this.jdbcTemplate.update(sql , obj);
        return num;
    }
    //更新账户
    public int updateAccount(Account account){
        //定义SQL
        String sql = "update account set username = ?,balance = ?    where id = ?";
        //定义数组来存储SQL语句中的参数
        Object[] params = new Object[]{
                account.getUsername(),
                account.getBalance(),
                account.getId()
        };
        //执行更新操作
        int num = this.jdbcTemplate.update(sql,params);
        return num;
    }
    //删除账户
    public int deleteAccount(int id){
        //定义SQL
        String sql = "delete from account where id = ?";
        int num = this.jdbcTemplate.update(sql,id);
        return num;
    }

    配置xml的主要类相关Bean。

    (注意虽然Account类在我的理解中是主要类,但是Account可以不用在测试类用Bean,就普通地弄,我们使用Bean只是为了使用对应类的方法而已,set,get方法什么的可以不放在Bean里面)

    在测试类中三部曲。   

   剩余方法的实现是类似。

  query()

  示例如下:

   主要类。

   注意方法实现。

   测试类:

 

  

  

  

  

posted @ 2024-03-19 17:28  程序计算机人  阅读(27)  评论(0)    收藏  举报