SQLite开发模块

DBHelper(MySQL数据库)

 

1、测试数据库

1.1 数据库数据

  

1.2 数据库结构

  

 

1.3 数据库脚本

DROP TABLE IFEXISTS `school`.`student`;

 

CREATE TABLE`school`.`student` (

`id` int(11) NOT NULL default '0',

`name` varchar(20) default NULL,

`sex` varchar(10) default NULL,

`age` int(10) default NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8;

 

INSERT INTO`student` VALUES ('201201', '张三', '男', '21');

INSERT INTO`student` VALUES ('201202', '李四', '男', '22');

INSERT INTO`student` VALUES ('201203', '王五', '女', '20');

INSERT INTO`student` VALUES ('201204', '赵六', '男', '21');

INSERT INTO`student` VALUES ('201205', '小红', '女', '19');

INSERT INTO`student` VALUES ('201206', '小明', '男', '22');

 

 

2、DBHelper用法

2.1 增加【Add】

   【示例代码 】

 

package com.hebut.util;

 

public class DBHelperApp{

 

    /**

    * 增加【 Add 】

    */

    public static void main(String[]args) {

        // 第一种情况

       String sql1="Insert Into student Values ('201208', ' 张三 ', ' 男 ','21')";

       System.out .println(DBHelper.executeNonQuery (sql1));

       

        // 第二种情况

       String sql2="Insert Into student Values (?,?,?,?)";

       Object[] obj = new Object[]{"201209"," 张三 ", " 男 ", "21"};

       System.out .println(DBHelper.executeNonQuery (sql2,obj));

   }

}

 

   【运行结果 】

1)控制台

 

1

1

 

2)数据库

  

2.2 删除【Del】

   【示例代码 】

 

package com.hebut.util;

 

public class DBHelperApp{

 

    /**

    * 删除【 Del 】

    */

    public static void main(String[]args) {

        // 第一种情况

       String sql1="Delete From student Where id='201202'";

       System.out .println(DBHelper.executeNonQuery (sql1));

       

        // 第二种情况

       String sql2="Delete From student Where id=? And name=?";

       Object[] obj = new Object[]{"201208"," 张三 "};

       System.out .println(DBHelper.executeNonQuery (sql2,obj));

   }

 

}

 

   【运行结果 】

   1)控制台

 1

1

 

   2)数据库

  

   从图中可以看出id为"201202 "和"201208 "已经删除。

2.3 修改【Update】

   【示例代码 】

 

package com.hebut.util;

 

public class DBHelperApp{

 

    /**

    * 修改【 Update 】

    */

    public static void main(String[]args) {

        // 第一种情况

       String sql1="Update student Set age='27' Where id='201207'";

       System.out .println(DBHelper.executeNonQuery (sql1));

       

        // 第二种情况

       String sql2="Update student Set name=? Where id=?";

       Object[] obj = new Object[]{" 张二 ","201201"};

       System.out .println(DBHelper.executeNonQuery (sql2,obj));

   }

}

 

   【运行结果 】

   1)控制台

1

1

 

   2)数据库

  

  备注 :后面的操作都以上面数据为基准。

2.4 查询【Query】

   【示例代码 】

 

package com.hebut.util;

 

import java.sql.ResultSet;

import java.sql.SQLException;

 

public class DBHelperApp{

 

    /**

    * 查询【 Query 】

    * @throws SQLException

    */

    public static void main(String[]args) throws SQLException {

        // 第一种情况

       String sql1="Select * From student";

        // 第一步:查询

       ResultSet rs1 = DBHelper.executeQuery (sql1);

        // 第二步:输出

        while (rs1.next()){

           System.out .println(" 姓名: "+rs1.getString(2));

       }

        // 第三步:关闭

       DBHelper.free (rs1);

       

        // 第二种情况

       String sql2="Select * From student Where name=?";

       Object[] obj = new Object[]{" 张三 "};

        // 第一步:查询

       ResultSet rs2 = DBHelper.executeQuery (sql2,obj);

        // 第二步:输出

        while (rs2.next()){

           System.out .println(" 学号: "+rs2.getString(1));

       }

        // 第三步:关闭

       DBHelper.free (rs2);

   }

}

 

   【运行结果 】

 

姓名:张二

姓名:王五

姓名:赵六

姓名:小红

姓名:小明

姓名:张三

姓名:张三

学号: 201207

学号: 201209

 

2.5 获取查询行数

   【示例代码 】

 

package com.hebut.util;

 

public class DBHelperApp{

 

    /**

    * 获取查询行数

    */

    public static void main(String[]args) {

        // 第一种情况

       String sql1="Select * From student";

       System.out .println(DBHelper.getCount (sql1));

       

        // 第二种情况

       String sql2="Select * From student Where name=?";

       Object[] obj = new Object[]{" 张三 "};

       System.out .println(DBHelper.getCount (sql2,obj));

   }

}

 

   【运行结果 】

 

7

2

 

2.6 判断记录存在

   【示例代码 】

 

package com.hebut.util;

 

public class DBHelperApp{

 

    /**

    * 判断记录存在

    */

    public static void main(String[]args) {

        // 第一种情况

       String sql1="Select * From student";

       System.out .println(DBHelper.isExist (sql1));

       

        // 第二种情况

       String sql2="Select * From student Where name=?";

       Object[] obj = new Object[]{" 张五 "};

       System.out .println(DBHelper.isExist (sql2,obj));

   }

}

 

   【运行结果 】

 

true

false

 

3、DBHelper代码

 

package com.hebut.util;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet ;

import java.sql.SQLException;

import java.sql.Statement;

 

public final class DBHelper{

 

    // 此方法为获取数据库连接

    public static ConnectiongetConnection() {

       Connection conn = null ;

 

        try {

           String driver = "com.mysql.jdbc.Driver"; // 数据库驱动

           String url = "jdbc:MySQL://127.0.0.1:3306/school";// 数据库

           String user = "root"; // 用户名

           String password = "hadoop"; // 密码

           Class.forName (driver); // 加载数据库驱动

            if (null ==conn) {

               conn = DriverManager.getConnection (url, user, password);

           }

       } catch (ClassNotFoundException e) {

           System.out .println("Sorry,can't find the Driver!");

           e.printStackTrace();

       } catch (SQLException e) {

           e.printStackTrace();

       } catch (Exception e) {

           e.printStackTrace();

       }

        return conn;

   }

 

    /**

    * 增删改【 Add 、 Del 、 Update 】

    *

    * @param sql

    * @return int

    */

    public static int executeNonQuery(Stringsql) {

        int result= 0;

       Connection conn = null ;

       Statement stmt = null ;

 

        try {

           conn = getConnection ();

           stmt = conn.createStatement();

           result = stmt.executeUpdate(sql);

       } catch (SQLException err) {

           err.printStackTrace();

            free (null ,stmt, conn);

       } finally {

            free (null ,stmt, conn);

       }

 

        return result;

   }

 

    /**

    * 增删改【 Add 、 Delete 、 Update 】

    *

    * @param sql

    * @param obj

    * @return int

    */

    public static int executeNonQuery(Stringsql, Object... obj) {

        int result= 0;

       Connection conn = null ;

       PreparedStatement pstmt = null ;

 

        try {

           conn = getConnection ();

           pstmt = conn.prepareStatement(sql);

 

            for (int i= 0; i < obj.length; i++) {

               pstmt.setObject(i + 1, obj[i]);

           }

 

           result = pstmt.executeUpdate();

       } catch (SQLException err) {

           err.printStackTrace();

            free (null ,pstmt, conn);

       } finally {

            free (null ,pstmt, conn);

       }

        return result;

   }

 

    /**

    * 查【 Query 】

    *

    * @param sql

    * @return ResultSet

    */

    public static ResultSet executeQuery(Stringsql) {

       Connection conn = null ;

       Statement stmt = null ;

        ResultSet rs= null ;

 

        try {

           conn = getConnection ();

           stmt = conn.createStatement();

           rs = stmt.executeQuery(sql);

       } catch (SQLException err) {

           err.printStackTrace();

            free (rs,stmt, conn);

       }

 

        return rs;

   }

 

    /**

    * 查【 Query 】

    *

    * @param sql

    * @param obj

    * @return ResultSet

    */

    public static ResultSet executeQuery(Stringsql, Object... obj) {

       Connection conn = null ;

       PreparedStatement pstmt = null ;

        ResultSet rs= null ;

 

        try {

           conn = getConnection ();

           pstmt = conn.prepareStatement(sql);

           

            for (int i= 0; i < obj.length; i++) {

               pstmt.setObject(i + 1, obj[i]);

           }

           

           rs = pstmt.executeQuery();

       } catch (SQLException err) {

           err.printStackTrace();

            free (rs,pstmt, conn);

       }

 

        return rs;

   }

 

    /**

    * 判断记录是否存在

    *

    * @param sql

    * @return Boolean

    */

    public static BooleanisExist(String sql) {

        ResultSet rs= null ;

 

        try {

           rs = executeQuery (sql);

           rs.last();

            int count= rs.getRow();

            if (count> 0) {

                return true ;

           } else {

                return false ;

           }

       } catch (SQLException err) {

           err.printStackTrace();

            free (rs);

            return false ;

       } finally {

            free (rs);

       }

   }

 

    /**

    * 判断记录是否存在

    *

    * @param sql

    * @return Boolean

    */

    public static BooleanisExist(String sql, Object... obj) {

        ResultSet rs= null ;

 

        try {

           rs = executeQuery (sql, obj);

           rs.last();

            int count= rs.getRow();

            if (count> 0) {

                return true ;

           } else {

                return false ;

           }

       } catch (SQLException err) {

           err.printStackTrace();

            free (rs);

            return false ;

       } finally {

            free (rs);

       }

   }

 

    /**

    * 获取查询记录的总行数

    *

    * @param sql

    * @return int

    */

    public static int getCount(Stringsql) {

        int result= 0;

        ResultSet rs= null ;

 

        try {

           rs = executeQuery (sql);

           rs.last();

           result = rs.getRow();

       } catch (SQLException err) {

            free (rs);

           err.printStackTrace();

       } finally {

            free (rs);

       }

 

        return result;

   }

 

    /**

    * 获取查询记录的总行数

    *

    * @param sql

    * @param obj

    * @return int

    */

    public static int getCount(Stringsql, Object... obj) {

        int result= 0;

        ResultSet rs= null ;

 

        try {

           rs = executeQuery (sql, obj);

           rs.last();

           result = rs.getRow();

       } catch (SQLException err) {

           err.printStackTrace();

       } finally {

            free (rs);

       }

 

        return result;

   }

 

    /**

    * 释放【 ResultSet 】资源

    *

    * @param rs

    */

    public static void free(ResultSet rs){

        try {

            if (rs!= null ) {

               rs.close();

           }

       } catch (SQLException err) {

           err.printStackTrace();

       }

   }

 

    /**

    * 释放【 Statement 】资源

    *

    * @param st

    */

    public static void free(Statementst) {

        try {

            if (st!= null ) {

               st.close();

           }

       } catch (SQLException err) {

           err.printStackTrace();

       }

   }

 

    /**

    * 释放【 Connection 】资源

    *

    * @param conn

    */

    public static void free(Connectionconn) {

        try {

            if (conn!= null ) {

               conn.close();

           }

       } catch (SQLException err) {

           err.printStackTrace();

       }

   }

 

    /**

    * 释放所有数据资源

    *

    * @param rs

    * @param st

    * @param conn

    */

    public static void free(ResultSet rs,Statement st, Connection conn) {

        free (rs);

        free (st);

        free (conn);

   }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值