纯Java驱动方式由JDBC驱动直接访问数据库,驱动程序完全由Java语言编写,运行速度快,而且具备了跨平台的特点。使用纯Java驱动方式进行数据库连接,首先需要下载数据库厂商提供的驱动程序JAR包,并将JAR包引入工程中。本示例使用的数据库是MySQL
5.5(对应驱动程序JAR包下载地址:http://download.csdn.net/download/jisuanjiguoba/10247910),
假定在MySQL数据库中已经建立名称为test的数据库。

示例代码:

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;

public class Jdbctest {
   public static void main(String[] args) throws Exception {
       Connection conn = null;
       String user = "root";
       String pwd = "root";
       String sql;
       // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
       // 避免中文乱码要指定useUnicode和characterEncoding
       // 在运行本程序前先创建test数据库
       //String url = "jdbc:mysql://localhost:3306/test";
       //String url = "jdbc:mysql://localhost:3306/test?"
               //+
"user=root&password=root&useUnicode=true&characterEncoding=UTF8";
       String url = "jdbc:mysql://localhost:3306/test?"
               + "user=root&password=root";
 
       try {
           Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
           System.out.println("MySQL驱动程序加载成功");
           conn = DriverManager.getConnection(url);
           // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
           Statement stmt = conn.createStatement();
   sql = "create table student(NO char(20),name varchar(20),primary key(NO))
charset utf8 collate utf8_general_ci";
           int result = stmt.executeUpdate(sql);//
executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
           if (result != -1) {
               System.out.println("创建数据表成功");
               sql = "insert into student(NO,name) values('2018006','陈星')";
               result = stmt.executeUpdate(sql);
               sql = "insert into student(NO,name) values('2018008','李杰')";
               result = stmt.executeUpdate(sql);
               sql = "select * from student";
               ResultSet rs = stmt.executeQuery(sql);//
executeQuery会返回结果的集合,否则返回空值
               System.out.println("学号\t姓名");
               while (rs.next()) {
                   System.out.println(rs.getString(1) + "\t" +
rs.getString(2));
               }
           }
       } catch (SQLException e) {
           System.out.println("MySQL操作有误");
           e.printStackTrace();
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           conn.close();
       }
 
   }
 
}


注意事项:

①如果sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
则会出现如下情况

             Incorrect string value: '\xE9\x99\xB6\xE4\xBC\x9F...' for column
'name' at row 1






因此需要将其改为sql = "create table student(NO char(20),name varchar(20),primary
key(NO))charset utf8 collate utf8_general_ci";  以便在创建数据表的时候设置编码(整个过程需要注意:
创建数据库的时候数据编码设置是否有误,连接数据库的时候数据编码是否有误,创建数据表的时候数据编码是否有误)。

②如果出现java.sql.SQLException: Access denied for user 'root'@'localhost' (using
password: NO)则是由于安装MySQL数据库时默认的初始化密码造成的问题,可根据相关更改MySQL初始密码的教程进行密码重置。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信