SQL语句:DML、DQL、DCL、DDL。DML和DQL是用的最多的。DCL和DDL用的很少。
程序员一般是操作记录,创建一表很少。
package cn.itcast.jdbc;
import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//演示executeUpdate方法
public class JdbcDemo3 {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");//优点是加载一次 替换registerDriver()这个方法 这个不耦合,根本就没用mysql驱动的东西 不是意味着那就不用驱动了,只是不依赖jar包
String url = "jdbc:mysql:///day17";
//2.获取连接对象
Connection con = (Connection) DriverManager.getConnection(url, "root", "");
//3.通过连接对象获取操作sql语句的Statement
Statement st = con.createStatement();
//4.执行update语句
int row = st.executeUpdate("update user set password='135' where id=1");//执行update语句就没有什么ResultSet了
System.out.println(row);
/**
* 你可以判断它非0知道执行成没成功。不要拿返回值说我第几条改变了,你只判断返回值是0还是非0.它返回的是非0就说明update语句执行了没问题。如果它返回的是一个0,那就不一定了。所以不要拿返回值说事,而是要拿那个返回值判断非不非0来确定那个SQL语句执行成没成功。
*/
//而是要拿返回值是否非零来判断那个SQL语句是否执行成功
//6.释放资源
st.close();
con.close();
//直接把con关闭了,数据库和程序断开了。但是statement和resultset没有及时释放,它还在内存存着。close()是释放和回收资源。
//close()的顺序和进门出门是一样的,是进门的时候先进大门,出门的时候是最后才出大门
//=============
//Java可以操作数据库
}
}
你可以判断它非0知道执行成没成功。不要拿返回值说我第几条改变了,你只判断返回值是0还是非0.它返回的是非0就说明update语句执行了没问题。如果它返回的是一个0,那就不一定了。所以不要拿返回值说事,而是要拿那个返回值判断非不非0来确定那个SQL语句执行成没成功。
批处理跟windows系统上那个bat文件无关。咱们所说的批处理是指多条SQL语句一齐执行的问题。因为一齐执行可以提高性能。1000条SQL语句,如果按传统的方式,执行一条关一条,执行一条关一条,性能太低。相当于是把1000条SQL语句放到缓存里面。
execute()方法的返回值是boolean类型,这个方法不深究。