实验内容和实验目的
一、实验目的
- 掌握Java数据库程序设计的基本方法。
二、实验内容
上机实现下列程序并观察程序的运行情况: - 创建一学生数据库School,创建一表studb,包含字段:学号、姓名、性别、专业、入学年份。编写程序对studb表进行学生信息的增、删、改、查操作。
实验过程
实验要求里面没有要求是远程连接数据库还是本地连接,这里采用远程连接(数据库实验刚刚学了jdbc,这里就直接套用了)
远程连接
远程连接是基于OpenGauss数据库进行,需要postgresql.jar
包。
环境配置可参考:
数据库实验九
简单来说环境配置步骤
- 修改postgresql.conf
- 修改pg_hba.conf
- 新建用户(openGauss不能使用默认账号omm连接)
- 将权限赋给新建的账户
- (配置客户端接入认证似乎是需要看电脑环境的其他配置情况,有些并不需要这一步)
代码:
远程创建表需要赋给角色系统权限
GRANT ALL PRIVILEGES TO shiyanjiu;
(ps:用户叫shiyanjiu
是因为数据库实验九是远程连接)
package opengauss;
import java.sql.*;
public class java {
//以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。
public static void main(String[] args) throws SQLException
{
//驱动类。
String driver = "org.postgresql.Driver";
//数据库连接描述符。
String sourceURL = "jdbc:postgresql://192.168.56.124:26000/db_cc";
Connection conn = null;
try
{
//加载驱动。
Class.forName(driver);
}
catch( Exception e )
{
e.printStackTrace();
}
try
{
//创建连接。
conn = DriverManager.getConnection(sourceURL, "shiyanjiu","openGauss@123");
Statement stmt = null;
// 执行查询
stmt = conn.createStatement();
//插入
String sql = "create table studb" +//建表的SQL语句
"( sno int primary key," +
" sname char(20)," +
" sex char(5)," +
" speciality char(20)," +
" date date" +
" );";
Statement statement = conn.createStatement();
int rows = statement.executeUpdate(sql);
System.out.println("数据表创建成功");
statement.close();//关闭
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
return ;
}
return;
}
}
增删改的话就变动代码中的sql
语句就行
package opengauss;
import java.sql.*;
public class java {
//以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。
public static void main(String[] args) throws SQLException
{
//驱动类。
String driver = "org.postgresql.Driver";
//数据库连接描述符。
String sourceURL = "jdbc:postgresql://192.168.56.124:26000/db_cc";
Connection conn = null;
try
{
//加载驱动。
Class.forName(driver);
}
catch( Exception e )
{
e.printStackTrace();
}
try
{
//创建连接。
conn = DriverManager.getConnection(sourceURL, "shiyanjiu","openGauss@123");
Statement stmt = null;
// 执行查询
stmt = conn.createStatement();
//插入
String sql = "insert into studb values('0001','张三','男','计算机类','2020-9-10');";
Statement statement = conn.createStatement();
int rows = statement.executeUpdate(sql);
System.out.println("数据插入成功");
statement.close();//关闭
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
return ;
}
return;
}
}
连接数据库检查: