数据库在开发过程中是非常容易使用到的,在java的开发中也有一套工具方便我们对于数据库的连接和操作,那就是jdbc。
jdbc是一套连接数据库的工具,在使用时,通常包括以下步骤:

  1. 加载数据库驱动程序——jdbc作为工具并不包含在jdk中,我们在使用前需要去加载该类
  2. 获取数据库连接对象——如同访问网站一样,我们需要建立与数据库的链接
  3. 构造sql语句——sql语句为字符串,如同在sql客户端执行的语句是相同的
  4. 构造Statement实例——Statement实例是sql语句的载体
  5. 执行sql语句——sql语句由数据库执行,需要通过Statement载体发送给数据库再去执行
  6. 关闭连接——关闭Statement实例连接,关闭数据库连接对象的连接

下面是一段数据库插入操作的源码:

/**
* 插入操作
*/

public static void insert(){
try {
//加载数据库驱动程序
Class.forName(Driver);
//获取数据库连接对象
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWD);
//构造sql语句
String sql = " insert into person(name, age, description) values('测试', 20, '测试1');";
//构造statment实例(用来发送SQL语句的载体)
Statement stat = conn.createStatement();
//执行sql语句(发送给数据库)
int num = stat.executeUpdate(sql);
System.out.println(num);
//关闭连接
stat.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

需要注意的是,在建立Mysql链接使用的URL中,为了防止字符集不匹配的情况,我们需要指定字符集,方式如下:

public final static String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";

其中localhost:3306为数据库服务器地址,test为要使用的数据库,在其之后的characterEncoding=utf-8是指定的字符集。




上面是一个简单的插入操作,插入的是一个纯粹的字符串组成的sql语句,在实际应用中,我们可能不能确定将要插入的字符,所以我们需要通过预先编译的sql语句将即将要执行的sql语句(不含字段值)存储起来,然后在执行前给预先编译好的sql语句进行设置值操作,如下,通过实现PreparedStatement接口进行操作:

package JdbcConnect;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
* Created by zhuxinquan on 16-2-5.
*/

public class PreparedStatementDemo {

public final static String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
public final static String USERNAME = "root";
public final static String PASSWD = "××××××××";
public final static String Driver = "com.mysql.jdbc.Driver";


public static void insert(Person p){
try {
Class.forName(Driver);
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWD);
String sql = "insert into person(name, age, description) values(?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
//设置字段值
ps.setString(1, p.getName());
ps.setInt(2, p.getAge());
ps.setString(3, p.getDescription());

ps.executeUpdate();
ps.close();
conn.close();


} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
Person p = new Person("测试3", 23, "ceshi 3");
insert(p);
}
}


在上面这段代码中并没有将字段的具体值写入字符串中,而是通过PreparedStatement类去设置之前通过通配符表示的字段值。进而去执行已经预编译好的sql语句。

更新操作完成后的sql语句返回影响的行数,而查询操作完成后返回的是ResultSet结果集,我们需要对其结果进行处理才能得到我们想要的结果,如下例就是一个简单的查询操作:

package JdbcConnect;

import java.sql.*;

/**
* Created by zhuxinquan on 16-2-4.
*/

public class JdbaQueryDemo {
public final static String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
public final static String USERNAME = "root";
public final static String PASSWD = "××××××××";
public final static String Driver = "com.mysql.jdbc.Driver";

public static void query(){
try {
Class.forName(Driver);
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWD);
String sql = "select id, name, age, description from person";
Statement state = conn.createStatement();
//返回查询的结果集
ResultSet rs = state.executeQuery(sql);
while (rs.next()){
int id = rs.getInt(1);
System.out.println(id);
}
rs.close();
state.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
query();
}
}


同样当我们要查询的条件不确定时,我们也可以通过使用PreparedStatement接口利用通配符的方式,之后设置字段值实现预想的要求。

更多相关文章

  1. 数据库事务——还是这是一个规范化问题?
  2. fmdb 数据库升级1-----增加表字段
  3. SQL Server 2008 数据库镜像部署实例之三 配置见证服务器
  4. IFX数据库访问介绍
  5. mysql常用命令/语句学习三
  6. 从数据库sql中删除一个单词
  7. mysql数据库之表的操作
  8. 教你如何彻底卸载MySQL数据库
  9. 如何用c#创建SQL Server 2012数据库?

随机推荐

  1. 040-PHP使用闭包函数来进行父实例的变量
  2. 如何通过PHP将HTML页面作为字符串获取?
  3. Php DateTime :: setDate()不在第一个DateP
  4. 使用ajax在服务器端恢复json时出错
  5. 在Cake PHP中更新现有的sql数据
  6. Zend数据库适配器-未捕获异常-堆栈跟踪显
  7. PHP中使用sleep函数实现定时任务实例分享
  8. PHP脚本在我的Wordpress文件中。请解码或
  9. 微信JS-SDK——微信分享给朋友
  10. 一个简易的PHP读取CSV文件的方法