Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作

摘要:
用户=根&password=root“);importorg.springframework.jdbc.core.JdbcTemplate;

查询目标是完成3个功能:

(1)查询表,返回某一个值。例如查询表中记录的条数,返回一个int类型数据

(2)查询表,返回结果为某一个对象。

(3)查询表,返回结果为某一个泛型的list集合。

一、查询表中记录的条数,返回一个int类型数据的操作方法

使用jdbcTemplate

原理是把加载驱动Class.forName("com.mysql.jdbc.Driver");

和连接数据库Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?user=root&password=root");

用一个对象完成DriverManagerDataSource dataSource=new DriverManagerDataSource();

package com.swift;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.stereotype.Component;

@Component(value="jdbcTemplateDemo")
public class JdbcTemplateDemo {
    public int queryCount() {
        DriverManagerDataSource dataSource=new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/sw_database");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        
        JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
        String sql="select count(*) from sw_user";
        int count=jdbcTemplate.qureyForObject(sql, Integer.class);
        return count;
        }
    
    public boolean update() {
        DriverManagerDataSource dataSource=new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/sw_database");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        
        JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
        String sql="update sw_user set password=? where username=?";
        int count=jdbcTemplate.update(sql,"lunchtime","doomsday");
        if(count!=0) {
            return true;
        }
        return false;
        }
    
}

查询数据库操作使用JdbcTemplate对象根据数据源直接使用qureyForObject方法完成,第二个参数Integer.class为返回值类型的class。

之前完成需按下边方法:

PreparedStatement ps=conn.prepareStatement("select count(*) from sw_user");

???ResultSet rs=ps.executeQuery();???有待验证

上边代码使用Spring框架注解生成对象方法

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:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    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">
    <!-- 开启注解扫描——对象和属性 -->
    <context:component-scan base-package="com.swift"></context:component-scan>
    <!-- 开启aop注解方法 -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
    
</beans>

使用Servlet类进行测试:

package com.swift;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@WebServlet("/test")
public class ServletTest extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public ServletTest() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().append("Served at: ").append(request.getContextPath());
        ApplicationContext context=new ClassPathXmlApplicationContext("aop.xml");
        JdbcTemplateDemo jdbcTemplateDemo=(JdbcTemplateDemo) context.getBean("jdbcTemplateDemo");
        response.getWriter().append(jdbcTemplateDemo.queryCount());
        
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

运行结果图

 Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作第1张

免责声明:文章转载自《Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VMware Workstation中虚拟机的克隆wireshark 路由过程抓包分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

css hover伪类选择器与JQuery hover()方法

css hover伪类选择器 它属于anchor伪类 在支持 CSS 的浏览器中,<a>标签链接的不同状态都可以以不同的方式显示,常常用来改链接的颜色效果 实例 a:link{color:#FF0000;}/* 未访问的链接 */ a:visited{color:#00FF00;}/* 已访问的链接 */ a:hover{color:#FF...

JMeter之BeanShell常用内置对象

 一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。...

7.qml-Qt对象

QML除了支持ECMAScript内置对象对象外,还自己给用户提供了许多宿主对象.当然用户也可以自己自定义对象. 内置对象 : 由 ECMAScript所提供的对象;如Object、Array、Math、Date等等。 宿主对象 :即由 ECMAScript 实现的宿主环境提供的对象,比如Qt对象. 自定义对象 :自定义构造函数所创建的对象。 本章我们...

Java Heap dump文件分析工具jhat简介

jhat 是Java堆分析工具(Java heap Analyzes Tool). 在JDK6u7之后成为标配. 使用该命令需要有一定的Java开发经验,官方不对此工具提供技术支持和客户服务。 用法: jhat [ options ] heap-dump-file 参数: options 可选命令行参数,请参考下面的 Options heap-du...

JS--微信浏览器复制到剪贴板实现

由于太忙很久没写博客了,如有错误遗漏,请指出,感谢! 首先这里要注意,是微信浏览器下的解决方案,其他浏览器请自行测试。 先说复制到剪贴板主要有什么使用场景: 优惠券优惠码,需要用户复制 淘宝商品,需要复制淘口令 由于淘宝链接无法在微信中打开,所以淘宝开发了淘口令方便物质传播,而导购网站在微信推广的时候也是生成口令,用户只需要复制口令,打开手机淘宝,即可...

SpringBoot开发文档

一、引言 1.1 初始化配置 为了使用SSM框架去开发,准备SSM框架的模板配置。 1.2 整合第三方框架 为了Spring整合第三方框架,单独的去编写xml文件。 1.3 后期维护 后期SSM项目后期xml文件特别多,维护xml文件的成本是很高的 1.4 部署工程 SSM工程部署也是很麻烦,依赖第三方的容器 1.5 敏捷式开发 基于Java的SSM开发...