SpringJDBC的简单应用

时间:2022-05-20 09:04:05

此处写上应用JdbcTemplate的dao操作数据库的一些代码(含基本的增删改查,注:重点是查询出多条语句的写法):

package org.sakaiproject.zhaorui.dao.impl;

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

import javax.annotation.Resource;

import org.sakaiproject.zhaorui.dao.StudentDao;
import org.sakaiproject.zhaorui.model.Student;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

@Repository
public class StudentDaoImpl implements StudentDao {
 
    @Resource(name="jdbcTemplate")
    private JdbcTemplate jdbcTemplate;

@SuppressWarnings("unchecked")
    @Override
    public List<Student> selectAll() {
        String sql = "select * from Student";
        return jdbcTemplate.query(sql,new StudentMapper());
        
    }
    @Override
    public void insertStudent(Student student) {
        try {
            jdbcTemplate.execute("insert into student(username,userpassword,userother) values("+student.getUsername()+","+student.getUserpassword()+","+student.getUserother()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Override
    public boolean updateStudent(Student student) {
        try {
            jdbcTemplate.update("update student set username="+student.getUsername()+",userpassword="+student.getUserpassword()+",userother="+student.getUserother()+" where usernumber = "+student.getUsernumber());
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
    @Override
    public boolean deleteStudent(Integer usernumber) {
        try {
            jdbcTemplate.execute("delete from student where usernumber="+usernumber);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

}
class StudentMapper implements RowMapper {  
      
    @Override
    public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
          Student stu = new Student();  
           stu.setUsername(rs.getString("username"));
           stu.setUsernumber(rs.getInt("usernumber"));
           stu.setUserother(rs.getString("userother"));
           stu.setUserpassword(rs.getString("userpassword"));
        return stu;
    }
}

注:如果查询出来的是一条结果或者结果是基本类型,用下面代码即可,不用重写rowMapper的借口

package org.sakaiproject.zhaorui.dao.impl;

import org.sakaiproject.zhaorui.dao.TestDao;

import javax.annotation.Resource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class TestDaoImpl implements TestDao {
    
    @Resource(name="jdbcTemplate")
    private JdbcTemplate jdbcTemplate;

@Override
    public int count() {
        return jdbcTemplate.queryForObject("select count(1) from sakai_user", Integer.class);
    }

}

具体的SpringJDBC的例子请参照:http://my.oschina.net/u/218421/blog/38598,里面写的已经很详细了

SpringJDBC的简单应用的更多相关文章

  1. springmvc springJDBC 简单实训银行账户管理系统

    springmvc springJDBC 简单实训银行账户管理系统 1.简单介绍一下,在校时每周结束都会有一次学习总结,简称“实训”,这次实训内容是spring,因为是最近热门框架,我就先从基础方面开 ...

  2. springJDBC实现mysql简单分页

    效果图:

  3. 框架dubbox的简单使用

    之前: RPC: Remote Produedure Call :一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议 SOA: Service-oriented architect ...

  4. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  5. Quartz定时任务简单实例

    文章纲要: 初步搭建一个由Quartz为引擎集群的定时任务模块,功能为每隔30秒打印一条信息(Hello World!!!) 一.环境 Spring MVC Mevan Quartz 2.2.1 二. ...

  6. Intellij IDEA &plus;MAVEN&plus;Jetty实现SpringMVC简单查询功能

    利用 Intellij IDEA +MAVEN+Jetty实现SpringMVC读取数据库数据并显示在页面上的简单功能 1 新建maven项目,配置pom.xml <project xmlns= ...

  7. 搭建最简单的SpringMVC框架&lpar;使用maven&rpar;

    本文说明:本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手. 下载链接 点此进入下载链接 1.创建一个maven webapp工程. 2.修改WEB-INF目录下的we ...

  8. SpringJDBC

    <!-- JdbcTemplate:最基础的springJDBC模板,这个模板支持最简单的jdbc数据库访问功能以及简单的索引参数查询 NamedParameterJdbcTemplate:使用 ...

  9. SpringSecurity的简单应用(一)

    java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...

随机推荐

  1. 大型网站seo优化之行业网站seo优化具体操作思路

      第一部分:站内优化 第二部分:站外优化 第三部分:内容建设 第四部分:网站完善 一.站内优化 1.站内结构优化 2.内链策略 3.站内细节优化 4.网站地图设置 5.关键词竞争度分析 5.关键词部 ...

  2. python基础——使用模块

    python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  3. &lbrack;CareerCup&rsqb; 13&period;6 Virtual Destructor 虚析构函数

    13.6 Why does a destructor in base class need to be declared virtual? 这道题问我们为啥基类中的析构函数要定义为虚函数.首先来看下面 ...

  4. iOS 定制controller过渡动画 ViewController Custom Transition使用体会

    最近学习了一下ios7比较重要的一项功能,就是 controller 的 custom transition. 在ios7中,navigation controller 中就使用了交互式过渡来返回上级 ...

  5. 1028 C语言文法

    <程序> ->  <外部声明> |  <程序>  <外部声明> <外部声明>  ->   <函数定义>  |  &l ...

  6. 大话设计模式C&plus;&plus;实现-第22章-桥接模式

    一.UML图 二.概念 桥接模式(Bridge):将抽象部分与它的实现部分分离,使他们都能够独立地变化. 三.说明 为什么叫"桥接模式"? 如上所看到的的UML图中,有一个聚合线, ...

  7. redmine 安装(Centos 6&period;5 x64)

    参考:http://www.linuxidc.com/Linux/2015-03/115545.htm 平台搭建 1)基础环境 yum -y install libyaml-devel zlib-de ...

  8. PHY过采样问题

    什么频率下进行过采样 ?? 按时程序是LMDS时钟小于100M时会进行过程采样,实际上PHY的文档上也有明确的说明: The minimum operational data rate is 1.0 ...

  9. 转 VS2010 RDLC 横向合并时&OpenCurlyDoubleQuote;未正确设置 tablix&OpenCurlyDoubleQuote;Tablix1”的 FixedData 属性”错误解决方法 &period;

    最近在使用Rdlc做报表打印,有些报表的表头需要合并表头.Rdlc本身提供了横向合并的工具,但是在实际合并的时候,会出现“未正确设置 tablix“Tablix1”的 FixedData 属性.除非在 ...

  10. Linux-2&period;6驱动程序分层分离概念

    下面以一个按键的实验作为驱动分离时间简单学习: #include <linux/module.h> #include <linux/version.h> #include &l ...