`
virusfu
  • 浏览: 182921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

derby嵌入式数据库在spring中应用

 
阅读更多

项目中使用到嵌入式数据库,选择derby数据库.具体的使用方法如下

1.搭建aplication程序,引入spring进行管理

2.应用中添加derby.jar 10.8.12 文件

3.spring 的xml配置中的dataSource配置:

 

 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close" abstract="false" scope="singleton" lazy-init="false"> 
		<property name="driverClass" value="org.apache.derby.jdbc.EmbeddedDriver" />
		<property name="jdbcUrl" value="jdbc:derby:${db_path};create=true" />
		<property name="checkoutTimeout" value="30000" />
		<property name="maxIdleTime" value="120" />
		<property name="maxPoolSize" value="10" />
		<property name="minPoolSize" value="1" />
		<property name="initialPoolSize" value="1" />
		<property name="maxStatements" value="0" />
		<property name="maxStatementsPerConnection" value="0" />
		<property name="idleConnectionTestPeriod" value="30" />
	</bean>

 

 采用c3p0做为数据源的管理,他会抛出一个可以忽略掉得异常

4.${db_path}是添加一个properties文件,文件里面的内容为创建数据库的路径:

db_path=D:/dev/eclipse/workspace/vaspposp/conf/db/posp_db

5.create=true是如果没有该数据就会创建一个新的

6.现在可以直接使用这个数据源进行数据库操作,也可以用spring的jdbcTemplte进行管理

7.项目的需求是当系统第一启动时需要动态创建数据库和表,并给表添加数据:

解决办法:

 1)创建一个sql文件,将要创建表的语句和插入语句放入其中,注意语句是标准sql

 2)当系统启动时读取该sql文件并执行,可创建读取sql文件的类:   

/**
	 * 读取 SQL 文件,获取 SQL 语句
	 * 
	 * @param sqlFile
	 *            SQL 脚本文件
	 * @return List<sql> 返回所有 SQL 语句的 String[]
	 * @throws Exception
	 */
	public String[] loadSql(File sqlFile) {
		List<String> sqlList = new ArrayList<String>();
		try {

			InputStream sqlFileIn = new FileInputStream(sqlFile);
			StringBuilder sqlSb = new StringBuilder();
			byte[] buff = new byte[1024];
			int byteRead = 0;
			while ((byteRead = sqlFileIn.read(buff)) != -1) {
				sqlSb.append(new String(buff, 0, byteRead, "utf-8"));
			}
			// Windows 下换行是 \r\n, Linux 下是 \n
			String[] sqlArr = sqlSb.toString()
					.split("(;\\s*\\r\\n)|(;\\s*\\n)");
			for (int i = 0; i < sqlArr.length; i++) {
				String sql = sqlArr[i].replaceAll("--.*", "").trim();
				if (!sql.equals("")) {
					sqlList.add(sql);
					LOG.info("加载 SQL 语句:{}", sql);
				}
			}
		} catch (Exception e) {
			LOG.error("读取 SQL 文件,获取 SQL 语句异常:{}", e.getMessage());
		}
		if (sqlList.size() > 0) {
			String[] sqlArr = new String[sqlList.size()];
			sqlList.toArray(sqlArr);
			return sqlArr;
		} else {
			return null;
		}
	}

 这个方法返回的是一个sql语句组成的数据,这个样正好可以使用jdbcTemplete的batchUpdate方法进行批量执行sql语句

8.这时有一个问题,就是当再次启动系统时,数据已经存在就不需要创建了,所以要检查是否有表的存在,否则会抛出异常,检查表的方式是:

/**
	 * 检查表是否存在
	 * @param tableName
	 * @return
	 */
	public boolean isTableExist(String tableName){
		try {
			Connection conn = dataSource.getConnection();
			ResultSet rs = conn.getMetaData().getTables(null, null, tableName, null);
			return rs.next();
		} catch (SQLException e) {
			LOG.error("检查表是否存在出现sql异常",e);
		}
		return false;
	}
 这样就可以避免异常的出现

分享到:
评论

相关推荐

    spring-boot-derby:Apache Derby嵌入式数据库的Spring Boot Java技术员

    此外,Spring Boot还支持使用`DataJpaTest`注解进行嵌入式数据库的测试,这使得在单元测试中无需依赖外部数据库,提高了测试效率。 总之,Apache Derby作为Spring Boot的嵌入式数据库选项,提供了一种轻量级、易于...

    derby数据库

    3. **嵌入式数据库**:Derby可以被直接嵌入到Java应用程序中,作为一个类库运行,无需独立服务器进程。这对于开发简单应用或者进行快速原型开发非常方便。 4. **网络模式**:除了嵌入式模式,Derby还支持网络模式,...

    derby+myBatis 入门

    教程可能还会介绍如何在Spring中配置MyBatis,以及如何使用@Autowired注解注入Mapper接口。 9. **测试和调试**:在学习完基本操作后,通常会创建JUnit测试用例来验证数据库操作是否正确。这将涉及如何编写测试方法...

    spring-embedded-database:Spring嵌入式数据库示例

    使用HSQLDB,H2和Derby的Spring 4 MVC +嵌入式数据库示例的模板。 ### 1。 使用的技术 Maven的3.0 春天4.1.6.RELEASE HSQLDB 2.3.2 氢气1.4.187 德比10.11.1.1 ### 2。 在本地运行该项目 $ git clone ...

    spring3+hibernate3+derby的实例

    在IT行业中,Spring、Hibernate和Derby是三个非常重要的开源框架和数据库系统,它们在Java Web开发中扮演着关键角色。下面将详细解释这三个技术及其整合应用。 **Spring框架** Spring是一个全面的Java应用程序框架...

    SpringH2EmbeddedDatabase:Spring、Hibernate ORM、Spring H2 嵌入式数据库。 Gradle 作为构建工具和依赖项管理。 Logback 作为日志框架。 Lombok避免锅炉板代码

    Spring 嵌入式数据库,H2 类型。 Hibernate ORM 4.2.10-最终版。 Lombok Gradle 构建工具。 使用 IntelliJ IDEA 进行开发(可选) 先决条件。 需要 JAVA 1.8。 必须安装 Gradle 并设置 GRADLE_HOME 如何运行...

    db-derby-10.13.1.1-bin.tar.gz

    4. **网络模式与嵌入式模式**:Derby提供两种运行模式,嵌入式模式下,数据库引擎与应用在同一JVM内运行,适合单用户或小团队使用;网络模式下,数据库引擎作为独立服务器运行,可以服务多个客户端连接。 5. **事务...

    QuickKnowledge网站源代码

    - 通过分析QuickKnowledge嵌入式数据库源代码,开发者可以了解如何在实际项目中结合SSH框架和Derby数据库进行开发。这包括但不限于:数据库连接池的配置、实体类的设计、DAO接口及其实现、Service层逻辑处理、...

    Spring-Boot-App:这是REST API的Spring启动应用程序

    它使用Apache Derby嵌入式数据库 GET-&gt; getAll ---&gt; 200 响应对象 [ { "isbn":"978-0321356680", "name":"Effective Java", "discription":"Addison Wesley" }, { "isbn":"978-1617292545", "name":...

    apache derby 学习资料

    Derby设计用于嵌入式应用,这意味着你可以直接在应用程序内部集成数据库,无需单独的服务器进程。它非常适合小型到中型的应用场景,比如桌面应用、移动应用或测试环境。 在“Apache Derby学习资料”中,你将探索...

    [课堂课件讲解]Java微服务实践-Spring Boot 数据库JDBC.pptx

    3. 嵌入式数据源(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase):主要用于本地文件系统数据库,如HSQL、H2、Derby等。 二、事务(Transaction) 事务用于提供数据完整性,并在并发访问下确保...

    samb:一个带有 Derby、MyBatis、Spring MVC、AngularJS、AngularUI、Bootstrap、jQuery 的 Web 框架

    它支持Java平台,并且被设计成嵌入式数据库,适合在分布式或小型应用程序中使用。 ** MyBatis **:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动...

    Spring3.0新特性

    10. 嵌入式数据库支持:允许在开发和测试环境中使用如 H2 或 Derby 等轻量级嵌入式数据库。 三、针对 Java 5 的核心 API 升级 1. BeanFactory 接口的改进:增加了对泛型的支持,使得获取 Bean 实例更加类型安全。 2...

    JAVA数据库驱动大全(jar)

    - Apache Derby:使用derby.jar,Apache开源的嵌入式数据库,支持JDBC。 4. 使用JDBC驱动步骤: - 加载驱动:Class.forName("com.mysql.jdbc.Driver")。 - 创建连接:Connection conn = DriverManager.get...

    Spring3.2中文版.docx

    7. **嵌入式数据库支持**:Spring 3.2开始支持如HSQLDB、Derby等嵌入式数据库,便于开发和测试。 8. **缓存抽象**:在3.1版本中引入了缓存抽象,使得缓存管理变得更加简单,支持包括 EhCache、Gemfire等多种缓存解决...

    ShopDemo.zip

    Derby是一款轻量级的关系型数据库管理系统,它是Apache软件基金会的开源项目,具有易于使用、嵌入式的特点,适合小型应用程序和开发环境。在ShopDemo项目中,Derby用于存储商品、用户等核心业务数据,提供数据存储和...

    SpringSide 3.1.4.3项目开发全过程

    这通常涉及到导出Derby的数据库结构和数据,然后根据MySQL的语法调整SQL脚本,最后在MySQL环境中执行这些脚本。记得修改项目配置以连接到新的MySQL数据库,包括在application.properties或类似的配置文件中更新...

    activemq-rar-4.1.1.rar

    2. **derby-10.1.1.0.jar**:Apache Derby是一个轻量级的关系型数据库,常被用作测试和开发环境中的嵌入式数据库。在ActiveMQ中,可能用于存储消息或其他元数据。 3. **activemq-core-4.1.1.jar**:这是ActiveMQ的...

    详解spring boot中使用JdbcTemplate

    对于开发和测试环境,Spring Boot支持多种嵌入式数据库,如H2、HSQL和Derby。例如,你可以通过引入HSQL的依赖来使用它: ```xml &lt;groupId&gt;org.hsqldb &lt;artifactId&gt;hsqldb &lt;scope&gt;runtime ``` 在生产环境中,...

    SpringDataJPA-Learning:Spring Boot JPA学习项目

    在本项目中,Derby可能被用作测试数据库,因为它是轻量级的,易于配置,适合于快速原型开发或小型项目。 **5. Spring Data JPA的核心概念** - **Repository**: 仓库接口,是Spring Data JPA的核心,它是对数据访问...

Global site tag (gtag.js) - Google Analytics