public class JdbcDemo1 {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3","root","root");
String sql = "update emp set ename = 'abc' where id = 1001";
Statement stmt = conn.createStatement();
int count = stmt.executeUpdate(sql);
System.out.println(count);
stmt.close();
conn.close();
}
}
首先,jdbc是java数据库连接,定义的是一套接口,实现类由各个厂商实现的,即jar包,也叫数据库驱动。
注意名称,步骤如上,先注册驱动,通过获取数据库连接对象,传入密码,连接后,获取具体执行sql的Statement对象,然后执行sql语句即可。记得释放资源。
各部分详细1:
Class.forName(“com.mysql.jdbc.Driver”);
把这个jar包下的类加载进内存,目的是为了告诉程序用了哪个数据库驱动jar,这个Driver内有静态代码块,调用了java.sql.DriverManager把自己的Driver注册进了驱动。
各部分详解2:
“ jdbc:mysql://localhost:3306/db3",“root”,“root”
假如是本地的数据库,端口也是默认的,可以省略为///,
jdbc:mysql是协议和子协议,固定的写法。
如果数据库出现乱码,可以指定参数: ?characterEncoding=utf8,表示让数据库以 UTF-8 编码来处理数据。
如:jdbc:mysql://localhost:3306/数据库?characterEncoding=utf8
各部分详解3:
connection 下有statement类可以折行sql语句,而具体的事物开启等操作,不由sql语句执行,而是由connection封装好的方法setAutoCommit 就是取消自动提交,这一点容易忽略。
Statement的执行方法(DML)返回一般为影响的行数等。
DQL语句的相关方法executeQuery可以从API中查找,返回值是一个结果集合对象ResultSet。