
大家好,连接理系我是数据书管Java进阶者,今天给大家继续分享JDBC技术。库实
图书馆的把手管理员对书本进行管理,例如对书本的教打简单上架、下架,造款录入书本信息等操作,连接理系这里面就蕴含了丰富的数据书管数据库知识。本文通过所学的库实JDBC连接数据库实现数据的访问的知识,带大家一起来打造一款简单的现手图书的增删改查管理系统!
操作系统:Windows
开发工具:Eclipse
数据库系统:MySQL
编程语言:Java
1)掌握常用的教打简单SQL语句的写法
2)理解数据库的加载和连接
3)掌握JDBC对数据库操作访问方法

1.导入拓展包“mysql-connector-java-5.1.7-bin.jar”,连接理系在Ecilpse编辑软件的当前项目右键选择“Bulid Path”,再选择“Configure Build Path...”,选择Libraies,在右边有个“Add External JARs...”按钮把这个拓展包加进来,然后点击“OK”。具体操作如下图所示:


Book.java
public class Book { //定义图书的编号、名称、出版社、价格 private String id,name,press; private double price; //构造方法 public Book(String id, String name, String press, double price) { this.id = id; this.name = name; this.press = press; this.price = price; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPress() { return press; } public void setPress(String press) { this.press = press; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }在上面代码中,首先是定义了图书的编号、名称、出版社、价格的属性,之后,定义有参数的构造方法,使用访问器的set属性名()方法来设置属性、get属性名()方法来获取属性。
BookManager.java
import java.sql.*; import java.util.Scanner; public class BookManager { //定义com.mysql.jdbc的Driver类路径、数据库的地址、用户名、密码 static String driver ="com.mysql.jdbc.Driver"; static String url="jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8"; static String user="root"; static String pwd="168168"; //创建Connection、Statement、ResultSet对象 static Connection con; static Statement stmt; static ResultSet rs; public static void main(String[] args) { BookManager bm=new BookManager(); try { Class.forName(driver);//加载驱动程序 System.out.println("加载驱动成功!"); con=DriverManager.getConnection(url,user,pwd); stmt=con.createStatement(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //模块化 System.out.println("1---插入图书"); System.out.println("2---删除图书"); System.out.println("3---更新图书信息"); System.out.println("4---查询图书信息"); System.out.println("请输入你的选择1~4:"); Scanner sc=new Scanner(System.in); int i=sc.nextInt(); switch(i){ case 1: insertBook();break; case 2: deleteBook();break; case 3: updateBook();break; case 4: queryBook();break; default: System.out.println("您的输入有误!"); } } private static void queryBook(){//查询 String sql="select * from book"; try { rs=stmt.executeQuery(sql); while(rs.next()){ System.out.println(rs.getString("id")); System.out.println(rs.getString("name")); System.out.println(rs.getString("press")); System.out.println(rs.getDouble("price")); } } catch (SQLException e) { e.printStackTrace(); } } private static void updateBook(){//修改 System.out.println("请输入图书Id:"); Scanner sc=new Scanner(System.in); String oldid=sc.next(); System.out.println("请输入您要更新图书Id:"); String newid=sc.next(); String sql="update book set id="+newid+" where id="+oldid+""; try { stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } System.out.println(sql); } private static void deleteBook(){//删除 System.out.println("请输入您要删除的图书Id:"); Scanner sc=new Scanner(System.in); String id=sc.next(); String sql="delete from book where id="+id+""; System.out.println(sql); try { stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } } private static void insertBook(){//插入 Scanner sc=new Scanner(System.in); System.out.println("请输入您要添加的图书id:"); String id=sc.next(); System.out.println("请输入您要添加的图书name:"); String name=sc.next(); System.out.println("请输入您要添加的站群服务器图书press:"); String press=sc.next(); System.out.println("请输入您要添加的图书price:"); String price=sc.next(); try { Book b=new Book(id,name,press,Integer.valueOf(price)); String sql="insert into book values("+b.getId()+","+b.getName()+","+b.getPress()+","+b.getPrice()+")"; System.out.println(sql); stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } } }在上面代码中,首先是定义了com.mysql.jdbc的Driver类路径、数据库的地址、用户名、密码,创建Connection、Statement、ResultSet对象。
接着使用Class.forName()方法来加载程序驱动,之后使用getConnection()方法和数据库进行连接,返回一个Connection对象,在该对象的createStatement()方法创建一个Statement对象。
根据用户的输入来操作数据库的增删改查操作,使用switch语句来编写,例如用户输入的数字是1,表示进行插入数据的操作。
在代码中的insertBook()、deleteBook()、updateBook()、queryBook()方法分别表示插入图书、删除图书、更新图书、源码下载查询图书。首先是先写相对应的MySQL语句,使用executeUpdate()方法用于插入图书、删除图书、更新图书。使用executeQuery()方法用于查询图书。
效果图如下所示:



本文基于JDBC数据库基础,带大家打造了一款简易的图书管理系统。文章介绍了简单的图书增删改查管理的案例,让读者能够熟练的使用JDBC加载驱动程序和学会数据库的连接。
你可能会有很多理由想要把一个应用、一个用户或者一个环境与你的 linux 系统隔离开来。不同的操作系统有不同的实现方式,而在 linux 中,一个典型的方式就是 chroot 环境。在这份教程中,我会一步一步指导你怎么使用 chroot 命令去配置一个与真实系统分离出来的独立环境。这个功能主要可以用于测试项目,以下这些步骤都在 Ubuntu 14.04 虚拟专用服务器(VPS)上执行。学会快速搭建一个简单的 chroot 环境是一项非常实用的技能,绝大多数系统管理员都能从中受益。Chroot 环境一个 chroot 环境就是通过系统调用,将一个本地目录临时变成根目录。一般所说的系统根目录就是挂载点/,然而使用 chroot 命令后,你可以使用其它目录作为根目录。原则上,任何运行在 chroot 环境内的应用都不能访问系统中其他信息(LCTT译注:使用 chroot 把一个目录变成根目录,在里面运行的应用只能访问本目录内的文件,无法访问到目录外的文件。然而,运行在 chroot 环境的应用可以通过 sysfs 文件系统访问到环境外的信息,所以,这里有个“原则上”的修饰语)。Chroot 环境的用处 测试一个不稳定的应用服务不会影响到整个主机系统。 就算使用 root 权限做了些不当的操作,把 chroot 环境搞得一塌糊涂,也不会影响到主机系统。 可以在你的系统中运行另外一个操作系统。举个例子,你可以在 chroot 环境中编译、安装、测试软件,而不去动真实的系统。你也可以在64位环境下使用 chroot 创建一个32位环境,然后运行一个32位的程序(LCTT泽注:假如你的真实环境是32位的,那就不能 chroot 一个64位的环境了)。但是为了安全考虑,chroot 环境为非特权用户设立了非常严格的限制,而不是提供完整的安全策略。假如你需要的是有完善的安全策略的隔离方案,可以考虑下 LXC、Docker、vservers等等。Debootstrap 和 Schroot使用 chroot 环境需要安装 debootstrap 和 schroot,这两个软件都在 Ubuntu 的镜像源中。其中 schroot 用于创建 chroot 环境。Debootstrap 可以让你通过镜像源安装任何 Debian(或基于 Debian 的)系统,装好的系统会包含最基本的命令。Schroot 命令允许用户使用相同的机制去创建 chroot 环境,但在访问 chroot 环境时会做些权限检查,并且会允许用户做些额外的自动设置,比如挂载一些文件系统。在 Ubuntu 14.04 LTS 上,我们可以通过两步来实现这个功能:1. 安装软件包第一步,在Ubuntu 14.04 LTS 主机系统上安装 debootstrap 和 schroot:复制代码代码如下:$ sudo apt-get install debootstrap $ sudo apt-get install schroot2. 配置 Schroot现在我们有工具在手,需要指定一个目录作为我们的 chroot 环境。这里创建一个目录先:复制代码代码如下:sudo mkdir /linoxide编辑 schroot 的配置文件:复制代码代码如下:sudo nano /etc/schroot/schroot.conf再提醒一下,我们现在是在 Ubuntu 14.04 LTS 系统上。假如我们想测试一个软件包能不能在 Ubuntu 13.10(代号是“Saucy Salamander”) 上运行,就可以在配置文件中添加下面的内容:复制代码代码如下: [saucy] description=Ubuntu Saucy location=/linoxide priority=3 users=arun root-groups=root 根据你的系统要求,调整上面的配置信息。3. 使用 debootstrap 安装32位 Ubuntu 系统Debootstrap 命令会在你的 chroot 环境里面下载安装一个最小系统。只要你能访问镜像源,你就可以安装任何基于 Debian 的系统版本。前面我们已经创建了 /linoxide 目录用于放置 chroot 环境,现在我们可以在这个目录里面运行 debootstrap 了:复制代码代码如下:cd /linoxide sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/ sudo chroot /linoxide /debootstrap/debootstrap --second-stage你可以将 --arch 的参数换成 i386 或其他架构,只要存在这种架构的镜像源。你也可以把镜像源 http://archive.ubuntu.com/ubuntu/ 换成离你最近的镜像源,具体可参考 Ubuntu 官方镜像主页。注意:假如你是在64位系统中创建32位系统,你需要在上面第3行命令中加入 --foreign 选项,就像下面的命令:复制代码代码如下:sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/下载需要一段时间,看你网络带宽性能。最小系统大概有500M。4. 完成 chroot 环境安装完系统后,我们需要做一些收尾工作,确保系统运行正常。首先,保证主机的 fstab 程序能意识到 chroot 环境的存在:复制代码代码如下: sudo nano /etc/fstab在文件最后面添加下面的配置:复制代码代码如下:proc /linoxide/proc proc defaults 0 0 sysfs /linoxide/sys sysfs defaults 0 0保存并关闭文件。挂载一些文件系统到 chroot 环境:复制代码代码如下:$ sudo mount proc /linoxide/proc -t proc $ sudo mount sysfs /linoxide/sys -t sysfs复制 /etc/hosts 文件到 chroot 环境,这样 chroot 环境就可以使用网络了:复制代码代码如下:$ sudo cp /etc/hosts /linoxide/etc/hosts最后使用 schroot -l 命令列出系统上所有的 chroot 环境:复制代码代码如下:$ schroot -l使用下面的命令进入 chroot 环境:复制代码代码如下:$ sudo chroot /linoxide/ /bin/bash测试安装的版本:复制代码代码如下:# lsb_release -a # uname -a为了在 chroot 环境中使用图形界面,你需要设置 DISPLAY 环境变量:复制代码代码如下:$ DISPLAY=:0.0 ./apps目前为止,我已经成功地在 Ubuntu 14.04 LTS 上安装了 Ubuntu 13.10。退出 chroot 环境:复制代码代码如下:# exit清理一下,卸载文件系统:复制代码代码如下:$ sudo umount /test/proc $ sudo umount /test/sys
在windows中我们可以将喜欢的网址放在桌面并双击打开,那么在ubuntu上可不可以呢,当然可以下面我们就一起来看一下。1、首先大家要写一个脚本用来打开一个网址,只有两行代码,很简单的。(我写的是打开JAVA的在线API帮助)。2、脚本写好以后我们运行脚本发现是可以正常运行的,我们先赋予脚本可运行的权限,chmod a+x 脚本名称,设置后发现脚本的各项权限如图所示。3、输入./JAVA_Api.sh 可以打开网页,这一步完成后接下来就简单了,和创建程序的快捷方式几乎一样。 4、我们来看一下JAVA_Api.desktop的详细设置,文件的配置几乎一样,就是脚本文件多了一个.sh的后缀。一定要注意脚本文件赋予它可运行的权限。5、添加完成后 在applications文件夹多了一个JAVA_Api.desktop的文件这就是快捷方式,双击图标就能打开。6、假如你想把它加到侧边栏,拖动就可以加入,好了在桌面添加网址的快捷方式就这样完成了。注意事项:编辑文件时权限的使用,要给脚本可运行的权限。相关推荐:ubuntu如何截图 ubuntu中截屏的三种方法Ubuntu 15.10正式版发布 官方ISO镜像下载