JDBC连接数据库

准备jar
mysql-connector-java-5.1.0-bin.jar

基本步骤:

  • 加载驱动Class.forName("com.mysql.jdbc.Driver");
  • 使用DriverManager获取数据库connection连接
  • 创建Statement对象 用于执行SQL语句
  • 执行SQL语句
  • 释放资源
      Connection conn = null;
            Statement stat = null;
            try {
                //加载驱动  方言
                Class.forName("com.mysql.jdbc.Driver");
                //准备数据库连接路径
                String url = "jdbc:mysql://127.0.0.1:3306/xxshop";
                //用户名与密码
                String username = "root";
                String userpwd = "root";
                //根据路径,用户名,密码 使用DriverManager获取数据库connection连接
                 conn = DriverManager.getConnection(
                        url,username,userpwd);
                //准备要执行的SQL语句
                String sql= "select user_id,user_name from sf_user";
                //创建Statement对象  用于执行SQL语句
                stat = conn.createStatement();
                //执行SQL语句
                ResultSet rs =  stat.executeQuery(sql);
                //处理ResultSet结果集
                //rs.next()  返回boolean 值
                while(rs.next()){
                     Long user_id =  rs.getLong(1);
                     String user_name = rs.getString(2);
                     System.out.println("用户ID:"+user_id);
                    System.out.println("用户名:"+user_name);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //释放资源
                try {
                    stat.close();
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

  • 防止数据库乱码及日期出错
    放入url连接路径之后
    ?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull

  • Statement常用对象
    ResultSet executeQuery(sql)

    执行sql查询语句,并返回ResultSet对象

    int executeUpdate(sql)

    执行insert,update,delete语句,返回受影响行数

    boolean execute(sql)

    执行insert,update,delete语句,返回true或false false成功

  • PreparedStatement对象使用
    防止SQL注入,使用占位符“?”方式进行SQL拼接

  • 使用PreparedStatement对象进行用户登录

    使用PreparedStatement对象进行用户登录
    
    /**
    * 定义登录方法(传入用户输入的用户名与密码)
    */
    public User loginUser(String user_name,String user_pwd){
     Connection conn = null;
     PreparedStatement ps = null;
    try {
    //加载驱动  方言
    Class.forName("com.mysql.jdbc.Driver");
       //准备数据库连接路径
     String url = "jdbc:mysql://127.0.0.1:3306/xxshop?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull";
    //用户名与密码
    String username = "root";
    String userpwd = "root";
    //获取Connection对象
    conn = DriverManager.getConnection(
                        url,username,userpwd);
    //准备登录SQL语句  使用占位符?代表参数
    String sql ="select user_id,user_name from sf_user where user_name=? and user_password=?";
    //预编译SQL语句
    ps = conn.prepareStatement(sql);
    //ps.setXXXX(位置<从1开始>,值<参数>)
    ps.setString(1,user_name);
    ps.setString(2,user_pwd);
    //执行查询
    ResultSet rs = ps.executeQuery();
    //用于判断 等于null登录失败,否则成功
    User user = null;
       while(rs.next()){
     //进入循环,登录成功,创建user对象
       user = new User();
    //使用rs.getXXX("返回的列名") 放入user对象
    user.setUser_id(rs.getLong("user_id"));  
    user.setUser_name(rs.getString("user_name"));
       }
       return user;//返回用户登录对象
      } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //释放资源
                try {
                    ps.close();
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    return null;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值