Spring(七)--Spring JDBC
Spring JDBC
1.需要的实体类和数据库


2.需要的dao层

package com.xdf.dao; import com.xdf.bean.Student;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport; import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; /**
* dao的实现类
* 书写sql
* JdbcDaoSupport====>BaseDao
* JdbcDaoSupport有两个重要的属性
* 01.jdbcTemplate 模版
* 02.需要 dataSource ===>数据源
*
* JdbcDaoSupport 所有的增删改 都是update
* 查询是query
*
*/
public class StudentDaoImpl extends JdbcDaoSupport implements StudentDao { public int add(Student student) {
String sql="insert into student values(?,?)";
return getJdbcTemplate().update(sql,student.getsId(),student.getsName());
} public int del(Serializable id) {
String sql="delete from student where sid=?";
return getJdbcTemplate().update(sql,id);
} public int update(Student student) {
String sql="update student set sname=? where sid=?";
return getJdbcTemplate().update(sql,student.getsName(),student.getsId());
} public List<Student> getAll() {
String sql="select * from student";
//使用匿名内部类
return getJdbcTemplate().query(sql,new RowMapper<Student>(){
/**
* 这里的ResultSet是返回一个对象!
* 我们之前使用的是 一个结果集!
*/
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
//创建student对象 依次返回
Student student=new Student();
student.setsId(rs.getInt("sid"));
student.setsName(rs.getString("sname"));
return student;
}
});
}
}
3.需要的service层

package com.xdf.service; import com.xdf.bean.Student;
import com.xdf.dao.StudentDao; import java.io.Serializable;
import java.util.List; public class StudentServiceImpl implements StudentService { //交给spring容器实例化dao层对象
private StudentDao dao; public StudentDao getDao() {
return dao;
} public void setDao(StudentDao dao) {
this.dao = dao;
} public int add(Student student) {
return dao.add(student);
} public int del(Serializable id) {
return dao.del(id);
} public int update(Student student) {
return dao.update(student);
} public List<Student> getAll() {
return dao.getAll();
}
}
4.需要的jdbc.properties

5.需要的核心配置文件
<?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"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
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/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--引入需要的jdbc.properties文件-->
<context:property-placeholder location="classpath:jdbc.properties"/> <!--01.使用spring自带的数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.userName}"/>
<property name="password" value="${jdbc.password}"/>
</bean>--> <!--02.使用c3p0自带的数据源
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClassName}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.userName}"/>
<property name="password" value="${jdbc.password}"/>
</bean>--> <!--03.使用dbcp自带的数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.userName}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置dao层对象-->
<bean id="studentDao" class="com.xdf.dao.StudentDaoImpl">
<property name="dataSource" ref="dataSource"/>
</bean> <!-- 配置service层对象-->
<bean id="studentService" class="com.xdf.service.StudentServiceImpl">
<property name="dao" ref="studentDao"/>
</bean>
</beans>
6.测试类

未完待续!!!
Spring(七)--Spring JDBC的更多相关文章
- Spring使用原生JDBC
Spring使用原生JDBC 为加深对Spring解耦的理解,本次实验学习用Spring连接JDBC 一.POM配置文件 pom.xml <project xmlns="http:// ...
- Spring框架的JDBC模板技术和事物
Spring框架的JDBC模板技术 技术分析之Spring框架的JDBC模板技术概述 1. Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 ...
- Spring 中的 JDBC 事务
Spring 对 JDBC 的支持 JdbcTemplate 简介 •为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. • ...
- 使用Spring JDBCTemplate简化JDBC的操作
使用Spring JDBCTemplate简化JDBC的操作 接触过JAVA WEB开发的朋友肯定都知道Hibernate框架,虽然不否定它的强大之处,但个人对它一直无感,总感觉不够灵活,太过臃肿了. ...
- 【转】在Spring中基于JDBC进行数据访问时怎么控制超时
http://www.myexception.cn/database/1651797.html 在Spring中基于JDBC进行数据访问时如何控制超时 超时分类 超时根据作用域可做如下层级划分: Tr ...
- spring框架总结(04)----介绍的是Spring中的JDBC模板
1.1 Jdbc模板概述 它是spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装.spring框架为我们提供了很多的操作模板类,入下图所示: 我们今天的主角在spring-jd ...
- Spring 对JDBC操作的支持
1.Spring 对JDBC操作的支持 Spring对jdbc技术提供了很好的支持,体现在: 1.Spring对c3p0连接池的支持很完善 2.Spring对jdbc提供了jdbcTemplate,来 ...
- Spring中使用JDBC
Spring中的数据库异常体系 使用JDBC(不使用Spring)的时候,我们需要强制捕获SQLException,否则无法使用JDBC处理任何事情.SQLException表示尝试访问数据库的时候出 ...
- Spring Boot 整合JDBC 实现后端项目开发
一.前言 二.新建Spring Boot 项目 三.Spring Boot 整合JDBC 与MySQL 交互 3.1 新建数据表skr_user 3.2 Jdbcproject 项目结构如下 3.3 ...
- Spring框架学习(3)spring中使用jdbc
内容源自:spring中使用jdbc spring dao层中对jdbc进行了封装,使用模板模式的设计模式,通过ioc被动注入的方式将jdbcTemplate这个模板类注入到数据对象中,进行数据库操作 ...
随机推荐
- FFT用于高效大数乘法(当模板用)
转载来源:https://blog.csdn.net/zj_whu/article/details/72954766 #include <cstdio> #include <cmat ...
- HGOI20190811 省常中互测4
Problem A magic 给出一个字符串$S$,和数字$n$,要求构造长度为$n$只含有小写字母的字符串$T$, 使得在$T$中存在删除且仅删除一个子串使得$S=T$成立. 输出$T$的构造方案 ...
- pycharm代码无法自动补全
今天写代码时,突然pycharm代码无法自动补全了,经查找后,解决方案如下: 将python 和 spelling 选中即可 后续:当刚打开pycharm时,出现下面的进度条,代码补全功能完好:但是当 ...
- python学习---50行代码实现图片转字符画1
转自:https://blog.csdn.net/mm1030533738/article/details/78447714 项目链接: https://www.shiyanlou.com/cours ...
- HearthBuddy炉石兄弟 Method 'CollectionDeckBoxVisual.IsValid' not found.
[CollectionManagerScene_COLLECTION] An exception occurred when calling CacheCustomDecks: System.Miss ...
- Note: Bigtable, A Distributed Storage System for Structured Data
Abstract Introduction:: Bigtable设计主旨:可扩地扩展到pByte级别和数千台机器的系统, 通用.可伸缩.高性能.高可用性. 不实现完整的关系数据模型,而是支持一个可 ...
- 一、基础篇--1.1Java基础-什么是java的序列化和反序列化
什么是序列化和反序列化 序列化:把堆内存中的java对象数据,通过某种方式把对象存储到磁盘文件或者传递给其他网络节点.这个过程称为序列化.简单来说呢,就是将对象转换成二进流的过程. 反序列化:把磁盘 ...
- PHP CI框架数据传递渲染
实例: //控制器 class Index extends CI_Controller { //因为类名是特殊字,所以为了运行正常添加构造函数 function __construct(){ pare ...
- P2118 比例简化
P2118 比例简化 题解 这题考虑暴力枚举,枚举1~L的两个数 反正数据也很小 代码 #include<bits/stdc++.h> using namespace std; int a ...
- 转 Go语言基本类型 —— 字符类型
https://blog.csdn.net/FHD994603831/article/details/92435724 字符类型Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用b ...