如果你还不知道怎么添加hsqldb到java项目,请参考我的上一篇没人看的博客
在eclipse java项目中导入hsqldb–菜鸟教程

这个使用,我还不怎么熟悉,我本身也是菜鸡一枚,写文章主要是防止自己两天不看的话,遗忘太多…呵呵呵

 String user; //用户名String pwd; //密码String url;Connection con;Statement stmt;ResultSet rs;

首先先看看怎么初始化的

public void init() { //初始化try {Class.forName("org.hsqldb.jdbcDriver");// 加载驱动程序url = "jdbc:hsqldb:hsql://localhost"; 连接本机的hsqldb的url路径user = "sa"; //hsqldb数据库默认的用户名pwd = "";  //hsqldb数据库默认的用户 对应的默认的密码con = DriverManager.getConnection(url, user, pwd);System.out.println("connection");} catch (ClassNotFoundException | SQLException e) {System.err.println("no connection");e.printStackTrace();}}

程序第一句:
Class.forName(“org.hsqldb.jdbcDriver”);// 加载驱动程序
为什么要这样写,可以参考一位大神写的文章
JDBC采用Class.forName加载驱动的意义

到现在,已经完成了向驱动管理器的注册,也就是说接下来能使用驱动程序了
于是con = DriverManager.getConnection(url, user, pwd);
首先
java.sql.Connection
主要是能与特定数据库的连接(会话),它是一个接口
DriverManager是用于管理一组JDBC驱动程序的基本服务,里面的静态方法getConnection会返回一个与数据库的连接,参数url代表连接本地的 dbc类型的hsqldb数据库,
这条语句就是 用drivermanager加载驱动程序,用url找数据库,用user,pwd登录,并返回当前程序与数据库的接口.

hsqldb图形界面执行简单sql语句

win+r输入cmd,打开dos对话框,cd到hsqldb.jar所在文件夹

输入java -cp .;hsqldb.jar org.hsqldb.server.Server 启动服务器

一定要先启动

双击下载的hsqldb.jar包,会出现图形界面形式的数据库,很方便


选择服务器


创建一张表,名字叫做example,这张表有两列,包括id和name

id的类型是整数,name的类型是字符串(长度小于等于20)

CREATE TABLE example (id INTEGER,name VARCHAR(20))


INSERT INTO example values (2017,‘qianxi’)

往表中添加一个数据项,ctrl+E执行


从表中查询数据

检索整张表

java项目代码里实现

1.创建一张表

public void create(int id,String name) {String sql = "create table example (id integer,name varchar(20))";  //对应的sql的语句try {stmt = con.createStatement(); //返回一个 可执行sql语句的接口stmt.executeUpdate(sql);  //执行sql语句stmt.close(); //关闭} catch (SQLException e) {e.printStackTrace();}}

可以把这些操作连贯成一系列的界面
DriverManager.getConnection()返回与本地hsqldb数据库的连接connection,就是打开数据库的图形界面

connection.createment()返回上面的command功能
statement.executeUpdate(sql) //执行一个sql语句

2.往表中添加数据项

public void insert(int id, String name) {**//方法一**String sql = "insert into stu values( " + id + "," + "\'"+ name+"\')";  //注意这里的名字是字符串形式,所以sql语句里也要显示是一个字符串,一定要加转义的单引号try {stmt = con.createStatement(); //返回能执行的接口stmt.executeUpdate(sql);  //执行sql语句stmt.close();} catch (SQLException e) {e.printStackTrace();}**//方法二**//主要是针对方法一而言,如果变量是字符串,还要考虑单引号的问题,除此之外,只能一个一个的输入,不能形式化,不能符号化的表示String sql1 = "insert into stu values(?,?)"; //用?号替代带插入的元素,相当于是一个占位符try {PreparedStatement stmt = con.prepareStatement(sql1);// 预处理,准备执行sqlstmt.setInt(1, id); //告诉stmt,第一列数据类型是Int,参数id放在第一列stmt.setString(2, name); //告诉stmt,第二列数据类型是String,参数name放在第二列stmt.executeUpdate(); //告诉完以后就可以执行了stmt.close();} catch (SQLException e) {e.printStackTrace();}}

执行完create()以后,在hsqldb界面,ctrl+R刷新一下,图形界面上就会有显示新建的表

执行完insert()后,到hsqldb里面查询一下,找到了刚刚插入的数据项

3.在表中进行选择

public void select() { //也可以把表名当作一个参数传进来,在这里我直接写了stu表String sql = "select * from stu";try {stmt = con.createStatement();     //返回可以执行sql的接口rs = stmt.executeQuery(sql);  //执行sql语句,并返回执行的结果while (rs.next()) {       //对结果集合进行迭代int id = rs.getInt("id");  //rs.getInt()表示能返回一个整数,这个语句是,rs取id属性,以Int类型返回结果String name = rs.getString("name");//rs.getString()表示能返回一个字符串,这个语句是,rs取name属性,以Int类型返回结果System.out.println("id: " + id + " name: " + name);}stmt.close();rs.close();} catch (SQLException e) {System.out.println("cannot select");e.printStackTrace();}}

ResultSet rs,是一个结果的集合,stmt.executeQuery(sql),由于sql是一条选择语句,所以会有返回值,于是把这个返回值存放在一个专门的集合里,就叫做ResultSet

执行完select,eclipse控制台会输出stu整个表的数据信息

(如果想限制条件,使用where语句,如sql换成select * from stu where id = 2019)

4.在表中进行删除

public void delete() {String sql = "delete from stu where id = 2019";try {stmt = con.createStatement();stmt.executeUpdate(sql);stmt.close(); //执行这条sql到此结束
//          con.close();  //千万要注意,如果接下来还有操作,可不要关了接口} catch (SQLException e) {System.out.println("cannot delete");e.printStackTrace();}}

执行完成后发现hsqldb内数据发生了变化

最后附上总代码,要小心哦,不能创建两张同名的表,这张表里可以有相同的数据项
还可能有bug

总代码

package 连接hsqldb;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Try {String user;String pwd;String url;Connection con;Statement stmt;ResultSet rs;public static void main(String[] args) {Try g = new Try();g.init();g.delete();g.select();g.create();g.insert(2018, "yiyangqianxi");g.stop();}public void init() { //try {Class.forName("org.hsqldb.jdbcDriver");// 加载驱动程序url = "jdbc:hsqldb:hsql://localhost";user = "sa";pwd = "";con = DriverManager.getConnection(url, user, pwd);System.out.println("connection");} catch (ClassNotFoundException | SQLException e) {System.err.println("no connection");e.printStackTrace();}}public void stop() {if (con != null)try {con.close();} catch (SQLException e) {e.printStackTrace();}}public void create() {String sql = "create table again (id integer,name varchar(20))";try {stmt = con.createStatement();stmt.executeUpdate(sql);stmt.close();} catch (SQLException e) {e.printStackTrace();}}public void insert(int id, String name) {String sql = "insert into stu values( " + id + "," + "\'" + name + "\')";System.out.println(sql);try {stmt = con.createStatement();stmt.executeUpdate(sql);stmt.close();} catch (SQLException e) {e.printStackTrace();}String sql1 = "insert into stu values(?,?)";try {PreparedStatement stmt = con.prepareStatement(sql1);// 预处理stmt.setInt(1, id);stmt.setString(2, name);stmt.executeUpdate();stmt.close();} catch (SQLException e) {e.printStackTrace();}}public void select() {String sql = "select * from stu";try {stmt = con.createStatement();rs = stmt.executeQuery(sql);while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");System.out.println("id: " + id + " name: " + name);}stmt.close();rs.close();} catch (SQLException e) {System.out.println("cannot select");e.printStackTrace();}}public void delete() {String sql = "delete from stu where id = 2019";try {stmt = con.createStatement();stmt.executeUpdate(sql);stmt.close();
//          con.close();} catch (SQLException e) {System.out.println("cannot delete");e.printStackTrace();}}
}

敢问路在何方,路在何方!

在eclipse中写java项目,简单使用hsqldb数据库--菜鸟教程相关推荐

  1. eclipse中 将java项目转换为web项目

    1.找到项目工作空间目录,打开.project文件,并修改文件,  修改如下:       找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: ...

  2. Eclipse中导入Java项目出现“No projects are found to import”

    如图所示: , 这其实是你的项目中缺少了两个文件:.classpath文件和 .project文件 所以eclipse找不到你的项目了. 解决办法: 在你的Eclipse中再新建一个新的项目,项目的类 ...

  3. eclipse java转class_Eclipse中的Java项目:无法解析java.lang.Object类型。 它是从所需的.class文件间接引用的...

    Eclipse中的Java项目:无法解析java.lang.Object类型. 它是从所需的.class文件间接引用的 在Eclipse中导入项目后,我收到以下错误: 无法解析java.lang.Ob ...

  4. [转]Eclipse中的Web项目自动部署到Tomcat

    原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...

  5. Eclipse中的Web项目自动部署到Tomcat

    2019独角兽企业重金招聘Python工程师标准>>> 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错 ...

  6. github上创建java项目简单操作

    github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客 http://blog.csdn.net/qq_29392425/article/detai ...

  7. 【Javaweb学习笔记】在Eclipse中创建Web项目

    [Javaweb学习笔记]在Eclipse中创建Web项目 哈喽大家好,这里是Java框架学习笔记专栏第二期 本期内容--在Eclipse中创建Web项目 前期回顾: 第一期--schema约束 笔者 ...

  8. 在Eclipse中的Android项目里实现代码复用

    引言 开发时通常都会有多个项目间代码复用的需求,这时通常的做法是设置项目依赖,让一个项目引用另一个项目,比如在Visual Studio中这样就很容易实现. 而在Eclipse中的Android项目里 ...

  9. 在Eclipse中导入Java程序

    在Eclipse中导入Java程序 在 Eclipse 中导入 Java 程序 在 Eclipse 中导入 Java 程序,分导入Java Project和导入Java源程序 两种情况,简述如下. 情 ...

最新文章

  1. 对抽象工厂+反射+配置文件的实例理解
  2. linux驱动的入口函数module_init的加载和释放
  3. jquery mobile自定义图标实现方法
  4. java并发编程实战学习笔记之基础知识与对象的共享
  5. 自然场景中交通标志牌检测~文末送书
  6. 更新整理本人所有博文中提供的代码与工具(C++,2013.08)
  7. iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
  8. asp.net中注册脚本的两个方法
  9. ITIL4,全球IT行业抢手的资格认证之一
  10. 二进制 计算机编程语言分类
  11. 需求调第四篇--常用的调研工作方法
  12. 黄河金岸诗词大赛获奖作品选登(1)
  13. SVN服务端使用说明(二)
  14. 风向符号与度数对照表
  15. windows服务器安装Bonobo Git Server
  16. 周杰伦《说好不哭呢》QQ音乐评论的可视化分析
  17. python 游戏辅助脚本,python写游戏脚本辅助作范文
  18. 快速沃尔什变化(FWT)介绍
  19. 【内网安全】——CS操作指南(一)
  20. Echarts绘制差异代谢产物分类与KEGG通路分类的旭日图

热门文章

  1. windows应用签名相关问题
  2. 影响5000万开发者,GitHub与CSDN掌舵人对话技术社区未来
  3. STM32 串口DMA收发(二)
  4. centos监控服务器状态,Centos下PING监控服务器提醒脚本
  5. C语言俄罗斯方块统计消行,求助 关于俄罗斯方块如何消行(附上消行部分代码)...
  6. Python趣味代码(一):微信信息轰炸
  7. 人脸识别应用初探-微软人脸识别在线SDK使用
  8. ts定义IProps类型,给Props(object类型的属性)赋值默认值的方式
  9. java 方法主体_java抽象方法未指定主体
  10. C++学习(一三六)磅和字号的关系