JDBC的基本使用

JDBC

  • java database connectivity的缩写
  • SUN公司提供的一套操作数据库的标准规范
JDBC驱动
  • 实现了JDBC规范的类,由数据库厂商提供
JDBC规范类
  • DriverManager:用于注册驱动
  • Connection: 表示与数据库创建的连接,所有与数据库交互都是基于连接对象的
  • Statement: 操作数据库sql语句,并返回相应结果
  • ResultSet: 结果集或一张虚拟表
    – 提供一个游标,默认游标指向结果集第一行之前。
    – 调用一次next(),游标向下移动一行
    – 提供一些get方法

使用方法

获取数据库连接
public Connection getConnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver"); //加载MySQL数据库驱动
        String url = "jdbc:mysql://localhost:3306/数据库名"; //定义与连接数据库的url
        String user = "root";
        //定义连接数据库的用户名
        String passWord = "123456"; //定义连接数据库的密码
        conn = DriverManager.getConnection(url, user, passWord);//连接连接
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
    return conn;
}
获取数据表中所有信息
public List<User> query() {
    List<User> list = new ArrayList<User>(); // 定义用于保存返回值的List集合
    Connection conn = getConnection(); // 获取数据库连接
    try {
        Statement staement = conn.createStatement();
        String sql = "select * from user";
        ResultSet set = staement.executeQuery(sql); // 执行查询语句返回查询结果集
        while (set.next()) { // 循环遍历查询结果集
        User user = new User(); // 定义与数据库对应的JavaBean对象
        // 设置对象属性值
        user.setUsername(set.getString("username"));
        user.setPassword(set.getString("password"));
        list.add(user); // 将JavaBean添加到集合中
        }
        set.close();
        conn.close();
        staement.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return list;
}
使用预编译对象(防止SQL注入)
  • preparedStatement:预编译对象,是Statement对象的子类
  • 性能高
  • 过滤用户输入的关键字,防止SQL注入
Connection conn = getConnection(); // 获取数据库连接
try {
    // 准备sql语句
    String sql = "insert into user(name,username,password) values(?,?,?)";
    PreparedStatement ps = conn.prepareStatement(sql);
    // 设置?对应参数
    ps.setString(1, user.getName());
    ps.setString(2, user.getUsername());
    ps.setString(3, user.getPassword());
    // 执行sql语句
    ps.execute();
} catch (SQLException e) {
    e.printStackTrace();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值