1.spring与jdbc整合应用

a。增删改

-获取connection

-获取statement

-设置sql中?参数

-执行sql操作

-释放connection

b。查询

-获取connection

-获取statement

-设置sql中?参数

-执行sql操作获取resultset结果

-将resultset结果封装成实体对象

-释放connection

1.spring提供了JdbcTemplate,编写DAO的工具类

a。jdbcTemplate.update("insert。。。。。",参数);

b。提供了aop事务管理(不需要再方法中追加事务提交和回滚)

c。提供了统一的异常处理DataAccessException

2.spring整合jdbc步骤

a。引入spring(ioc,aop,dao),数据库驱动,添加src/applicationContext.xml

b.编写实体类

c。编写DAO

d.在applicationContext.xml中扫描EmpDAO,注入JdbcTemplate对象

dbcp注入jdbctemplate,jdbctemplate注入empdao。

dbcp和jdbctemplate用的(xml的bean定义),empdao用的自动扫描。

例子:

spring.xml:

<!-- 开启自动扫描,扫描DAO -->

<context:component-scan base-package="org.alexhe"></context:component-scan>

<!-- 定义JdbcTemplate -->

<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">

<!-- 注入连接信息 -->

<property name="dataSource" ref="dbcp"></property>

</bean>

<bean id="dbcp" class="org.apache.commons.dbcp.BasicDataSource">

<property name="username" value="root"></property>

<property name="password" value="19850319a"></property>

<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

<property name="url" value="jdbc:mysql://localhost:3306/danei?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf8"></property>

</bean>

empdao.java:

@Repository//扫描Dao

public class EmpDao {

@Resource//注入

private JdbcTemplate template;//注入

public void save(Emp emp){

String sql="insert into emp(name,salary,age) values(?,?,?)";

Object[] params={emp.getName(),emp.getSalary(),emp.getAge()};

template.update(sql,params);

}

public void delete(int id){

String sql="delete from emp where id=?";

Object[] params={id};

template.update(sql,params);

}

public List<Emp> findAll(){

String sql="select * from emp";

EmpRowMapper rowMapper=new EmpRowMapper();

List<Emp> list=template.query(sql, rowMapper);

return list;

}

public Emp findById(int id){

String sql="select * from emp where id=?";

Object[] params={id};

EmpRowMapper rowMapper=new EmpRowMapper();

Emp emp=template.queryForObject(sql, params,rowMapper);

return emp;

}

}

Emp.java:

public class Emp implements Serializable{

private Integer id;

private String name;

private Double salary;

private Integer age;

省略get,set方法

EmpRowMapper.java:

/**将emp记录封装成Emp对象*/

public class EmpRowMapper implements RowMapper<Emp>{

@Override

public Emp mapRow(ResultSet rs, int index) throws SQLException {

// TODO Auto-generated method stub

Emp emp=new Emp();

emp.setId(rs.getInt("id"));

emp.setName(rs.getString("name"));

emp.setSalary(rs.getDouble("salary"));

emp.setAge(rs.getInt("age"));

return emp;

}

}

Test类:

public class TestEmpDao {

public static void main(String[] args) {

ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");

EmpDao empDao=ac.getBean("empDao",EmpDao.class);

Emp emp=new Emp();

emp.setName("spring1");

emp.setAge(201);

emp.setSalary(100010.0);

List<Emp> list=empDao.findAll();

System.out.println(list);

}

}

spring和jdbctemplate的更多相关文章

  1. Spring利用JDBCTemplate实现批量插入和返回id

    1.先介绍一下java.sql.Connection接口提供的三个在执行插入语句后可取的自动生成的主键的方法: //第一个是 PreparedStatement prepareStatement(St ...

  2. Spring 中jdbcTemplate 实现执行多条sql语句

    说一下Spring框架中使用jdbcTemplate实现多条sql语句的执行: 很多情况下我们需要处理一件事情的时候需要对多个表执行多个sql语句,比如淘宝下单时,我们确认付款时要对自己银行账户的表里 ...

  3. spring使用jdbcTemplate和jdbcdaosupport和namedparameter

    jdbcTemplate: 首先连接数据库 <!-- 导入外部文件 --> <context:property-placeholder location="classpat ...

  4. Spring之JDBCTemplate学习

    一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core. ...

  5. spring+spring mvc+JdbcTemplate 入门小例子

    大家使用这个入门时候 最好能够去 搜一下 spring mvc 的 原理,我放一张图到这里,自己琢磨下,后面去学习就容易了 给个链接 (网上一把,千万不能懒)    https://www.cnblo ...

  6. spring 学习(四): spring 的 jdbcTemplate 操作

    spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...

  7. Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法

    以User为操作对象 package com.swift.jdbc; public class User { private Long user_id; private String user_cod ...

  8. spring学习(四)spring的jdbcTemplate(增删改查封装)

    Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...

  9. Spring:JdbcTemplate使用指南

    Spring:JdbcTemplate使用指南 Spring:JdbcTemplate使用指南 前言: 本文指在介绍Spring框架中的JdbcTemplate类的使用方法,涉及基本的Spring反转 ...

  10. Spring中JdbcTemplate的基础用法

    Spring中JdbcTemplate的基础用法 1.在DAO中使用JdbcTemplate 一般都是在DAO类中使用JdbcTimplate,在XML配置文件中配置好后,可以在DAO中注入即可. 在 ...

随机推荐

  1. 发票打印不全不完整的解决方案(Win10)

    发票不管怎么设置,不是二维码缺少一点,就是金额小数点后边的数字显示不全 具体原因是打印机默认纸张上A4,实际发票纸张要比A4宽度宽一点点 原来写过一篇程序方便的打印票据的控制<终于部分解决了.N ...

  2. Lua require 相对路径

    lua require 加载方式与我们现在熟知的路径系统不太一样,想要知道lua require 方法的工作原理也很简单 随便写一个错误的require 代码即可: 1 require("l ...

  3. enctype和Content-type有什么关系

    enctype和Content-type有什么关系 当我们使用form表单上传文件时post请求的时候,需要在form表单中添加enctype="multipart/form-data&qu ...

  4. Java+Selenium3框架设计篇5-如何实现邮件发送测试报告

    https://blog.csdn.net/u011541946/article/details/77278837 本篇继续回答网友的问题,这个主题是如何通过邮件发送测试报告.通过邮件发送测试报告,这 ...

  5. 小程序学习笔记三:页面文件详解之视图层WXML、WXS、WXSS文件

      视图层:Pages主要有 wxml页面文件和模板文件.wxs脚本文件.wxss样式文件:component是抽取出来的业务单元,同样拥有wxml页面文件和模板文件.wxs脚本文件.wxss样式文件 ...

  6. 每天一个linux命令:df

    1.命令简介 df (disk free) 其功能显示每个文件所在的文件系统的信息,默认是显示所有文件系统. 2.用法 df [选项]... [文件]... 3.选项   4.示例 示例1:显示磁盘使 ...

  7. 美国FICO评分系统简介

    美国的个人信用评分系统,主要是Fair IsaacCompany 推出的 FICO,评分系统也由此得名.一般来讲, 美国人经常谈到的你的得分 ,通常指的是你目前的FICO分数.而实际上, Fair I ...

  8. MATLAB 统计元素出现的次数

    可以使用 hist 函数: A = [1 2 8 8 1 8 2 1 8 2 1]; count = hist(A,unique(A)) count的结果与unique(A)对应.

  9. [WPF] VisualBrush 中的布局

    今天插一篇随笔.说一说上周五遇到的一个布局问题,问题大概是这样的:需要在一个快区域上添加一张透明的背景图片,由于区域较大.并且宽高都不是固定大小,图片较小 所以图片需要居中显示.除此之外还需要在图片的 ...

  10. hive set 常用参数汇总

    1. set hive.auto.convert.join = true; mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去 ...