通过JDBC修改数据
##通过JDBC修改数据
源代码:
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void delete() {
String sql = "delete from user_info";//执⾏SQL语句,仅限数据的insert, delete, update,返回受影响的⾏数
if(new DBlink().update(sql)) {
System.out.println("OK");
return;
}
System.out.println("NO");
}
public static void insert() {
String sql = "insert into user_info (id,name,mobile,address) values ('ca0d7730-e0ba-40d6-9216-a054fc053b10','Jim','132********','河南省郑州市')";//执⾏SQL语  if(new DBlink().update(sql)) {
System.out.println("OK");
return;
}
System.out.println("NO");
}
public static void update() {
String sql = "update user_info set name='Jimmy' where mobile='132********'";//执⾏SQL语句,仅限数据的insert, delete, update,返回受影响的⾏数
if(new DBlink().update(sql)) {
System.out.println("OK");
return;
}
System.out.println("NO");
}
public static void select() {
//加载驱动创建连接创建语句执⾏语句处理结果释放资源
Connection connection = null;
Statement statement = null;
ResultSet resultset = null;
try {
Class.forName("sql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/test";
connection = Connection(url, "root", "root");
statement = ateStatement();
resultset = uteQuery("select id,name,mobile,address from user_info");//执⾏sql查询语句,将查询结果保存到对象resultset中
()) {//next⽅法移动“指针”⾄⼀⾏数据,如果有数据返回true,没有则返回false;
String id = String("id");//参数是:列的String名
String name = String("name");
String mobile = String("mobile");
String address = String("address");
System.out.println(id+","+name+","+mobile+","+address);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
}finally {
try {
if(resultset!=null) {
resultset.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(statement!=null) {
statement.close();
}
} catch (SQLException e) {mysql下载jar包
e.printStackTrace();
}
try {
if(connection!=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//  System.out.println(UUID.randomUUID().toString()); //  delete();
select();
}
}
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DBlink {
public boolean update(String sql) {
Connection connection = null;//升级,不再为try语句块的局部变量
Statement statement = null;
try {
Class.forName("sql.jdbc.Driver");//加载驱动
String url = "jdbc:mysql://127.0.0.1:3306/test";//指定哪台计算机的哪个数据库
connection = Connection(url, "root", "root");//获取数据库连接对象,⼀个对象表⽰⼀次数据库连接
statement = ateStatement();//获取Statement对象
int affect = uteUpdate(sql);//执⾏SQL语句,仅限数据的insert, delete, update,返回受影响的⾏数
return affect>0;
} catch (Exception e) {
e.printStackTrace();
}finally {//即便try语句块有异常,finally语句块也会执⾏
try {//应对检查时异常
if(statement!=null) {//不为null才释放,否则返回空指针异常
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(connection!=null) {//不为null才释放,否则返回空指针异常
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
}
在添加完第三⽅jar包后,就可以编写代码修改数据库的数据了。以下,将解析调⽤的主要步骤和相关操作。
⾸先,要加载JDBC,完成驱动:打开jar包的库,在包sql.jdbc⽬录下到Driver.class,复制其“Qualified Name”,并作为参数通过⽅法完成驱动JDBC:
Class.forName("sql.jdbc.Driver");
会有检查时异常,记得try-catch处理掉。
第⼆步,创建连接:只有和数据库相连,我们才能通过JDBC完成数据的增删改。
String url = "jdbc:mysql://127.0.0.1:3306/test";
Connection connection = Connection(url, "root", "root");
以上代码,通过url指定了要操作127.0.0.1的test数据库,后⾯两个分别输⼊⽤户名和密码。
第三步,创建语句,此对象为Statement类的,之后通过创建的语句对象,调⽤其⽅法来完成操作:
Statement statement = ateStatement();
第四步,执⾏语句,通过编写SQL语⾔,并将其作为输⼊参数,完成数据库的增删改和查:
int affect = uteUpdate(sql);//字符串sql中为执⾏SQL语句,仅限数据的insert, delete, update
ResultSet resultset = uteQuery("select id,name,mobile,address from user_info");//执⾏sql查询语句,将查询结果保存到对象resultset中
上⾯第⼀句,⽤于增删改,返回受到此语句影响的⾏数affect;第⼆句,⽤于查,将查到的结果保存到⼀个ResultSet类的对象中。
第五步,处理结果,主要指查询操作,为了调出获取到的⽅法,则需要以下操作:
()) {//next⽅法移动“指针”⾄⼀⾏数据,如果有数据返回true,没有则返回false;
String id = String("id");//参数是:表user_info中列的String名
String name = String("name");
String mobile = String("mobile");
String address = String("address");
System.out.println(id+","+name+","+mobile+","+address);
}
最后⼀步,释放资源。以查为例,为了完成以上操作,先后创建了三个不同的类对象connection, statement, resultset。它们占⽤了空间,语句执⾏了以后,需要调⽤close⽅法将其释放掉,其中有⼀些注意事项:不能放在try语句块中,否则⼀旦前⾯出现执⾏时异常,则停在异常语句,close⽅法⽆法执⾏;因此,连接、语句和结果集的对象要在语句块之外创建,不在是try语句块中的“局部变量”了;要在try-catch后补充finally语句块,因为其⽆论如何都会执⾏,所以将释放命令写在finally⾥⾯;最后还要防范空指针异常:由于try语句块中,可能存在的执⾏时异常,它可能会导致的对象connection, statement, resultset没有完成赋值,进⽽在finally语句块中出现空指针异常,所以要提前加⼀个if判决。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。