在eclipse中写java项目,简单使用hsqldb数据库--菜鸟教程
如果你还不知道怎么添加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数据库--菜鸟教程相关推荐
- eclipse中 将java项目转换为web项目
1.找到项目工作空间目录,打开.project文件,并修改文件, 修改如下: 找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: ...
- Eclipse中导入Java项目出现“No projects are found to import”
如图所示: , 这其实是你的项目中缺少了两个文件:.classpath文件和 .project文件 所以eclipse找不到你的项目了. 解决办法: 在你的Eclipse中再新建一个新的项目,项目的类 ...
- eclipse java转class_Eclipse中的Java项目:无法解析java.lang.Object类型。 它是从所需的.class文件间接引用的...
Eclipse中的Java项目:无法解析java.lang.Object类型. 它是从所需的.class文件间接引用的 在Eclipse中导入项目后,我收到以下错误: 无法解析java.lang.Ob ...
- [转]Eclipse中的Web项目自动部署到Tomcat
原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...
- Eclipse中的Web项目自动部署到Tomcat
2019独角兽企业重金招聘Python工程师标准>>> 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错 ...
- github上创建java项目简单操作
github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客 http://blog.csdn.net/qq_29392425/article/detai ...
- 【Javaweb学习笔记】在Eclipse中创建Web项目
[Javaweb学习笔记]在Eclipse中创建Web项目 哈喽大家好,这里是Java框架学习笔记专栏第二期 本期内容--在Eclipse中创建Web项目 前期回顾: 第一期--schema约束 笔者 ...
- 在Eclipse中的Android项目里实现代码复用
引言 开发时通常都会有多个项目间代码复用的需求,这时通常的做法是设置项目依赖,让一个项目引用另一个项目,比如在Visual Studio中这样就很容易实现. 而在Eclipse中的Android项目里 ...
- 在Eclipse中导入Java程序
在Eclipse中导入Java程序 在 Eclipse 中导入 Java 程序 在 Eclipse 中导入 Java 程序,分导入Java Project和导入Java源程序 两种情况,简述如下. 情 ...
最新文章
- 对抽象工厂+反射+配置文件的实例理解
- linux驱动的入口函数module_init的加载和释放
- jquery mobile自定义图标实现方法
- java并发编程实战学习笔记之基础知识与对象的共享
- 自然场景中交通标志牌检测~文末送书
- 更新整理本人所有博文中提供的代码与工具(C++,2013.08)
- iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController
- asp.net中注册脚本的两个方法
- ITIL4,全球IT行业抢手的资格认证之一
- 二进制 计算机编程语言分类
- 需求调第四篇--常用的调研工作方法
- 黄河金岸诗词大赛获奖作品选登(1)
- SVN服务端使用说明(二)
- 风向符号与度数对照表
- windows服务器安装Bonobo Git Server
- 周杰伦《说好不哭呢》QQ音乐评论的可视化分析
- python 游戏辅助脚本,python写游戏脚本辅助作范文
- 快速沃尔什变化(FWT)介绍
- 【内网安全】——CS操作指南(一)
- Echarts绘制差异代谢产物分类与KEGG通路分类的旭日图
热门文章
- windows应用签名相关问题
- 影响5000万开发者,GitHub与CSDN掌舵人对话技术社区未来
- STM32 串口DMA收发(二)
- centos监控服务器状态,Centos下PING监控服务器提醒脚本
- C语言俄罗斯方块统计消行,求助 关于俄罗斯方块如何消行(附上消行部分代码)...
- Python趣味代码(一):微信信息轰炸
- 人脸识别应用初探-微软人脸识别在线SDK使用
- ts定义IProps类型,给Props(object类型的属性)赋值默认值的方式
- java 方法主体_java抽象方法未指定主体
- C++学习(一三六)磅和字号的关系