JDBC连接oracle数据库步骤
(一)创建工程,引入驱动包
在下图目录中可以找到驱动包ORACLE的JDBC驱动包,拷贝到工程即可使用
创建java工程waterboss,建立lib文件夹,将ojdbc.jar拷贝到此文件夹,然后add build path
(二)BaseDao
我们通常编写BaseDao负责加载驱动,获取数据库连接,关闭资源,代码如下:package cn.itcast.waterboss.dao; import java.sql.SQLException; /** * 基本数据访问类 * @author Administrator * */ public class BaseDao { //加载驱动 static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取数据库连接 * @return * @throws SQLException */ public static java.sql.Connection getConnection() throws SQLException { return java.sql.DriverManager.getConnection( "jdbc:oracle:thin:@192.168.80.10:1521:orcl", "wateruser", "itcast" ); } /** * 关闭资源 * @param rs * @param stmt * @param conn */ public static void closeAll( java.sql.ResultSet rs, java.sql.Statement stmt, java.sql.Connection conn ) { //关闭结果集 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } //关闭执行对象 if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } //关闭执行对象 if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
JDBC驱动为:
oracle.jdbc.OracleDriver
连接字符串( 瘦连接 ):
jdbc:oracle:thin:@虚拟机的 IP:1521:orcl(三)业主增删改代码编写
1.创建实体类package cn.itcast.waterboss.entity; import java.util.Date; /** * 业主实体类 * @author Administrator * */ public class Owners { private Long id; //编号 private String name; //业主名称 private Long addressid; //地址编号 private String housenumber; //门牌号 private String watermeter; //水表编号 private Date adddate; //登记日期 private Long ownertypeid; //业主类型 ID public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getAddressid() { return addressid; } public void setAddressid(Long addressid) { this.addressid = addressid; } public String getHousenumber() { return housenumber; } public void setHousenumber(String housenumber) { this.housenumber = housenumber; } public String getWatermeter() { return watermeter; } public void setWatermeter(String watermeter) { this.watermeter = watermeter; } public Date getAdddate() { return adddate; } public void setAdddate(Date adddate) { this.adddate = adddate; } public Long getOwnertypeid() { return ownertypeid; } public void setOwnertypeid(Long ownertypeid) { this.ownertypeid = ownertypeid; } }
2.创建Dao类实现增删改package cn.itcast.waterboss.dao; import cn.itcast.waterboss.entity.Owners; import java.sql.SQLException; /** * 业主数据访问类 * @author Administrator * */ public class OwnersDao { /** * 新增业主 * @param owners */ public static void add(Owners owners) { java.sql.Connection conn = null; java.sql.PreparedStatement stmt = null; try { conn = BaseDao.getConnection(); stmt = conn.prepareStatement("insert into T_OWNERS values(?,?,?,?,?,?,?)"); stmt.setLong(1, owners.getId()); stmt.setString(2, owners.getName()); stmt.setLong(3, owners.getAddressid()); stmt.setString(4, owners.getHousenumber()); stmt.setString(5, owners.getWatermeter()); stmt.setDate(6, new java.sql.Date(owners.getAdddate().getTime())); stmt.setLong(7, owners.getOwnertypeid()); stmt.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(null, stmt, conn); } } /** * 修改业主 * @param owners */ public static void update(Owners owners) { java.sql.Connection conn = null; java.sql.PreparedStatement stmt = null; try { conn = BaseDao.getConnection(); stmt = conn.prepareStatement( "update T_OWNERS set name=?,addressid=?,housenumber=?," + "watermeter=?,adddate=?, ownertypeid=? where id=?" ); stmt.setString(1, owners.getName()); stmt.setLong(2, owners.getAddressid()); stmt.setString(3, owners.getHousenumber()); stmt.setString(4, owners.getWatermeter()); stmt.setDate(5, new java.sql.Date(owners.getAdddate().getTime())); stmt.setLong(6, owners.getOwnertypeid()); stmt.setLong(7, owners.getId()); stmt.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(null, stmt, conn); } } /** * 删除业主 * @param owners */ public static void delete(Long id) { java.sql.Connection conn = null; java.sql.PreparedStatement stmt = null; try { conn = BaseDao.getConnection(); stmt = conn.prepareStatement("delete from T_OWNERS where id=?"); stmt.setLong(1, id); stmt.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { BaseDao.closeAll(null, stmt, conn); } } }
加密市场行情下挫,波卡逆势夺冠波动性牢牢地控制着市场,市场情绪进一步下降到中轨区域内。从加密市场情绪分析服务Omenics提供的数据来看,10个主要币种的综合移动7日平均加密市场情绪得分(sentscore)连
永远相信美好的事情正在发生,小米11发布会米粉好幸福2020年对于小米来说确实是艰难奋发的一年,作为小米成立的第十个周年,小米10成了小米进军高端手机市场的一步好棋,小米一改以往中端机市场的品牌形象,开始向高端手机市场发力。就在12
行业最顶级屏幕!旗舰机锁门员小米11全面升级,你还在嫌贵?近日,小米的新品发布会上,雷军携满满诚意带来了震撼全场的小米11。被米粉们称为弥补短板不惜一切代价打造出来的小米又一全新力作,小米11究竟价值几何?让我们来一起看一看。小米11的最
雷军直播透露小米11,新款环保版热销高达两万台12月28日,万众瞩目的小米发布会开启,作为2020旗舰机收官之作小米11进入大众事业,为了此次的新品发售,小米集团可谓是用心良苦,无论是雷军一改往日低调在微博上为其造势,还是将发
小米11强势来袭,超奢侈四曲面屏幕预约超百万,即将开售小米11的发布会在12月28日正式举行了,不得不承认小米11的成功震撼了在场的所有观众。2K画质120Hz高刷的屏幕,可以说是成本行业最贵的,屏幕素质远远超过苹果和三星,可见雷军不
超酷!小米11终于来了,足够震撼,准备好了吗?12月28日晚,被受期待的小米11,终于发布了!小米11闪亮登场,赚足了大众眼球。正如外界期待,小米11在各个方面强大的性能,高端的配置,堪称王者,下面就来给大家分析一下。在手机屏
CapitalMarkets认为苹果应该购买比特币投资银行RBCCapitalMarkets认为,苹果应该购买比特币,并推出加密交易所,这一言论是在今天早些时候特斯拉15亿美元购买比特币之后发表的。RBC表示,与苹果传闻中的电动汽
DeFi基于数字ID的信用解决方案继ProBit交易所和EasyFi合作巩固当前中心化和去中心化金融之间的鸿沟之后,EASY继1月份上市之后,现在将在即将到来的ProBit专属莱特上亮相。ProBit交易所已经完成
比特币是新的GameStop吗?从上周开始,GameStop就一直占据着全球新闻圈。一群千禧一代正在向价值数十亿美元的对冲基金开战,他们买入了这些对冲基金大量做空的股票,包括GameStopAMC和黑莓。Game
DeFi会吃下摩根,但在吃这顿饭之前是有风险的去中心化金融(defi)协议估计将在十年或二十年内成长为高高在上的传统金融代替品,如美国主要投行摩根大通,但仍有一些特定的固有的风险需要处理。加密研究公司Messari的研究分析师
Coinbase选择在纳斯达克直接上市经过几个月的猜测,总部位于旧金山的加密交易所Coinbase最近宣布计划通过直接上市。现在,TheBlock报道称,该公司将在纳斯达克上市。(Coinbase没有证实该报道)。Co