Derby初步使用

Derby配置使用
我们今天的目标,Servlet能查询到数据库中的数据。如下图所示:(注意:100是学号,zhangsan是姓名,这两个数据都是从数据库查询出来,而显示在页面上;不是你直接用out.println写在页面上的。)
在这里插入图片描述
1、首先看你机器的Java安装目录里面,有没有Derby(它是一个小型关系型数据库,可以使用SQL操作它),如果没有,就要下载(JDK安装之后,Derby默认应该是有的,jdk目录下的db目录就是Derby目录)
在这里插入图片描述
2、进入db目录中的bin目录,进一步确认是否有相关命令执行文件(我们以后要直接调用的是ij.bat)
在这里插入图片描述
3、故意跳转到D盘,输入ij,看看系统是否“认识”这个命令,如果“不认识”,需要配置系统环境变量,把bin目录的路径配置进去,系统就“认识”这个目录中的所有命令了。我下面这个截图,没有配置路径,系统不知道ij是什么,所以,我要到第4步去配置。
在这里插入图片描述
4、到Win—高级系统设置—环境变量----path中去配置路径,配置完毕后,重启CMD窗口,让配置生效。
在这里插入图片描述
5、输入ij,用SQL创建数据库、创建表、插入记录、查看记录,找找操作数据库的感觉,确保能用。退出Derby。
在这里插入图片描述
6、这时在第5步运行ij的目录下,应该能dir看到新出现的数据库文件夹,这就是你刚才创建的数据库文件。
7、先别看下面的截图。自问:(1)退出来了,想再连接到创建好的数据库Stu,应该如何操作呢。(2)在D盘目录下能不能连接到数据库Stu?
至此,Derby基本会用了。
上面是纯手工操作Derby

下一个问题:JavaWeb如何操作Derby
8、我们需要知道的基础:Java是通过JDBC来操作数据库的
什么是JDBC?JDBC是Java DataBase Connectivity(Java数据库连接)的缩写,它是Java程序访问数据库的标准接口。JDBC是Java标准库自带的,我们直接拿过用,不需要我们编写。
过程:使用Java程序访问数据库时,通过JDBC来访问,JDBC通过数据库驱动来实现真正对数据库的访问。
例如,我们在Java代码中要访问Derby,通过JDBC,JDBC与Derby数据库驱动进行通讯,数据库驱动程序由数据库厂家提供。因此,访问某个具体的数据库,我们只需要引入该厂商提供的驱动,就可以通过JDBC接口来访问,这样保证了Java程序编写的是一套数据库访问代码,却可以访问各种不同的数据库。
一个JDBC的驱动就是一个jar包。具体到Derby,就是db–lib目录下Derby.jar
使用JDBC的好处是:
各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发;
Java程序编译期仅依赖java.sql包,不依赖具体数据库的jar包;
可随时替换底层数据库,访问数据库的Java代码基本不变。

9、可以验证一下,Java的JDBC相关程序在C:\Program Files\Java\jre\lib\rt.jar这个包中存着。你也可以在Eclipse中打开rt.jar,就能看到java.sql这个包,这个包里有很多相关JDBC的工具类。也就是说,只要你的机器上JDK正常安装,JDBC就有了,不需要你再额外下载安装。

10、对上面学习的总结:根据第8步讲的,JavaWeb操纵Derby,只有JDBC(java.sql)还不够,还需要一个Derby提供的驱动jar包。我们要找到相关jar包把它配置到我们的JavaWeb项目中去。这样在该项目中,Java的JDBC就与Derby的驱动连接在一起了。我们的代码操作数据库的通道顺畅了。
11、Eclipse—项目上点右键----Build Path----Configure Build Path…----Libraries-----Add External JARS…
这个jdk–db–lib中的Derby.jar就是数据库驱动jar包
在这里插入图片描述
12、第11步做完,到项目文件夹去观察,Libraries中应该把驱动jar包导入进来了。

13、刚才,只是针对源程序的编译。Web程序要运行的话,要把需要的驱动jar包同步到WEB-INF的lib目录下,这一步就是进行部署同步。经过这一步,你的Web程序才能访问数据库。
Web Deployment Assembly是Web发布路径设置,DeployPath表示每个资源发布之后的文件路径
在这里插入图片描述
14、上面全部配置搞定,可以写一个Servlet,体会数据的畅通了。我们日常的Web程序开发,数据流大致都是这种原理。你平时在手机App看到的数据,都是这样来的。
在这里插入图片描述
注意:
数据库路径是在cmd中创建的数据库路径,在自己电脑中的路径每个人的都不同,如果不知道保存在哪里建议自己去C盘或者D盘找一下

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		
		String dbName = "D:\\Stu";//数据库所在路径
		Connection conn = null;//连接数据库对象,初始为空
		Statement stm = null;//执行sql语句对象,初始为空
		ResultSet rs = null;//查询数据库结果对象,初始为空
		
		try {
			Class.forName("org.apache.derby.jdbc.EmbeddedDriver");//加载数据库驱动
			conn = DriverManager.getConnection("jdbc:derby:"+dbName+";create=true");//创建数据库连接
			stm = conn.createStatement();//创建statement对象然后通过对象调用executeQuery方法
			rs = stm.executeQuery("select * from student");//执行sql语句,把查询结构保存在rs对象中
			
			while(rs.next()) {//调用rs相关方法,把查询的结果遍历出来,进行后续操作
				out.println(rs.getInt(1));//数据输出到网页
				out.println(rs.getString(2));
			}
			rs.close();//各种关闭
			stm.close();
			conn.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		out.close();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值