热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spring学习笔记(五)Web项目整合、JdbcTemplate

Spring整合Web项目ApplicationContext类处于Action层,每产生一个Action会存在效率问题实现原理1.ServletContext对象(只有唯一的一个

Spring 整合 Web 项目


ApplicationContext 类处于 Action 层,每产生一个 Action 会存在效率问题


实现原理



  1. ServletContext 对象(只有唯一的一个对象)

  2. 监听器

    在服务器启动时,为每个项目创建一个 ServletContext 对象

    监听到 ServeletContext 创建时,加载 Spring 配置文件并创建配置好的对象

    将对象放到 ServeletContext 对象中 (setArrtibute方法)

    获取对象(getAttribute方法)


    配置监听器


    需要导入 spring-web jar 包


// web.xml

org.springframework.web.context.ContextLoaderListener

指定 spring 配置文件位置

// web.xml
// 默认会找\WEB-INF\applicationContext.xml

contextConfigLocation
classpath:applicationContext.xml

Spring 的 JdbcTemplate 操作


Spring 对不同的持久化技术都进行了封装 (Dao 层技术)


准备



  1. 导入 Jar 包

    • spring-jdbc

    • spring-tx

    • jdbc(数据库驱动的 jar 包,如:mysql-connector)

      数据库操作


    // 1。 创建对象,设置数据库信息
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSourrce.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql:///test");
    dataSource.setUsername("root");
    dataSource.setPardword("root");
    // 2. 创建 jdbcTemplate 对象,设置数据源
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    // 3. 使用 jdbcTemplate 的方法进行操作
    // 增加数据
    String sql = "insert into table values(?,?)";
    int rows = jdbcTemplate.updae(sql, "Jeson", "100");
    System.out.println(rows);
    // 删除数据
    String sql = "delete from table where xx=?";
    int rows = jdbcTemplate.update(sql, "xxx");
    System.out.println(rows);
    // 修改数据
    String sql = "update table set xx=? where xx=?";
    int rows = jdbcTemplate.update(sql, "xxx", "xxx");
    System.out.println(rows);
    // 查询数据
    // 查询返回一个值
    String sql = "seletc count(*) from table";
    int count = jdbcTemplate.queryForObject(sql, Integer.class);
    System.out.println(count);
    // 查询返回对象
    class MyRowMapper implements RowMapper {
    @Override
    public User mapRow(ResultSet rs, int num) throws SQLException {
    // 从结果集得到数据并封装到自己定义的类中
    String username = rs.getString("username");
    String password = rs.getString("password");
    User user = new User();
    user.setUseranme(username);
    user.setPassword(password);
    return user;
    }
    }
    String sql = "select * from table where xx=?";
    User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "xx");
    System.out.println(user);
    // 查询返回 List
    String sql = "select * from talbe";
    List list = jdbcTemplate.query(sql, new MyRowMapper());
    Syste.out.println(list);

    Spring 配置连接池和 Dao 使用 JdbcTemplate


    Spring 配置 c3p0 连接池


    jar包:c3p0 和 machange-commons-java

    ~xml













    ~


    Dao 使用 JdacTemplate




    @Component(value="userDao")
    public class UserDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public void show() {
    String sql = "select * from talble";
    List list = jdbcTemplate.queryForByObject(sql, new MyRowMapper());
    // TODO
    }
    }



推荐阅读
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • SvpplyTable: 实现可扩展和可折叠的菜单动画
    SvpplyTable 是一个示例项目,旨在实现类似 Svpply 应用程序中的可扩展和可折叠的菜单动画效果。该项目托管在 GitHub 上,地址为 https://github.com/liuminqian/SvpplyTable。 ... [详细]
  • 本文介绍了如何在 Qt 应用程序中实现状态栏、浮动窗口(铆接部件)和中心部件。通过简单的代码示例,详细解释了每个组件的创建和设置方法。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • MySQL 数据库连接方法
    本文介绍了如何使用 MySQL 命令行工具连接到指定的数据库。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 如何解决8080端口被占用问题
    本文介绍了如何通过命令行和任务管理器查找并终止占用8080端口的进程,以确保该端口能够正常使用。 ... [详细]
  • Excel 数据分析基础
    Excel 是数据分析中最基本且强大的工具之一,具备多种实用功能和操作方法。本文将简要介绍 Excel 的不同版本及其兼容性问题,并探讨在处理大数据时的替代方案。 ... [详细]
author-avatar
端庄的张佳迎
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有