本章将给出如何链接数据库的方法,以及如何操作数据库的数据库操作语句和代码解释:
一、如何在eclipse上链接数据库?方法是什么?代码是怎样的?
1、先说说链接数据库的步骤,如下:
(需要三个工具: eclipse工具;Mysql数据库;JDBC驱动包;)
想要在eclipse上链接数据库,首先需要下载对应数据库的jdbc驱动包,如Mysql数据库需要下载Mysql数据库对应的jdbc驱动包。如果是SQLserver数据库,则需要下载SQLserver数据库对应的jdbc驱动包。
JDBC
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
1、与一个数据库建立链接;
2、向已连接的数据库发送SQL语句;
3、处理SQL语句返回结果;
第一步:链接数据库
(1)加载JDBC-数据库驱动;
(2)和指定的数据库建立链接;
代码如下:
ConnectSQL.java
package SQLfirstwork;
import java.sql.*;
public class ConnectSql {
public static void main(String[] args) {
Connection con=null;
Statement sql;
ResultSet rs;//顺序对象,用于存储返回的结果集
try {
Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动
}
catch(Exception e) {
//
}
String uri="jdbc:mysql://localhost:3306/test?useSSL=true";//链接Mysql数据库
String user="root";//默认账户
String password="000000";//密码
try {
con=DriverManager.getConnection(uri,user,password);//链接(登入)数据库
}
catch(Exception e) {
//
}
try {
sql=con.createStatement();
rs=sql.executeQuery("select * from score");
while(rs.next()) {
int Id=rs.getInt(1);
int Stu_id=rs.getInt(2);
String C_name=rs.getString(3);
int Grade=rs.getInt(4);
System.out.println(Id+" "+Stu_id+" "+C_name+" "+Grade);
//System.out.print(Stu_id);
//System.out.print(C_name);
//System.out.print(Grade);
}
con.close();//关闭链接
}
catch(SQLException e) {
System.out.println(e);
}
}
}
第二步:创建数据库
代码如下:
package firstwork;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateDBscore {
public static void main(String args[]) {
Connection con = null;
Statement sql;
ResultSet rs;
try {
Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动
}
catch(Exception e) {
//
}
String uri="jdbc:mysql://localhost:3306/test?useSSL=true";
String user="root";
String password="000000";
try {
con=DriverManager.getConnection(uri,user,password);//链接数据库
}
catch(Exception e) {
//
}
//更新————————————————————————————————————————————————————————————————————————————————
if(con==null) {
return;
}
//创建创建表语句
String sqlStr="CREATE TABLE score (\r\n" +
"id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,\r\n" +
"stu_id INT(10) NOT NULL ,\r\n" +
"c_name VARCHAR(20) ,\r\n" +
"grade INT(10)\r\n" +
");\r\n" +
"";
//执行更新
try {
sql=con.createStatement();
@SuppressWarnings("unused")
int ok=sql.executeUpdate(sqlStr);
//返回查询
rs= sql.executeQuery("select * from score");
while(rs.next()) {
int Id=rs.getInt(1);
int Stu_id=rs.getInt(2);
String C_name=rs.getString(3);
int Grade=rs.getInt(4);
System.out.println(Id+" "+Stu_id+" "+C_name+" "+Grade);
}
con.close();
}
catch(SQLException e) {
System.out.println("记录中Id值不能重复"+e);
}
}
}
注:在eclipse中执行上述语句,然后在SQLyog图形管理工具中点击刷新如下图:
第三步:删除语句
代码如下:
package firstwork;
import java.sql.*;
public class DeleteDB {
public static void main(String args[]) {
Connection con = null;
Statement sql;
ResultSet rs;
try {
Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动
}
catch(Exception e) {
//
}
String uri="jdbc:mysql://localhost:3306/test?useSSL=true";
String user="root";
String password="000000";
try {
con=DriverManager.getConnection(uri,user,password);//链接数据库
}
catch(Exception e) {
//
}
//更新————————————————————————————————————————————————————————————————————————————————
if(con==null) {
return;
}
//创建删除语句
String sqlStr="delete from score";
//执行更新
try {
sql=con.createStatement();
@SuppressWarnings("unused")
int ok=sql.executeUpdate(sqlStr);
//返回查询
rs= sql.executeQuery("select * from score");
while(rs.next()) {
int Id=rs.getInt(1);
int Stu_id=rs.getInt(2);
String C_name=rs.getString(3);
int Grade=rs.getInt(4);
System.out.println(Id+" "+Stu_id+" "+C_name+" "+Grade);
}
con.close();
}
catch(SQLException e) {
System.out.println("记录中Id值不能重复"+e);
}
}
}
第四步:查询语句
(1)方法一:(此篇谨以此方法介绍简单的操作,读者可举一反三)利用.next()函数逐条返回查询的一行数据。
代码如下:
package secondwork;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SelectDB_01 {
public static void main(String[] args) {
Connection con=null;
Statement sql;
ResultSet rs;//顺序对象
try {
Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动
}
catch(Exception e) {
//
}
String uri="jdbc:mysql://localhost:3306/test?useSSL=true";
String user="root";
String password="000000";
try {
con=DriverManager.getConnection(uri,user,password);
}
catch(Exception e) {
//
}
try {
sql=con.createStatement();
rs=sql.executeQuery("select * from student");
System.out.println("id "+"name "+"sex "+"birth "+"department "+"address ");
while(rs.next()) {
int id=rs.getInt(1);
String name=rs.getString(2);
String sex=rs.getString(3);
int birth=rs.getInt(4);
String department=rs.getString(5);
String address=rs.getString(6);
System.out.println(id+" "+name+" "+sex+" "+birth+" "+department+" "+address);
//System.out.print(Stu_id);
//System.out.print(C_name);
//System.out.print(Grade);
}
con.close();//关闭链接
}
catch(SQLException e) {
System.out.println(e);
}
}
}
第五步:插入语句
代码如下:
package firstwork;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertDBscore {
public static void main(String args[]) {
Connection con = null;
Statement sql;
ResultSet rs;
try {
Class.forName("com.mysql.jdbc.Driver");//加载JDBC驱动
}
catch(Exception e) {
//
}
String uri="jdbc:mysql://localhost:3306/test?useSSL=true";
String user="root";
String password="000000";
try {
con=DriverManager.getConnection(uri,user,password);//链接数据库
}
catch(Exception e) {
//
}
//更新————————————————————————————————————————————————————————————————————————————————
if(con==null) {
return;
}
//创建更新语句
String jilu= "(NULL,901, '计算机',98),"
+"(NULL,901, '英语', 80),"
+"(NULL,902, '计算机',65),"
+"(NULL,902, '中文',88),"
+"(NULL,903, '中文',95),"
+"(NULL,904, '计算机',70),"
+"(NULL,904, '英语',92),"
+"(NULL,905, '英语',94),"
+"(NULL,906, '计算机',90),"
+"(NULL,906, '英语',85)";
String sqlStr="insert into score values"+jilu;
//执行更新
try {
sql=con.createStatement();
@SuppressWarnings("unused")
int ok=sql.executeUpdate(sqlStr);
//返回查询
rs= sql.executeQuery("select * from score");
while(rs.next()) {
int Id=rs.getInt(1);
int Stu_id=rs.getInt(2);
String C_name=rs.getString(3);
int Grade=rs.getInt(4);
System.out.println(Id+" "+Stu_id+" "+C_name+" "+Grade);
}
con.close();
}
catch(SQLException e) {
System.out.println(e);
}
}
}
注:如上代码可知,对数据库简单的增,删,改,查,我们可以用很简单的代码将其实现。当然,也有许多更优、更好的算法,此处笔者不做说明,请读者自行查找摸索。