Spring与Jdbc Demo
方法一:继承JdbcTemplate来实现
1、配置applicationContext
<!-- 获取数据源连接 dbcp -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/hibernatetest"></property>
<property name="username" value="root"></property>
<property name="password" value="mysql"></property>
</bean> <!-- ********************************** -->
<bean id="personDao" class="cn.test.spring.jdbc.PersonDaoImpl">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
2、继承applicationContext
public class PersonDaoImpl extends JdbcDaoSupport implements PersonDao { public void savePerson() {
this.getJdbcTemplate().execute(" INSERT INTO person(pid,Pname,Page) VALUES(2,'李四',50) "); }
3、测试
@Test
public void savePerson(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("cn/test/spring/jdbc/applicationContext.xml");
PersonDao personDao= (PersonDao) applicationContext.getBean("personDao");
personDao.savePerson();
}
方法二:jdbcTemplate作为属性带入
1、配置applicationContext.xml
<!-- 获取数据源连接 dbcp -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/hibernatetest"></property>
<property name="username" value="root"></property>
<property name="password" value="mysql"></property>
</bean> <!-- ********************************** --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="personDao2" class="cn.test.spring.jdbc.PersonDaoImpl2">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean>
2、声明字段
public class PersonDaoImpl2 implements PersonDao { private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
} public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
} public void savePerson() {
this.getJdbcTemplate().execute(" INSERT INTO person(pid,Pname,Page) VALUES(22,'李四2',502) "); }
3、测试
@Test
public void savePerson2(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("cn/test/spring/jdbc/applicationContext.xml");
PersonDao personDao= (PersonDao) applicationContext.getBean("personDao2");
personDao.savePerson();
}
方法三:通过构造函数
1、配置applicationContext.xml
<!-- 获取数据源连接 dbcp -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/hibernatetest"></property>
<property name="username" value="root"></property>
<property name="password" value="mysql"></property>
</bean> <!-- ********************************** -->
<bean id="personDao3" class="cn.test.spring.jdbc.PersonDaoImpl3">
<constructor-arg index="0" ref="dataSource"></constructor-arg>
</bean>
2、构造函数
public class PersonDaoImpl3 extends JdbcTemplate implements PersonDao { public PersonDaoImpl3(DataSource dataSource){
super(dataSource);
} public void savePerson() {
this.execute(" INSERT INTO person(pid,Pname,Page) VALUES(23,'李四3',503) "); }
3、测试
@Test
public void savePerson3(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("cn/test/spring/jdbc/applicationContext.xml");
PersonDao personDao= (PersonDao) applicationContext.getBean("personDao3");
personDao.savePerson();
}
注:以上方法只能进行增删改,不能进行查找
查找:
目标方法:
public List<Person> getPersons() {
return this.getJdbcTemplate().query("select * from person", new PersonRowMapper());
}
PersonRowMapper.java
public class PersonRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Person person=new Person();
person.setPid(rs.getLong("pid"));
person.setPname(rs.getString("Pname"));
person.setPage(rs.getString("Page"));
return person;
}
测试
@Test
public void testQuery(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("cn/test/spring/jdbc/applicationContext.xml");
PersonDao personDao= (PersonDao) applicationContext.getBean("personDao");
List<Person> personList = personDao.getPersons();
System.out.println(personList.size());
}
Spring与Jdbc Demo的更多相关文章
- Spring MVC系列之JDBC Demo(SpringBoot)(七)
前言 前面我们了解了Spring MVC的基本使用,其实和.NET或.NET Core MVC无异,只是语法不同而已罢了,本节我们将和和数据库打交道,从最基础的JDBC讲解起,文中若有错误之处,还望指 ...
- JAVAEE——spring03:spring整合JDBC和aop事务
一.spring整合JDBC 1.spring提供了很多模板整合Dao技术 2.spring中提供了一个可以操作数据库的对象.对象封装了jdbc技术. JDBCTemplate => JDBC模 ...
- Spring整合JDBC以及AOP管理事务
本节内容: Spring整合JDBC Spring中的AOP管理事务 一.Spring整合JDBC Spring框架永远是一个容器,Spring整合JDBC其实就是Spring提供了一个对象,这个对象 ...
- Spring Security OAuth2 Demo
Spring Security OAuth2 Demo 项目使用的是MySql存储, 需要先创建以下表结构: CREATE SCHEMA IF NOT EXISTS `alan-oauth` DEFA ...
- Spring学习笔记(五)—— Spring整合JDBC
一.Spring对JDBC的支持 Spring提供了很多模板整合Dao技术 与JDBC的整合中,Spring中提供了一个可以操作数据库的对象——JdbcTemplate,该对象封装了JDBC技术,与D ...
- 四、spring的JDBC模板和事务管理
Spring的JDBC模板 Spring是JavaEE开发的一站式框架,对各种持久化技术都提供了简单的模板 ORM持久化技术 模板类 JDBC org.springframework.jdbc.cor ...
- Spring的简单demo
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
- Spring的JDBC框架
转自: http://www.cnblogs.com/windlaughing/p/3287750.html Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- bzoj2002
这道题学习了一种简洁的解决一些数据结构题的方法——分块法这道题方法很多,但分块写起来只有1kb左右,非常的简洁(但不是非常的高效)首先很容易思考到一种暴力的做法,从后往前推,很容易搞出每个点会弹几次弹 ...
- Linux Kernel 'perf_event.c'本地权限提升漏洞
漏洞版本: Linux Kernel 3.11-rc4 漏洞描述: Linux Kernel是一款开源的操作系统 Linux Kernel 'perf_event.c'存在一个安全漏洞,允许本地攻击者 ...
- PuTTY DSA签名远程缓冲区溢出漏洞(CVE-2013-4207)
漏洞版本: Simon Tatham PuTTY 0.52 - 0.63 漏洞描述: BUGTRAQ ID: 61649 CVE(CAN) ID: CVE-2013-4207 PuTTY是Window ...
- js或者cs代码拼接html
一:使用到的jQuery 文档操作方法 html() 设置或返回匹配的元素集合中的 HTML 内容. append() 向匹配元素集合中的每个元素结尾插入由参数指定的内容. empty() 删除匹配的 ...
- yarn的初步理解
查考site: http://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-site/YARN.html yarn结构图如下: 1.yar ...
- 天津Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Traffic Lights - SGU 103(最短路)
题目大意:有一个城市的路线图,有N个交叉点,每两个交叉点之间只有一条路,现在想从交点u去交点v,不过这个路的交通比较特别,每个路都有一个交通灯,灯有两种颜色,蓝色和紫色,例如一条路线在交点s,t之间, ...
- 【设计模式 - 15】之解释器模式(Interpreter)
1 模式简介 解释器模式允许我们自定义一种语言,并定义一个这种语言的解释器,这个解释器用来解释语言中的句子.由于这种模式主要用于编译器的编写,因此在日常应用中不是很常用. 如果一种特定类型的 ...
- 【Android - V】之SwipeRefreshLayout的使用
SwipeRefreshLayout是Android V4.V7包中的一个控件,是Google给我们提供的一个下拉刷新的布局控件,可以轻松完成下拉刷新. SwipeRefreshLayout的特点是其 ...
- 文件上传~Uploadify上传控件~续(多文件上传)
对于Uploadify文件上传之前已经讲过一次(文件上传~Uploadify上传控件),只不过没有涉及到多文件的上传,这回主要说一下多个文件的上传,首先,我们要清楚一个概念,多文件上传前端Upload ...