文档章节

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

明月_出天山
 明月_出天山
发布于 2014/01/04 15:29
字数 526
阅读 60
收藏 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();
		}
	}
}



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


© 著作权归作者所有

共有 人打赏支持
明月_出天山
粉丝 11
博文 28
码字总数 6934
作品 0
南京
程序员
SpringBoot实战(四)之使用JDBC和Spring访问数据库

这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库。 H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个...

youcongtech
08/03
0
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填坑之路
08/17
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

没有更多内容

加载失败,请刷新页面

加载更多

五类数据存储模型行、列、键值对、文档、图

1、行存储 定义:关系模型使用记录(行或者元组)进行存储,记录存储在表中,表由架构界定。表中的每个列都有名称和类型,表中的所有记录都要符合表的定义。SQL是专门的查询语言,提供相应的...

PeakFang-BOK
30分钟前
1
0
部署springcloud到docker中

1.在centos7中安装docker 2.打包eureka-server: 修改application.properties: 此处,eureka.instance.perfer-ip-address=true 表示实例地址为服务器的ip地址 使用maven命令打包: cmd进入项...

狼王黄师傅
45分钟前
1
0
赋能,打造不确定性敏捷团队

writeademo
46分钟前
1
0
Go interface{} to string

package mainimport "fmt"func main() {var a interface{}a = "dsadjaldaldad"var b stringb = a.(string) // 话说,用人话说的话,这叫什么操作?fmt.Println(a, b)}...

taadis
48分钟前
0
0
数据库防火墙

数据库防火墙顾名思义是一款数据(库)安全设备,从防火墙这个词可以看出,其主要作用是做来自于外部的危险隔离。换句话说,数据库防火墙应该在入侵在到达数据库之前将其阻断,至少需要在入侵...

突突突酱
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部