jdbc技术,jdbc增、删、改、查

1、jdbc是一个java链接数据库技术,java可以通过jdbc对数据库完成增、删、改、查操作, 核心的接口主要封装在sql包下面, java只提供了固定的接口,具体的实现类需要靠各大数据库厂商自行实现,所以我们要根据自己使用的数据库不同去使用不同的实现类,也就是外部的jar包,

jdbc:helloword

String url = "jdbc:mysql://192.168.1.128:3306/test";
        String userName = "root";
        String pwd = "root";

        try {
            //加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //得到链接
            Connection conn = DriverManager.getConnection(url, userName, pwd);

            //预处理SQL对象
            PreparedStatement pre = conn.prepareStatement
                    ("insert into user values(3,'lisi','234567',1,now())");

            //发送并执行sql
            pre.executeUpdate();
            //往数据插入3条数据,   吧第二条密码修改为1111   吧第三条删除

        } catch (Exception e) {
            e.printStackTrace();
        }

jdbc操作分4部,加载驱动,获取链接,创建预处理sql对象,发送并执行sql,由于我们的数据库操作都是以会话的形式实现,所以使用万链接以后需要进行关闭,为方便以后操作,我们可以封装一个工具类:DBUtils

package com.xingxue.utils;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtils {
    public static String url="jdbc:mysql://localhost:3306/test";
    public static String driver="com.mysql.jdbc.Driver";
    public static String user="root";
    public static String pwd="root";


    /**
     * 获取数据库链接
     * @return
     */
    public static Connection getConn() {
        Connection conn = null;
        try {
            //加载驱动
            Class.forName(driver);
            //获取链接
            conn = DriverManager.getConnection(url, user, pwd);
        } catch (Exception e) {
            // TODO: handle exception
        }

        return conn;
    }


    /**
     * 关闭数据库资源
     * @param conn
     * @param pre
     * @param rs
     */
    public static void closeDB(Connection conn, PreparedStatement pre, ResultSet rs) {
        try {
            if(rs != null) {
                rs.close();
            }

            if(pre != null) {
                pre.close();
            }

            if(conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

利用jdbc查询实现登陆

/**
     * 用户登陆
     * @param loginUser
     * @return
     */
    public boolean userLogin(User loginUser) {
        boolean isLogin = false;
        Connection conn = null;
        PreparedStatement pre = null; //这是一个预处理sql对象, 检查sql语句是否有语法错误,编译sql
        ResultSet rs = null; //查询的数据就装在rs里面, 就是高级HashMap
//      String sql = "select * from user where account='"+loginUser.getAccount()+"' and pwd = '"+loginUser.getPwd()+"'";
        String sql2 = "select * from user where account=? and pwd =?";  //? 占位符

        try {
            conn = DBUtils.getConn();
            pre = conn.prepareStatement(sql2);
            //设置参数
            pre.setString(1, loginUser.getAccount());
            pre.setString(2, loginUser.getPwd());

            rs = pre.executeQuery();
            isLogin = rs.next();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeDB(conn, pre, rs);
        }

        return isLogin;
    }

利用jdbc实现查询列表数据:

/**
     * 查询所有商品信息
     * @return
     */
    public ArrayList<Goods> getAllGoods() {
        ArrayList<Goods> list = new ArrayList<Goods>();
        Connection conn = null;
        PreparedStatement pre = null;
        ResultSet rs = null;
        String sql = "select * from goods";

        try {
            conn = DBUtils.getConn();
            pre = conn.prepareStatement(sql);

            rs = pre.executeQuery();
            Goods g = null;

            while(rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("NAME");
                String statu = rs.getString("statu");
                Date createDate  =rs.getDate("createDate");
                double price = rs.getDouble("price");
                int num = rs.getInt("num");
                g = new Goods(id, name, price, statu, createDate, num);

                list.add(g);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeDB(conn, pre, rs);
        }
        return list;
    }

利用jdbc完成数据删除:

/**
     * 删除数据
     * @param id
     * @return
     */
    public boolean deleteGoodsById(int id) {
        boolean isDelete = false;
        Connection conn = null;
        PreparedStatement pre = null;
        ResultSet rs = null;
        String sql = "delete from goods where id = ?";
        int result = 0;
        try {
            conn = DBUtils.getConn();
            pre = conn.prepareStatement(sql);
            pre.setInt(1, id);

            result = pre.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeDB(conn, pre, rs);
        }

        return result > 0;
    }

此处注意: 增、删、改数据使用pre.executeUpdate();方法

查询数据使用:pre.executeQuery();方法

猜你喜欢

转载自blog.csdn.net/sky274548769/article/details/80899238