简单的JDBC操作

JDBC的作用就是,用程序来执行SQL语句操作。
可以使用JDBC对程序进行增、删、改、查。

首先,我们尝试使用JDBC 往数据库中插入一个记录
需要执行5步

  1. 创建DataSource数据源。描述MySQL数据库在哪
  2. 和数据库建立连接
  3. 构造SQL语句
  4. 执行SQL,针对增、删、改操作 使用executeUpdate()来执行;针对查操作使用PreparedStatement()来执行
  5. 断开连接,释放资源

1)创建DataSource数据源,描述MySQL数据库在哪

DataSource dataSource = new MysqlDataSource();   //向上转型
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java106?characterEncoding=utf8&useSSL=false");   //向下转型
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("***");

在这里用到了向上转型和向下转型,在最开始new对象时,使用DataSource类型的实例,这样可以避免MysqlDataSource的扩散,如果未来需要更改数据库,我们只需要改变第一行代码一处即可。
也可以直接使用MysqlDataSource类型:

MysqlDataSource dataSource1 = new MysqlDataSource(); 
dataSource1.setUrl();  
dataSource1.setUser();
dataSource.setPassword();

2) 和数据库建立连接

Connection connection = dataSource.getConnection();  
//这里会报异常,我们需要处理,先把他扔到main函数处

3) 构造SQL语句

String sql = "insert into student values(1,'aaa')";

上述描述了要执行的SQL语句是啥样的,但是真正的执行,还是需要下面这行:

PreparedStatement statement = connection.preparedStatement(sql);

jdbc 中需要搭配一个特定的对象来描述这里的sql的情况
PreparedStatement : 经过预处理过的语句
statement对象给我们提供了替换,预编译等功能.
每次执行一次SQL语句都要重新构造一下PreparedStatement 。
PreparedStatement背后做了很多事,比如会对SQL语句进行一些预处理(对语法进行解析之类)
之前我们通过cmd输入的SQL,都把SQL直接发给服务器,让服务器来解析,服务器要做很多,通过PreparedStatement,减轻服务器的工作压力

4)执行SQL

int ret = statement.executeUpdate();

增、删、改 使用executeUpdate()来执行;这里的返回值表示执行该语句所影响的行数量
查操作使用PreparedStatement()来执行;这里的返回值是一个ResultSet结果集

5) 断开连接,释放资源

statement.close();
connection.close();

注意资源释放的顺序和创建的顺序是相反的,后创建的要先释放

总代码如下:

public class JDBCInsertDemo {
    public static void main(String[] args) throws SQLException {
        // 使用JDBC 往数据库中插入一个记录

        //1.创建DataSource数据源,描述MySQL数据库在哪
        DataSource dataSource = new MysqlDataSource();  //向上转型
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java106?characterEncoding=utf8&useSSL=false");    //向下转型
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("111");

        //2. 和数据库建立连接
        Connection connection = dataSource.getConnection();  //有可能会报异常,要处理异常

        //3. 构造SQL语句
		String sql = "insert into student values(1,'aaa')";
        PreparedStatement statement = connection.prepareStatement(sql);   

        //4. 执行SQL.
        int ret = statement.executeUpdate();
        System.out.println("ret = " + ret);
        
        //5. 断开连接,释放资源
        statement.close();;
        connection.close();
    }
}

在上文中。第三步构造SQL,更多的时候,我们都希望插入的数据是动态的,因此可以改成通过控制台。来输入用户的信息

//通过控制台。来输入用户的信息
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学号");
int id = scanner.nextInt();
System.out.println("请输入姓名");
String name = scanner.next();

String sql = "insert into student values(" + id + ", '" + name + "');";

但是,这样的语句十分不易于阅读,且容易引发SQL注入,因此,使用preparedStatement,通过占位符替换方式来实现动态的SQL构造

Scanner scanner = new Scanner(System.in);
System.out.println("请输入学号");
int id = scanner.nextInt();
System.out.println("请输入姓名");
String name = scanner.next();

String sql = "insert into student values(?,?)";
PreparedStatement statement = connection.preparedStatement(sql);

statement.setInt(1, id);  //表示给第一个占位符,传入id的值
statement.setString(2, name);

System.out.println("sql:" + statement);  //可以看到最终构造的SQL语句

这样就可以动态,安全的插入数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,通过JDBC可以实现与各种数据库的连接和操作。高斯数据库是一种分布式数据库系统,支持高性能、高可靠性的数据存储和查询。下面是使用JDBC操作高斯数据库的一般步骤: 1. 导入JDBC驱动:首先需要将高斯数据库的JDBC驱动导入到项目中,可以从高斯数据库官方网站下载相应的驱动。 2. 加载驱动:使用`Class.forName()`方法加载驱动类,例如: ```java Class.forName("com.gauss.jdbc.Driver"); ``` 3. 建立连接:使用`DriverManager.getConnection()`方法建立与数据库的连接,需要提供数据库的URL、用户名和密码,例如: ```java String url = "jdbc:gauss://localhost:5432/mydb"; String username = "myuser"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, username, password); ``` 4. 创建Statement或PreparedStatement对象:通过连接对象创建Statement或PreparedStatement对象,用于执行SQL语句,例如: ```java Statement stmt = conn.createStatement(); ``` 5. 执行SQL语句:使用Statement或PreparedStatement对象执行SQL语句,例如: ```java String sql = "SELECT * FROM mytable"; ResultSet rs = stmt.executeQuery(sql); ``` 6. 处理结果集:通过ResultSet对象获取查询结果,进行相应的处理,例如: ```java while (rs.next()) { // 处理每一行数据 String column1 = rs.getString("column1"); int column2 = rs.getInt("column2"); // ... } ``` 7. 关闭资源:在使用完毕后,需要关闭ResultSet、Statement、Connection等资源,例如: ```java rs.close(); stmt.close(); conn.close(); ``` 这是一个简单JDBC操作高斯数据库的示例,具体的操作还可以根据实际需求进行扩展和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值