文档章节

第一步:Spring访问数据库(jdbcTemplate)

明月_出天山
 明月_出天山
发布于 2014/01/04 15:29
字数 526
阅读 59
收藏 0


      首先当然是访问数据库,以前学习php的时候,就是从留言板、登录等功能开始学习的,之所以这样学习无非就是因为从前台到后台,该有的全都有了,完整而简洁的生命周期。

       用的是jdbcTemplate,这还是最近才了解到的。数据库是Oracle 11g,恰好虚拟机里装了,所以就用上了。



public class PlanDao {

	private JdbcTemplate jdbcTemplate;

	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	
	public Connection getConnection(){
		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		   DataSource springDataSource = (DataSource)ctx.getBean("springDataSource");
		   JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");
		   /*jdbcTemplate.setDataSource(springDataSource);   
		   setJdbcTemplate(jdbcTemplate);     */
		   DataSource dataSource = jdbcTemplate.getDataSource();
		   Connection conn = null;
		   try {
		    conn = dataSource.getConnection();
		   } catch (SQLException e) {
		    e.printStackTrace();
		   }
		   return conn;
	}
	
	public ResultSet queryPersons(String sql){
		   ResultSet rs = null;
		   try {
		    Connection connection = getConnection();
		    Statement st = connection.createStatement();
		    rs = st.executeQuery(sql);
		   } catch (SQLException e) {
		    e.printStackTrace();
		   }
		   return rs;
		} 
	
}



代码是复制别人的,倒也简洁明了,只是getConnection()方法第一行,原本复制来的时候ctx是用ApplicationContext定义的,但是ApplicationContext好像并不是后来new的对象的父类,报了错,所以修改了这么一点地方。另外applicationContext.xml我是放在了src目录下(Eclipse的动态网站工程)才试验成功的,放WEB-INF下报了“找不到文件”之类的错误。

applicationContext.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="springDataSource"
   class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName"
    value="oracle.jdbc.OracleDriver">
   </property>
   <property name="url"
    value="jdbc:oracle:thin:@192.168.1.152:1521:orcl">
   </property>
   <property name="username" value="plan"></property>
   <property name="password" value="admin"></property>
</bean>

<bean id="jdbcTemplate"
   class="org.springframework.jdbc.core.JdbcTemplate" abstract="false"
   lazy-init="false" autowire="default" dependency-check="default">
   <property name="dataSource">
    <ref bean="springDataSource" />
   </property>
</bean>
</beans>



用来测试的main方法类如下

public class Main {
	public static void main(String[] args) {
		PlanDao pd = new PlanDao();
		ResultSet rs = pd.queryPersons("select * from plan");
		int n = 0;
		try {
			while (rs.next()) {
				n++;
				System.out.println("id     = " + rs.getString(1));
				System.out.println("name   = " + rs.getString(2));
				System.out.println("gender = " + rs.getString(3));
				System.out.println("*******************************");
			}
			System.out.println("数据库中共有记录 " + n + " 条");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}



成功访问了数据库。 代码是复制的,所以贴上来了。这最初的代码可以测试一下。以后的代码更愿意贴图上来,不然在浏览器和在线编辑器里双滚动条滚得麻烦得很。


© 著作权归作者所有

共有 人打赏支持
明月_出天山
粉丝 10
博文 28
码字总数 6934
作品 0
南京
程序员
SpringBoot的dao层、JdbcTemplate多数据源访问实例

前言: Spring boot集成mybatis大致过程如下: (1)新建maven project,在pom.xml文件中引入相关依赖。 (2)配置文件application.yml(application.properties) (3)编写pojo实体类 (4...

wangxuwei
2017/11/01
0
0
这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
昨天
0
0
java基础---深入解析spring中用到的九种设计模式

转载请注明出处,文章首发于:http://itxxz.com/a/javashili/tuozhan/2014/0601/7.html 设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记...

u010775025
04/25
0
0
Spring JDBC最佳实践(1)

Spring提供了两种使用JDBC API的最佳实践,一种是以JdbcTemplate为核心的基于Template的JDBC的使用方式,另一种则是在JdbcTemplate基础之上的构建的基于操作对象的JDBC的使用方式。 基于Tem...

zuoer
2012/01/04
0
2
Spring JDBC最佳实践(2)

使用DataSourceUtils进行Connection的管理 由上节代码可知,JdbcTemplate在获取Connection的时候,并不是直接调用DataSource的getConnection(),而是调用了如下的代码: Connection con = Dat...

zuoer
2012/01/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python标准输入输出

input() 读取键盘输入 input() 函数从标准输入读入一行文本,默认的标准输入是键盘。 input 可以接收一个Python表达式作为输入,并将运算结果返回。 print()和format()输出 format()输出...

colinux
16分钟前
0
0
Python 核心编程 (全)

浅拷贝和深拷贝 1.浅拷贝:是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容。相当于把变量里面指向的一个地址给了另一个变量就是浅拷贝,而没有创建一个新的对象,如a...

代码打碟手
28分钟前
0
0
PHP 对象比数组省内存?错!数组比对象省内存?错!

刚刚一个群里有人引出了 PHP 数组和对象占用内存谁多谁少的问题。我想起之前我好像也测试过这个问题,和群里人说的对象比数组节省内存的结论相反,我得出的是数组比对象节省内存。 但今天,我...

宇润
45分钟前
1
0
memcached命令行及其用法

21.5 memcached命令行 创建数据 yum install -y telnet 利用telnet命令连接memcached数据库 telnet 127.0.0.1 11211 #写入数据 set key2 0 30 212STORED 这个是错误的示范,因为0 30 已经...

lyy549745
45分钟前
0
0
Maven私服

Maven私服 一、简介 当多人项目开发的时候,尤其聚合项目开发,项目和项目之间需要有依赖关系,通过maven私服,可以保存互相依赖的jar包,这样的话就可把多个项目整合到一起。 如下图: Inst...

星汉
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部