MySQL BaseDao定义通用增删改查语句,和调用。

一、创建配置文件

   创建公共参数

   例如:以myschool数据库为例,配置文件名为 Properties

    driver=com.mysql.jdbc.Driver                            驱动

    url=jdbc:mysql://localhost:3306/myschool       数据库连接字符

    loginname=root                                                    登陆名/账号

    loginpassword=bdqn                                           登陆密码

 

二、创建BaseDao类

1.创建公共参数

    private static String driver;                 驱动

    private static String url;                       数据库链接字符

    private static String loginname;          登录名/账号

    private static String loginpwd;            登陆密码

    static Connection conn=null;              链接数据库对象

    static PreparedStatement ps=null;     获取sql命令对象

    static ResultSet res = null;                   存储sql结果集对象

2.定义初始化读取数据的方法

  例如:演示代码

    public static void init() {
        1.创建配置文件对象
        Properties p=new Properties();
        2.创建输入流 并且将文件路径告诉他
        InputStream is=BaseDao.class.getClassLoader().getResourceAsStream("jdbc.Properties");
        try {
            3.加载文件
            p.load(is);
            4.读取参数并且给对你供应的参数赋值
            driver=p.getProperty("d");
            url=p.getProperty("u");
            name=p.getProperty("n");
            pwd=p.getProperty("p");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

3.使用静态代码块自动执行init方法

演示代码

    static {init();}

4.获取数据库

例如:演示代码
    public static Connection getConn() {
        1.判断链接是否为空
        if (conn==null) {
            2.加载驱动
            try {
                Class.forName(driver);
               3.建立连接
                conn=DriverManager.getConnection(url,name,pwd);
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
        }

           return conn;    4.返回链接结果

    }

5.释放资源的方法/俗称关闭链接(先打开的后关闭)
    public static void close(ResultSet res) {
        try {
            if (res!=null) {
                res.close();    关闭执行sql结果集
            }
            if (ps!=null) {
                ps.close();      关闭执行sql
            }
            if (conn!=null) {
                conn.close();   关闭数据库连接
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

6.定义增删改的通用方法
    public static int update(String sql,Object[] o) {
        1.定义返回值
        int num=-1;
        2.创建命令对象
        try {
            ps=BaseDao.getConn().prepareStatement(sql);
            3.替换占位符,遍历数组 按照顺序替换占位符(替换下标必须从1开始)
            for (int i = 1; i <= o.length; i++) {
                ps.setObject(i, o[i-1]);
            }
            4.执行sql语句
            num=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            close(null);   关闭连接
        }
        return num;    返回受影响行数
    }
    7.定义增查通用方法
        public static ResultSet query(String sql,Object[] o) {
            1.创建命令对象
            try {
                ps=BaseDao.getConn().prepareStatement(sql);
                2.替换占位符,遍历数组 按照顺序替换占位符(替换下标必须从1开始)
                for (int i = 1; i <= o.length; i++) {
                    ps.setObject(i, o[i-1]);
                }
                3.执行sql语句
                res=ps.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return res;     返回查询结果

三、main函数,调用BaseDao里的增删改、查 方法

示例代码:

               1.调用增删改  示例

                         创建sql
                         String sql="增删改SQL语句";     如果需要替换占位符   数据名=?   表名、增加数据直接用 ?(英文输入发下 "?")
                         创建数组 将数组放入数组
                         Object[] o= {增删改数据};
                         调用通用增删改方法返回结果
                        int a=BaseDao.update(sql, o);
                       判断结果
                       a   受影响行数,如果没有结果则   a=-1
                       if (a>0) {
                                System.out.println("成功");
                          }else {
                                System.out.println("失败");
                         }

                  2.调用查询通用方法  示例

                        创建存储查询结果对象
                        ResultSet res=null;

                         创建sql
                         String sql="查询SQL语句";            如果需要替换占位符   数据名=?   表名直接用 ?(英文输入发下 "?")
                         创建数组 将数据放入数组
                         Object[] o= {替换占位符数据};        如果不需要使用替换占位则不需要此行代码
                         调用通用查询方法返回结果
                         res=BaseDao.query(sql, o);

                         判断结果
                         res.next()==true        有查询数据
                         res.next()==false       无差寻数据
                         try {
                                if (res.next()==true) {
                                             System.out.println(输出需要的结果); 

                                            如果输出多行数据则需要使用while循环

                                             示例:

                                             while(res.next){

                                                            System.out.println(输出需要的结果); 

                                                     }
                                   }else {
                                             System.out.println("查询失败!");
                                  }
                               } catch (SQLException e) {
                                   e.printStackTrace();
                               }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值