注意导包:mysql-connector-java-5.1.39-bin.jar--------数据库的驱动jar包
代码案例:(jdbc的入门案例)
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.mysql.jdbc.Driver;
public class JdbcDemo {
public static void main(String[] args) throws Exception {
//驱动加载,方式1
Class.forName("com.mysql.jdbc.Driver");
/*方式2:DriverManager.registerDriver(new Driver());
一般不会使用方式2,因为这里加载了两次驱动(在源代码里),并且之后的编程我们一般是面向接口编程,一般不会使用实现类,
方便以后的扩展*/
//获取与数据库的链接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/webstudy", "root", "123");
/*
* static Connection getConnection(String url, String user, String password)
参数1:告诉我们连接什么类型的数据库及连接那个数据库
协议:数据库类型:子协议 参数
mysql: jdbc:mysql://localhost:3306/数据库名称
oracle: jdbc:oracle:thin@localhost:1521@实例
参数2:账户名 root
参数3:密码
*/
String sql ="select * from t_user";
//获取预编译对象,一般现在不使用Statement,为了防止sql注入
PreparedStatement stm = conn.prepareStatement(sql);
//执行sql语句,并获取结果
ResultSet res = stm.executeQuery();
while(res.next()){
//通过数据库字段名获取值
System.out.println("cid:"+res.getInt("uid")+" username:"+res.getString("username"));
//通过数字索引获取值,从1开始
System.out.println("cid:"+res.getInt(1)+" username:"+res.getString(2));
}
}
}
Api解释:
Driver:java.sql 接口 驱动Connection:连接 接口
获取语句执行者:
Statement createStatement() :获取普通的语句执行者 会出现sql注入问题
(掌握)PreparedStatement prepareStatement(String sql) :获取预编译语句执行者
CallableStatement prepareCall(String sql):获取调用存储过程的语句执行者
事务相关的方法:
setAutoCommit(false) :手动开启事务
commit():提交事务
rollback():事务回滚