JDBC
JAVA数据库连接(Java DataBase Connectivity),JAVA作为后台程序语言与数据库的连接是必不可少的。JDBC提供了一系列JAVA数据库操作API以便于与后台数据库进行交互。以下以MySQL为例简单小结JDBC的基础数据库操作
- 数据库驱动
连接MySQL需要在JVM中初始化数据库驱动。首先要下载一个jar包,其中包含了所需要的驱动程序,将jar包导入到项目文件中然后在程序代码中使用初始化驱动程序类的代码就能完成初始化。
jar包下载地址:https://dev.mysql.com/downloads/connector/
将jar包导入到项目文件中:
右键项目文件 → Build Path → Cconfigure Build Path → java Build Path → Add External Jars 选择你下载的jar包的文件目录添加,apply → apply and close 当看到项目中有一个Referenced Libraries文件其中包含对应的jar则添加成功。



初始化程序驱动:
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.数据库连接
完成初始化以后就可以连接数据库了,这里需要将用户名以及密码作为字符串参数传入,如此我们就得到了一个数据库连接。在连接数据库后需要关闭连接。
try {
Class.forName("com.mysql.jdbc.Driver");
//建立一个连接其中watermelon为MySQL中使用的数据库的名称,需要改成自己的,user为登录名, password为密码
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/watermelon?characterEncoding=UTF-8","user","password");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
//关闭连接
if(c!=null){
try {
c.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3.数据库操作
首先在数据库中建立一个t表其中包含一个int类型记录项用作测试表
SQL语句:
create table t (num int);
插入数据:
插入、修改、删除的操作类似,将SQL语句作为参数传入Statement类的对象调用的execute()方法进行执行
try {
//通过连接建立SQL语句类用于传输SQL语句
Statement s = c.createStatement();
//执行插入语句
s.execute("insert into t values(1)");
s.execute("insert into t values(2)");
s.execute("insert into t values(3)");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(s!=null){
try {
//s使用完后也需要关闭
s.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
修改数据:
Statement s = c.createStatement();
//将num为1的记录增加100
String sql = "update t set num=" + (i+100) + " where num=1";
//执行修改语句
s.execute(sql);
删除数据:
Statement s = c.createStatement();
//将num为2的记录删除
String sql = "delete from t where num=2";
//执行删除语句
s.execute(sql);
查询数据:
查询数据返回一个结果集,因此需要引入一个ResultSet类来存放结果,通过按行读取结果集内的返回数据记录来获取结果,具体代码如下:
try {
String sql="select * from t";
//建立查询结果集
ResultSet rs = s.executeQuery(sql);
while(rs.next()) {
//获取结果集中的记录数据项"num"为数据项的列名,依照列名访问值
int num = rs.getInt("num");
System.out.println(num);
}
//显示数据库表中的数据条数
int total = 0;
sql = "select count(*) from t";
rs = s.executeQuery(sql);
while(rs.next()) {
total = rs.getShort(1);
}
System.out.println("t表中总共有:" + total + "条数据");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(s!=null){
try {
s.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
暂时总结部分操作,to be continued... |