java闲谈(超超)jdbc应用
来源:互联网 发布:海南教务网络管理系统 编辑:程序博客网 时间:2024/05/09 06:46
开发JDBC应用:
企业的开发离不开数据库的操作,用Java如何访问数据库也是一个难点,我读书的时候初学Java,试了好多次才能成功的向数据库中插入了数据.以下讲解在普通的项目中用JDBC访问MySQL 5.
0数据库,用别的数据库也可以完成可以试试.只是建表语句略微不同eg>Derby数据库.
1.创建数据库表格:
安装并启动MySQL数据库以及获得对应的JDBC驱动jar文件,或直接使用Derby数据库.
对于多数的项目来说,基本上前期的工作就是进行需求分析,分析的结果一是功能模块,二可能就是实体或者对象,实体最终就会映射到数据库设计中去.所以这里先从创建数据库开始.
首先需要创建一个学生表,建表的SQL如下:
create table Student(
id int not null auto_increment,
username varchar(200) not null,
password varchar(20) not null,
age int,
primary key (id)
)ENGINE=MyISAM DEFAULT CHARSET=GBK
注意:这个是MySQL数据库的建表语句.这个表有一个自增的ID列作为主键,还有用户名,密码和年龄三个列,最后哦一句ENGINE=MyISAM DEFAULT CHARSET=GBK指定了表的默认字符集是GBK中文字符,这一句是MySQL特有的语法.在MyEclipse Database Explorer透视图的DB Browser视图中打开mysql5这个连接,展开并选中test数据库,然后打开SQL编辑器,编辑上述代码,然后运行(Ctrl + F9)或按钮创建这个表.
如果要用Derby数据库做练习,对应的SQl为:
create table Student(
id int not null generated always as identity,
username varchar(200) not null,
password varchar(20) not null,
age int,
primary key (id)
)
需要指出的是,并非所有数据库都支持自增类型的主键,而且不同的数据库实现主键生成的关键字也是没有统一规定的,例如Oracle使用一个叫sequence的概念来生成主键.那么通用的不带主键自增的建表语句如下所示:
create table Student(
id int not null,
username varchar(200) not null,
password varchar(20) not null,
age int,
primary key(id)
)
用Eclipse建表的操作过程如下图所示:
当然对于MySQL数据库来说,也可以用MySQL-Front,Navicat或者SQl-YOG等工具来方便的建表,所以上述内容也是可能的操作之一.
2.创建Java项目:
创建一个名为JDBCHelloWorld的Java项目.首先确保已经打开了MyEclipse Java Enterprise透视图,然后从菜单栏选择File > New > Java Project,接着会打开New Java Project向导对话框,在Project name中输入JDBCHelloWorld,点击Finish按钮关闭对话框,这样一个Java项目就建立完毕了.稍等片刻会弹出一个切换透视图的对话框,为了避免造成更多的麻烦,我们一般选择No按钮即可.
3.添加JDBC驱动到Build Path
要连接数据库必须要将JDBC驱动类库加入到项目的Build Path中,不同的数据库的JDBC驱动类库文件是不一样的.首先需要找到对应的驱动,MySQL的可以从官方网站下载,而MyEclipse Derby的则位于Windows当前用户的配置文件目录下面,例如C:/Documents and Settings/BeanSoft/myeclipse/libs/derby_10.2.2.0/derbyclient.jar.在Windows的文件浏览器中选中文件并复制到剪贴板(选择菜单编辑>复制,或者在文件上点击右键选择菜单复制,或者按下组合键Ctrl + C),然后点击任务栏切换到MyEclipse的窗口,在Package Explorer视图中选中刚刚创建的JDBCHelloWorld项目节点的上下文菜单中选择Paste,或者按下快捷键Ctrl + V,这时候驱动程序的JAR文件例如mysql-connector-java-3.1.11-bin.jar就复制并添加到了当前项目中,点击一下来选中这个jar文件,然后单击鼠标右键,选择菜单Build Path>Add to Build Path就可以将这个jar文件加入Build Path中如下图所示:
4.编写JDBC访问类:
至此开发环境已经准备好了,所缺的就是写Java程序来访问数据库了.
接着选择菜单File > New > Class,然后(New Java Class)新建类的对话框就出现了,接着在Name输入框中输入JDBCHelloWorld,点击完成.接着将编辑器里面的代码修改程如下:
/*
* JDBCHelloWorld.java
* 版权所有 2009 焦俊(jiaojun2lnn@163.com)
* Blog: http://www.blogjava.net/bensoft/
* 本代码协议: GPL
*/
import java.sql.*;
/**
* 第一个JDBC的HelloWorld程序,数据库访问MySQL.
* @author jiaojun2lnn@163.com
* @version 0.4 2009-12-06
*/
public class JDBCHelloWorld {
public static void main(String[] args){
//1.注册驱动
try{
Class.forName(“com.mysql.jdbc.Driver”);
}catch(ClassNotFoundException e){
// TODO Auto-generated catch block
e.printStackTrace();
}//MySQL的驱动
//先定义变量,后使用和关闭
Connection conn = null;//数据库连接
Statement stmt = null;//数据库表达式
ResultSet rs = null;//结果集
try{
//2.获取数据库的连接
conn = java.sql.DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK”,”root”,”java”);//root是用户名,java是密码
//3.获取表达式
stmt = conn.createStatement();
//执行插入数据的SQL
int row = stm.executeUpdate(“insert into Student(username,password,age) values(‘张三’,’1234’,20)”);
System.out.println(“插入了 ” + row);
//4.执行SQL
rs = stmt.executeQuery(“select * from Student”);
//5.显示结果集里面的数据
while(rs.next()){
System.out.println(“编号=” + rs.getInt(1));
System.out.println(“学生姓名=” + rs.getString(“username”));
System.out.println(“密码=” + rs.getString(“password”));
System.out.println(“年龄” + rs.getString(“age”));
}
//执行删除数据的SQL,被删除的记录的ID为7
row = stmt.executeUpdate(“delete from student where id = 7”);
System.out.println(“删除了 ” + row);
}catch(SQLException e){
e.printStackTrace();
}finally{
//6.释放资源,建议放在finally语句中确保都被关闭掉了
try{
rs.close();
}catch(SQLException e){
}
try{
stmt.close();
}catch(SQLException e){
}
try{
conn.close();
}catch(SQLException e){
}
}
}
}
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK 这个是连接到MySQL数据库的JDBC URL,关于这段代码中的?useUnicode=true&characterEncoding=GBK是说以支持国际字符集(Unicode)的方式并以GBK中文字符集连接到数据库,如果安装时候选择的数据库的默认字符集是UTF-8,那么这个地方把GBK换成UTF-8就可以了.当然更快的办法是你将这段代码直接复制,然后在MyEclipse点击菜单Edit > Paste就可以生成这个类文件了.当你的代码编写完毕后,MyEclipse会自动将代码编译程类文件.接下来就可以运行写好的类了,选择菜单Run > Run或者按下快捷键Ctrl + F11,就可以看到Eclipse会自动调用Java解释器,然后在Console视图中输出:
这个程序就执行成功了,粗体部分为刚刚插入的数据.再执行依次将会输出两行数据:
可以看到ID是自动生成的.
如果要连接到Derby数据库,这段程序稍作修改即可.
驱动字符串改为”org.apache.derby.jdbc.ClientDriver”
URL改为:”jdbc:derby://localhost:15237/myeclipse”,”classiccars”,”classiccars”
因为实际工作中很多公司因为项目周期长的原因,因此纯JDBC方式的数据库访问代码可能会经常看到.
注意:此内容并不能代替您来学习JDBC,请阅读数据等来获取更多的信息.关于JDBC分页,PreparedStatement等高级内容可以从Google搜索.
参考资料:
http://www.blogjava.net/beansoft/archive/2007/10/23/155318.html 基于_JDBC_2.0_驱动的分页代码实现
- java闲谈(超超)jdbc应用
- jdbc超简单连接
- java通过JDBC链接SQLServer2012【转载!!!超详细】
- 超焦距是什么?如何应用超焦距?
- JDBC--使用DAO工厂模式(代码超经典)
- JDBC--使用DAO工厂模式(代码超经典)
- java应用——写一个超简单的QQ登录界面(没有监听)
- JAVA 正则表达式 (超详细)
- java参数传递(超经典)
- [转]JAVA 正则表达式 (超详细)
- JAVA 正则表达式 (超详细)
- JAVA 正则表达式 (超详细)
- java参数传递(超经典)
- java的扫雷小游戏(超简单)
- JAVA 正则表达式 (超详细)
- java参数传递(超经典)
- JAVA 正则表达式 (超详细)
- java参数传递(超经典)
- 多线程
- web 文件上传 续 在服务器端判别类型 欢迎拍砖!
- 搜了好久终于找到了--
- 使用脚本实现自动化构建项目
- 自适应分辨率可扩展二层JS下拉菜单(转)
- java闲谈(超超)jdbc应用
- 笑话:经典预告
- 软件工程专业,大学期间最重要的是学好哪些知识?
- 起航。。。
- 你知道什么叫“打工仔”
- 博士毕业后过早自立门户独立科研并不见得是好事
- 复选框(checkbox)和单选框(radio)与文字居中对齐
- 单例模式与纯静态类(各种转) 求解疑!
- 百度文库 Java security