【学习笔记】Spring JdbcTemplate (3-3-3)
Spring与JDBC模板(jdbcTemplate)
为了避免直接使用JDBC而带来的复杂冗长的代码
Spring提供的一个强有力的模板类 -- jdbcTemplate
简化JDBC操作
并且数据源DataSource对象与模板JdbcTemplate对象
都可以通过Bean的形式定义在配置文件中 充分发挥了依赖注入的威力
1.jar包
Spring jdbc jar包
spring tx (事务jar包)
2.导入命名空间
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
3.搭建分层
//beans
public class Book{
private int bid;
private String bname;
private int bprice;
} //dao
public interface IBookDao{
int addBook(Book book);
}
//impl
public class BookDaoImpl implements IBookDao{
public int addBook(Book book){ return 0;
}
} //service
public interface IBookBiz{
int addBook(Book book);
}
//impl
public class BookBizImpl implements IBookBiz{
private IBookDao dao;
public int addBook(Book book){ return dao.addBook();
}
}
//xml配置
//dao
<bean id="bookdao" class="xx.xx.BookDaoImpl"></bean> //service
<bean id="bookbiz" class="xx.xx.BookBizImpl">
<property name="dao" ref="bookdao"></property>
</bean>
4.注册数据源
注册源分为三类 如下
Spring 内置的 DriverManagerDataSource
DBCP BasicDataSource
C3P0 ComboPooledDataSource
//DriverManagerDataSource
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///book"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean> //BasicDataSource
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///book"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean> //ComboPooledDataSource
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClasss" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql:///book"></property>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
</bean> 4.jdbc的属性文件
//jdbc.properties
jdbc.driver=xxx
jdbc.url=xxx
jdbc.username=xxx
jdbc.password=xxx //xml
1.PropertyPlaceholderConfigurer 2.<context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClasss" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean> 1.PropertyPlaceholderConfigurer
<bean class="PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"></property>
</bean>
以上是XML中配置三种数据源 的方法
以及使用properties文件配置的方法
5.继承JdbcTemplate 实现新增一本图书
public class BookDaoImpl extends JdbcDaoSupport implements IBookDao{
public int addBook(Book book){
String sql="xxx";
return this.getJdbcTeplate().update(sql,book.getBname,book.getBprice);
}
}
6.书写测试类
@Test
public void test1() {
ApplicationContext ctx =
new ClassPathXmlApplicationContext("applicationContext.xml");
IBookBiz biz = (IBookBiz) ctx.getBean("bookBiz");
Book book = new Book();
book.setBname("第二本书");
book.setBprice(10); biz.add(book);
}

运行之后 成功在数据表中 插入了一条记录
使用注解的方式实现使用JdbcTemplate连接数据库
1.DAO IMPL
@Repository
public class BookDaoImpl implements IBookDao {
@Resource
private JdbcTemplate template; public int add(Book book) {
String sql = "insert into book values(null,?,?)";
int update = getTemplate().update(sql, book.getBname(), book.getBprice());
return update;
} public JdbcTemplate getTemplate() {
return template;
} public void setTemplate(JdbcTemplate template) {
this.template = template;
}
}
2.BIZ IMPL
@Service("bookBiz")
public class BookBizImpl implements IBookBiz {
@Autowired
private IBookDao dao;
public int add(Book book) {
return dao.add(book);
}
public IBookDao getDao() {
return dao;
}
public void setDao(IBookDao dao) {
this.dao = dao;
}
}
3.XML配置
<context:component-scan base-package="sword"></context:component-scan>
<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///book"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!--jdbcTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
【学习笔记】Spring JdbcTemplate (3-3-3)的更多相关文章
- Spring学习笔记--spring+mybatis集成
前言: 技术的发展, 真的是日新月异. 作为javaer, 都不约而同地抛弃裸写jdbc代码, 而用各种持久化框架. 从hibernate, Spring的JDBCTemplate, 到ibatis, ...
- Spring学习笔记--Spring IOC
沿着我们上一篇的学习笔记,我们继续通过代码学习IOC这一设计思想. 6.Hello类 第一步:首先创建一个类Hello package cn.sxt.bean; public class Hello ...
- Spring学习笔记:jdbcTemplate和数据源配置
一.使用Spring框架jdbcTemplate实现数据库的增删改查 1.数据库 /* SQLyog Ultimate v8.32 MySQL - 5.7.19-log : Database - in ...
- Spring学习笔记--Spring配置文件和依赖注入
Spring配置文件 1.alias:设置别名,为bean设置别名,并且可以设置多个别名; <!-- 设置别名 --> <alias name="user" al ...
- Spring Cloud学习笔记--Spring Boot初次搭建
1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...
- Spring4.0学习笔记(12) —— JDBCTemplate 操作数据库
整体配置 1.配置xml文件 <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi ...
- [spring入门学习笔记][spring的IoC原理]
什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...
- Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boo ...
- Spring学习笔记—Spring之旅
1.Spring简介 Spring是一个开源框架,最早由Rod Johnson创建,并在<Expert One-on-One:J2EE Design and Development> ...
- Spring学习笔记——Spring中的BeanFactory与FactoryBean
BeanFactory BeanFactory是Spring的org.springframework.beans.factory下的一个接口,是Spring IOC所遵守的基本编程规范.他的实现类有D ...
随机推荐
- angular4 中自定义pagination组件
你用Angular 吗? 一.介绍 一个基于angular4 开发的可以分页的组件.组件的好处就是可以复用,复用.....作为一个前端码农,开始的分页功能实现是我用jquery写的,其他同事用的时候都 ...
- MySql优化子查询
用子查询语句来影响子查询中产生结果rows的数量和顺序. For example: SELECT * FROM t1 WHERE t1.column1 IN (SELECT column1 FROM ...
- 自己动手搭建一个简易的SpringBoot环境
什么是springboot? Spring Boot俗称微服务.Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特 ...
- python_将多个小字符拼接成大字符?
案例: 下面有一个列表,如何把这个列表拼接成一个字符串? l = [1, 2, 3, 4, 'a', 'b', 'c'] 有哪些方法? 方法1: for进行迭代拼接 #!/usr/bin/python ...
- angular中要注意的指令
1.ng-repeat 遍历集合,给每个元素生成模板实例,每个实例的作用域中可以用一些特殊属性,如下: $index //遍历集合的下标 $first //遍历集合中的第一个对象 $last //遍历 ...
- 【转】十分有用的linux shell学习总结
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们 数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- Cacti在selinux开启的情况下使用
# chcon -R -t httpd_sys_content_t /var/www/html/cacti
- 【转】GPS基线的精化处理
影响基线解算结果的因素主要有: (1)基线解算时所设定的起点坐标不准确. 起点坐标不准确,会导致基线出现尺度和方向上的偏差,造成的影响目前还没有较容易的方法来加以判别,因此,在实际工作中,只有尽量提高 ...
- 浅谈python lambda
lambda x: x * x,实际上就是 def f(x): retrun x * x 关键字lambda表示匿名函数,冒号前的x表示函数参数. 匿名函数只能有一个表达式,不用写return,返回值 ...
- 网卡bond技术
概览: 目前网卡绑定mode共有七种(0~6)bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种: mode=0:平衡负载模式,有自动备援,但需要&quo ...