java更新数据库几种方法总结

讲到了如何用java连接mysql数据库,并读取数据库里某字段的值,这次需要涉及的是更新数据库操作。对于入门级的学习者来说,最简单的方法有两种。 先来看下之前如何读取数据库的:

 代码如下 复制代码

Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM user where name = '" + name + "'");

是的,我们用的select语句,而更新数据库,用的是update语句(谁扔的石头,NND我都说了这是入门级的教程)。

 代码如下 复制代码

Statement st = con.createStatement();
ResultSet rs = st.executeQuery("UPDATE user set password = '" + password + "'" where name = '" + name + "'");

其实这里还有另外一种方法,利用select先找到数据匹配的那条记录,然后直接用updateRow()
来更新记录:

 代码如下 复制代码

Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = st.executeQuery("SELECT * FROM user where name = '" + name + "'");
rs.updateString("password",password);
rs.updateRow();

个人觉得第2种方法的好处是不太容易由于少个引号而出现语法错误。注意第2种方法的createStatement()是有参数的,必须是updatable才行,否则re.updateRow()是会报错的。

这里顺便说一下删除的语法:

 代码如下 复制代码

Statement st = con.createStatement();
st.execute("DELETE FROM user where name = '" + name + "'");

另一种办法

建一个简单的数据库如下:

 代码如下 复制代码

                  

import java.sql.*;
public class GetConnection {
    public static void main(String[] args){
        try{
            //调用Class.forName()方法加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加载MySQL驱动!");
        }catch(ClassNotFoundException e1){
            System.out.println("找不到MySQL驱动!");
            e1.printStackTrace();
        }
       
        String url="jdbc:mysql://localhost:3306/mysql";    //JDBC的URL   
        //调用DriverManager对象的getConnection()方法,获得一个Connection对象
        Connection conn;
        try {
            conn = DriverManager.getConnection(url,    "root","");
            //创建一个Statement对象
            Statement stmt = conn.createStatement(); //创建Statement对象
            System.out.print("成功连接到数据库!");
            stmt.close();
            conn.close();
        } catch (SQLException e){
            e.printStackTrace();
        }
    }
}

2. 查询数据表

  在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。

 代码如下 复制代码

import java.sql.*;

public class SelectTable {
   
    public static void main(String[] args){
        try{
            //调用Class.forName()方法加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加载MySQL驱动!");
               
            String url="jdbc:mysql://localhost:3306/aniu";    //JDBC的URL   
            Connection conn;

            conn = DriverManager.getConnection(url,    "root","");
            Statement stmt = conn.createStatement(); //创建Statement对象
            System.out.println("成功连接到数据库!");

            String sql = "select * from stu";    //要执行的SQL
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象
                System.out.println("编号"+"t"+"姓名"+"t"+"年龄");
                while (rs.next()){
                    System.out.print(rs.getInt(1) + "t");
                    System.out.print(rs.getString(2) + "t");
                    System.out.print(rs.getInt(3) + "t");
                    System.out.println();
                }
                rs.close();
                stmt.close();
                conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }
}

修改和删除数据库

 代码如下 复制代码

//修改删除数据
import java.sql.*;
public class UpdateDeleteDemo {
    public static void main(String[] args)throws Exception{
        try{
            //调用Class.forName()方法加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("成功加载MySQL驱动!");
               
            String url="jdbc:mysql://localhost:3306/aniu";    //JDBC的URL   
            Connection conn;

            conn = DriverManager.getConnection(url,    "root","");
            Statement stmt = conn.createStatement(); //创建Statement对象
            System.out.println("成功连接到数据库!");

            //查询数据的代码
            String sql = "select * from stu";    //要执行的SQL
            ResultSet rs = stmt.executeQuery(sql);//创建数据对象
                System.out.println("编号"+"t"+"姓名"+"t"+"年龄");
                while (rs.next()){
                    System.out.print(rs.getInt(1) + "t");
                    System.out.print(rs.getString(2) + "t");
                    System.out.print(rs.getInt(3) + "t");
                    System.out.println();
                }
               
            //修改数据的代码
            String sql2 = "update stu set name=? where number=?";
            PreparedStatement pst = conn.prepareStatement(sql2);
            pst.setString(1,"8888");
            pst.setInt(2,198);
            pst.executeUpdate();
               
            //删除数据的代码
            String sql3 = "delete from stu where number=?";
            pst = conn.prepareStatement(sql3);
            pst.setInt(1,701);
            pst.executeUpdate();
               
            ResultSet rs2 = stmt.executeQuery(sql);//创建数据对象
            System.out.println("编号"+"t"+"姓名"+"t"+"年龄");
            while (rs.next()){
                System.out.print(rs2.getInt(1) + "t");
                System.out.print(rs2.getString(2) + "t");
                System.out.print(rs2.getInt(3) + "t");
                System.out.println();
            }
               
            rs.close();
            stmt.close();
            conn.close();
            }catch(Exception e)
            {
                e.printStackTrace();
            }
    }
}

时间: 2024-08-07 00:57:55

java更新数据库几种方法总结的相关文章

java备份数据库四种方法(mysql,mssql数据库备份)

java备份数据库教程四种方法(mysql教程,mssql数据库备份) mysql数据库备份的东西,然后研究了一下java语言中怎么来调用cmd的命令来实现mysqldump的备份功能.具体实现如下: 1.首先设置环境变量:有两种方式.第一种,在环境变量中添加 mysql_home,设置内容为 mysql的安装路径,然后,在path中添加路径  %mysql_home%bin    .第二种方法,不新建mysql_home,而是直接在path中添加   mysql安装路径bin .这样,调用cm

实用技巧:PHP中调用Java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点. 1.php的Java模块 php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如: <?php$system=new Java("java.lang.System");print "Java ver

PHP调用java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用.在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现.下面我们来比较一下这两种方法各自的特点.1.php的Java模块php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:<?php$system=new Java("java.lang.System");print "Java versio

java随机数的几种方法

java随机数的几种方法   方法1:    1 //利用固定数组长度n,通过n的变化来实现.  2  //关键:nums[r]=nums[n-1];  3  //        n--;  4 public class Test1  5 {  6     public static void main(String[] args){  7         int n=35;  8         int[] nums=new int[n];  9         for(int i=0;i<n

java解析xml二种方法

java解析xml二种方法 配置文件为: <?xml version="1.0" encoding="utf-8"?> <config>     <point name="test1">         <name>zhang3</name>         <address>abcdefg</address>         <email>a@b.c

.net MVC 连接数据本地数据库三种方法总结_实用技巧

.net MVC 连接数据本地数据库三种方法 <appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" />

SQL Server无日志恢复数据库(2种方法)_MsSql

SQL Server是一个关系数据库管理系统,应用很广泛,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,又由于SQL Server数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复.下文就为大家介绍一种恢复数据库日志文件的方法. 解决方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先

SQL Server无日志恢复数据库(2种方法)

SQL Server是一个关系数据库管理系统,应用很广泛,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,又由于SQL Server数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复.下文就为大家介绍一种恢复数据库日志文件的方法. 解决方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先

Java云计算的两种方法

最近,人们在思考如何使用Java来实现云计算,我看到了两种趋势性的方法.它们存在交叉重叠处而并非互相排斥,但总体而言它们在项目方面有着非常不同的表现: 重面向UI(Heavy UI oriented) 这种类型的应用或框架通常提供基于UI的控制台.管理有用.插件等,这为管理云中的资源比如开始和停止图像等提供了唯一的方法.这种方法的关键特征是它需要大量用户的输入和人的干预,所以这变得相对不动态.不随需而变.最好的例子是:RightScale, GigaSpaces, ElasticGrid. 重面