jdbc能连接mysql数据库吗_JDBC连接并使用mysql数据库

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

jdbc是一套连接数据库的工具,在使用时,通常包括以下步骤:

加载数据库驱动程序——jdbc作为工具并不包含在jdk中,我们在使用前需要去加载该类

获取数据库连接对象——如同访问网站一样,我们需要建立与数据库的链接

构造sql语句——sql语句为字符串,如同在sql客户端执行的语句是相同的

构造Statement实例——Statement实例是sql语句的载体

执行sql语句——sql语句由数据库执行,需要通过Statement载体发送给数据库再去执行

关闭连接——关闭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接口利用通配符的方式,之后设置字段值实现预想的要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值