Eclipse中连接Oracle

     新建一个java项目Connectoracle,在该项目下建一个包,取名为oracletest,在包下建一个类,取名为OracleTest,将以下代码考入类文件里。

package oracletest;

import java.sql.*;

public class OracleTest {
	public static void main(String[] args) {
		// String serverName = "localhost";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("1");
			String url = "jdbc:oracle:thin:@localhost:1521:icss";
			Connection conn = DriverManager
					.getConnection(url, "system", "manager1");
			System.out.println("2");
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("select * from table1");
			while (rs.next()) {
				System.out.println(rs.getString("id"));
				System.out.println(rs.getString("name"));
			}
		} catch (SQLException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	}
}

 如果运行成功,表示连接成功。

 

运行时可能会报错

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at oracletest.OracleTest.main(OracleTest.java:9)

这是因为我们没有引入oracle的jdbc连接类。

    在项目名上右击,选择properties

    在弹出的窗口里选择Java Build Path -> Libraries -> Add External JARS…

    然后选择D:\oracle\ora92\jdbc\lib目录(其中D:\oracle是我的安装目录)下的ojdbc14.jar文件,选择【打开】

    我们看到已经添加成功

    选择OK。再次运行程序就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个不怎么智能,半手工方式的,但最适合实际开发的java代码生成器 核心理念: 为你生成一切,再根据所需手工copy回来工作区 用最精简的代码完成最核心的功能 特性 基于FreeMarker模板语言,并且模板易于修改 基于数据库,内建好数据库的model,并支持多种数据库(mysql,sql server,oracle测试通过) 半手工方式,生成的代码放在某个目录,再手工拷贝回来工作区 易于做二次开发,整个生成器本身就是java源代码,源代码核心十分精简,并且鼓励你修改代码,也可以作为任何语言的代码生成器 配置简单,只有一个配置文件generator.properties 生成器的运行 在eclipse运行 配置classpath,将generator/lib的rapid-generator.jar及其它数据库驱动加入classpath 修改generator.xml的数据库连接属性及其它属性 以application的方式运行GeneratorMain类,要生成不同的table,直接修改代码即可 public class GeneratoMain { public static void main(String[] args) throws Exception { GeneratorFacade g = new GeneratorFacade(); //删除生成器的输出目录 g.deleteOutRootDir(); //通过数据库表生成文件,template为模板的根目录 // g.generateByTable("table_name","template"); //自动搜索数据库的所有表并生成文件,template为模板的根目录 g.generateByAllTable("template"); // g.generateByClass(Blog.class,"template_clazz"); //删除生成的文件 // g.deleteByTable("table_name", "template"); } } 以application方式运行cn.org.rapid_framework.generator.ext.CommandLine 独立版运行 下载standandalone-rapid-generator.zip,解压并运行rapid-gen.bat 生成器讲解 1.生成器模板路径可以引用相关变量 示例:dao/${basepackage_dir}/${className}.java,根据该变量生成输出文件 如果basepackage_dir = com/company/rapid, className=UserInfo 那么完整路径则为:dao/com/company/rapid/UserInfo.java 2.自动搜索某个目录所有模板文件,无需配置 代码生成器模板可以引用的相关变量 1. g.generateByTable("table_name") 方法可以引用的变量 table : cn.org.rapid_framework.generator.provider.db.table.model.Table 2. g.generateByClass("class") 方法可以引用的变量 clazz : cn.org.rapid_framework.generator.provider.java.model.JavaClass 3. g.generateBySql(Sql) 方法可以引用的变量 sql : cn.org.rapid_framework.generator.provider.db.sql.model.Sql 4.公共变量 env : 系统环境变量 System.getProperties() : 直接引用,没有前缀 generator.properties 文件的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl 每个模板有gg变量可以控制自身的自定义配置 (每一个模板都会创建新的gg实例) 如是否生成,是否覆盖目标文件,甚至是生成其它文件 示例: ${gg.setIgnoreOutput(true)}, 参考: rapid_generator_gg 支持生成(gen)及删除操作(del),即生成的代码也可以很方便的删除 3.自动拷贝二进制文件至输出目录 如模板目录下的 zip,rar,doc文件将会自动拷贝至输出目录,不会破坏文件格式 (通过扩展名自动识别) 4.自动删除模板扩展名:.ftl,.vm 举例: 如你有一个模板 SqlMap.xml.ftl 将变为 SqlMap.xml 所以你要生成ftl扩展名的文件,应该将文件名从 list.ftl => list.ftl.ftl 5.模板自动include同级目录:macro.include文件 示例: 如你的模板为 java_src/com/project/UserDao.java, 将自动include: java_src/com/project/macro.include 及 根目录的macro.include 6.generator.xml (或者generator.properties)配置文件 类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用 2.自动替换generator.properties的句号(.)为反斜杠,设置key为key+"dir"后缀 示例: pkg=com.company => pkg_dir=com/company 7. 数据库表配置,用于自定义生成器模板引用的table变量 配置文件必须存放在classpath: generator_config/table/table_name.xml (该文件生成器可以生成,自己再自定义修改) <!-- <table sqlName="数据库表名" className="类名称" tableAlias="表的别名"> <column sqlName="数据库列名" columnAlias="列的别名" javaType="自定义javaType" unique="是否唯一性约束" nullable="是否可以为空" pk="是否主键,在表没有主键的情况下,可以指定一个代理主键" updatable="是否可以更新" insertable="是否插入" enumString="枚举值,以分号分隔,示例值:M(1,男);F(0,女) 或者是:M(男);F(女)" enumClassName="如果枚举有值,生成的类名称将是这个,没有枚举值,该配置无用.示例值:Sex" /> </table> --> <table sqlName="user_info" className="UserInfo" tableAlias="UserInfo"> <column sqlName="username" columnAlias="用户名" javaType="String" unique="false" nullable="true" pk="false" updatable="true" insertable="true" enumString="F(1,Female);M(0,Male)" enumClassName="用户枚举" /> <column sqlName="password" columnAlias="password" javaType="String" unique="false" nullable="true" pk="false" updatable="true" insertable="true" enumString="" enumClassName="PasswordEnum" /> </table> 生成的代码插入文档的某个部位 如模板输出生成的地方已经有该 同名的文件 存在,并且该文件有包含"generator-insert-location"标记,则模板生成的内容会插入在该标记之后.该特性对如生成的spring配置内容插入spring配置文件十分有用 创建一个生成器模板文件 在temppate目录创建一个文件,如${className}SpringControler.java 则代码生成器会自动将该模板文件加载并生成该文件 充分利用各种文件的注释 如在.xml我们可以使用 在.properties文件我们可以使用 #generator-insert-location 具体请查看template/insert_demo目录的内容 生成器参数配置 通过设置GeneratorProperties.setProperty(key,value)设置相关参数值. 完整的配置参数请查看: rapid-generator/rapid-generator/src/main/java/cn/org/rapid_framework/generator/GeneratorConstants.java 生成器核心类图 Generator为生成器引擎 GeneratorFacade为生成器入口调用类 GeneratorProperties 生成器的相关配置,用于读取generator.properties(或者是generator.xml) TableFactory用于创建Table.java对象,用于GeneratorFacade.generateByTable()使用 SqlFactory用于创建Sql.java对象,用于GeneratorFacade.generateBySql()使用 JavaClass模板变量,用于GeneratorFacade.generateByClass()使用 重复生成代码 现rapid自带的模板都不支持重复生成代码的,如果你需要重复生成代码,可以采用继承机制技巧重复生成。 Java代码的重复生成,善用 "继承机制" , 示例如下: UserInfoBaseDao : 自动生成的代码, 不能手工修改,用于重复生成 UserInfoDao extends UserInfoBaseDao : 存放手工的代码,不能重复生成 页面的重复生成还没有啥好办法。 语法参考: http://freemarker.sourceforge.net/docs/index.html 具体使用请看 在线文档说明 本项目内置模板文件属于 rapid-framework 的一部分 rapid-framework简单介绍: rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成java的hibernat model,dao,manager,struts+struts2 action类,可以生成jsp的增删改查及列表页面 通常代码生成器存在的问题 二次开发困难,没有源码可以修改模板文件的model对象等 过于智能,自动插入我们的项目,程序员还需考虑旧的代码会不会被覆盖的问题 生成文件的时候让你选要生成那些文件, 而rapid只负责生成代码,这样生成器核心一分精简,没有将存放模板的目录名称及文件名称利用起来,导致还需配置每个模板文件生成的文件名,目录结构
使用说明 1 电脑上装JDK 2 电脑上装oracle数据库,创建train数据库。 3 在dos下打开train数据库后,把oracle.txt创建表和序列里的代码(包括insert代码)复制到dos下运行,记得最后再按一下回车键,让最后一行也运行。 4 在eclipse或myeclipse下新建java项目(注意不是jsp项目)后,复制src文件夹到替换项目里的src。然后在复制train.pro,右击项目名粘贴(即把train.pro 加到项目 目录里) 5 把classes12.jar 添加到项目里。右键项目,点击Build Path 后再点击add External Archives 后找到classes12.jar文件打开即可。 6 在eclipse里打开wed包下OracleDB.java 设置oracle 连接byby用户的密码,String password="baby"; 我的密码是baby,这里改成你自己的密码。 7 运行client包下的Administrator.java ,若没有错如则OK。 8 运行后点击工具条里的‘工具’,后再点击‘生成所有列车表’,若成功,此时可看见列车表里增加了很多数据。可能有点慢,稍等一会。 9 若8 成功,则点击工具条里的‘工具’,后再点击‘生成所有车票表’,若成功,此时可看见车票表里增加了很多数据。可能有点慢,稍等一会。 关于工具条理的‘生成所有列车表’ ‘生成所有车票表’ "生成列车表" "生成车票表" "设置天数" 的介绍 1 ‘生成所有列车表’ 是根据车次表和车站表的全部数据自动生成 列车表 里的数据, 仅限于第一次时使用。 2 ‘生成所有车票表’ 是根据 列车表 里的全部数据自动生成 车票表 里的数据, 仅限于第一次时使用。 3 "生成列车表" 是根据你输入的某一列车次(必须是车次表里的车次和车站表里有与之相关的数据时才能使用)自动生成 列车表 里的数据 4 "生成车票表" 是根据你输入的某一ID(必须是列车表里的ID)自动生成 车票表 里的数据 5 "设置天数" 是设置能够预订和销售的最多天数,默认是3 天,即能预订和销售3天内的车票 注意: 1 订票记录表,销售记录表,退票记录表里的时间是系统自动生成,在任何情况下都不需填写 也不能修改 2 在管理员模块里添加,删除和修改后需更新一下才能显示,只需点一下别的表,在点刚修改的表即可,数据完全正确 3 退票员和销售员登录时分别查询对应表的记录,因此需要在管理员模块里增加相应记录后才能登录 4 此系统暂时已知还有多个缺陷,如如退票是可一张票可退多次,一个订票id可买多张车票。由于时间因素,就不在修补了。 5 train.pro 是个配置文件,可用记事本打开,尽量在train下的Main_Config.java里修改其配置信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值