通过java————实现对MySQL数据库的基本操作

1 篇文章 0 订阅

        在数据库的使用中最为主要的就是对数据库的增、删、查、改操作,MySQL数据库作为关系型数据库的一种,其数据库管理系统是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。 
       MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

 

       采用java语言对数据库操作是在做项目的过程中最为基本的技能,java在操作数据库的过程相对比较简单,整个流程大致分为以下几个部分:

1. 加载数据库驱动程序 
2. 建立数据库连接 
3. 数据库的基本操作 
4. 关闭数据库连接

 

数据库的查询操作

- 查询全部记录        : select * from <tablename> 
 - 查询指令的语法格式为 : select <*/filed> select from <tablename> where <field>=<key>;
 - 模糊查询(like为例) : select <*/field> form <tablename> where <field> like 'value%';

 数据库的插入操作

- 插入全部字段:insert into <tablename> values (value1,value2,value3);#表格中只有三个字段
 - 插入部分字段:insert into <tablename> (field1,field2,field3..) values (value1,value2,value3..);

数据库的删除操作

- 删除某一条或者某一类记录:delete from <tablename> where <condition>

 

 数据库的更新操作

- 设置某一条或多条特定字段的值:update <tablename> set <field>=<value> where <condition>;

        此外有时我们可能在起初创建表格的时候由于没有考虑的那么周全,我们在使用中发现需要新添加某一个或者多个字段,那么我们可以使用alert命令来在特定位置添加上我们需要添加的字段。

 - 在指定的列后添加特定字段:alter table <tablename> add column <colname> <coltype>;

 

java自定义数据库类的使用

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 根据所给出的用户名和密码,连接本地数据库
 * 数据库名称  : study
 * 数据表名称  : emp
 * 端口号     : 3306
 * 用户名     : root
 * 密码       : root
 */
public class MySQLDataBase {
    //声明connection对象,存储连接数据库的引用
    private Connection con = null;;
    //存储用户名和密码信息
    private String username = null;
    private String password = null;

    public String getUsername() {
        return username;
    }
    public String getPassword() {
        return password;
    }
    public Connection getCon() {
        return con;
    }
    /**
     * 创建数据库连接
     * @param username
     * @param password
     * @return
     */
    public Connection createConnector(String username,String password)
    {
        Connection conn = null;
        //数据库连接驱动名:针对不同的数据库,驱动名称不同,但是同一种类型的数据库改字符串相同
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库study,useSSL用来指明是否需要使用SSL协议,如果不指明将会报错
        String url = "jdbc:mysql://localhost:3306/study?useSSL=true";
        try
        {
            //加载驱动程序
            Class.forName(driver);
            //连接数据库
            conn = DriverManager.getConnection(url, username, password);
            //检查数据库连接是否成功
            if(!conn.isClosed())
            {
                System.out.println("Successed connecting to the Database!");
                //存储当前连接的用户的用户名和密码
                this.username = username;
                this.password = password;
                this.con = conn;
            }

        }catch (ClassNotFoundException e) {
            System.out.println("Sorry, can't find the Driver!");
        }catch(SQLException e){
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }
        return conn;
    }
    /**
     * 断开数据库连接
     * @param conn
     * @return
     */
    public boolean close(Connection conn)
    {
        try {
            if(!conn.isClosed())
            {
                conn.close();
                return true;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 执行数据库操作语句
     * @param con
     * @param query
     */
    public void query(Connection conn,String query)
    {
        //创建Statement对象,用来执行SQL语句
        Statement statement;
        try {
            statement = conn.createStatement();
            //需要执行的数据库操作语句
            String sql = query;
            //执行数据库操作语句并返回结果
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-------------------");
            System.out.println("---执行查询结果如下所示---");
            System.out.println("-------------------");
            System.out.println("姓名"+"\t"+"年龄"+"\t"+"工资");

            String name = null;
            int age,sal;
            //打印查询结果
            while(rs.next())
            {
                name = rs.getString("ename");
                age = rs.getInt("age");
                sal = rs.getInt("sal");
                System.out.println(name + "\t" + age + "\t" + sal);
            }
            rs.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    /**
     * 增加一条数据到指定数据库的指定表中
     * @param conn
     * @param command
     */
    public boolean insert(Connection conn, String command)
    {
        Statement statement;
        try {
            statement = conn.createStatement();
            String sql = command;
            /**
             * Statement接口中的excuteUpdate()方法执行给定的
             * SQL语句,该语句可以是INSERT,UPDATE,DELETE语句
             */
            statement.executeUpdate(sql);
            return true;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public boolean delete(Connection conn, String command)
    {
        Statement statement;
        try {
            statement = conn.createStatement();
            String sql = command;
            statement.executeUpdate(sql);
            return true;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }
    /**
     * 更新数据库操作
     * @param conn
     * @param command
     * @return
     */
    public boolean updates(Connection conn, String command)
    {
        Statement statement;
        try {
            statement = con.createStatement();
            String sql = command;
            statement.executeUpdate(sql);
            return true;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

}

 

java自定义数据库类的使用

import java.sql.Connection;

public class app {

    /**
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("Starting to connecting database ...");
        long startTime = System.currentTimeMillis();
        MySQLDataBase database = new MySQLDataBase();
        Connection con = database.createConnector("root", "root");
        //查找
        database.query(con, "select * from emp");
        //插入
        database.insert(con, "insert into emp(ename,age,brith,hiredate,sal,deptno) values('Lina',19,'1998-01-01','2015-10-10',5000,3)");
        database.query(con, "select * from emp");
        //修改
        database.updates(con, "update emp set sal=8000 where ename='Lina'");
        database.query(con, "select * from emp");
        //删除
        database.delete(con, "delete from emp where ename='Lina'");
        database.query(con, "select * from emp");

        if(database.close(con)){
            System.out.println("Data Base connection has been closed!");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("Time consume : "+(endTime-startTime) + " ms");

    }

 

运行结果:

Starting to connecting database ...
Successed connecting to the Database!
-------------------
---执行查询结果如下所示---
-------------------
姓名  年龄  工资
Marry   20  10000
Tom 21  6000
Jhon    31  0
Anna    23  8000
Lucy    18  5000
-------------------
---执行查询结果如下所示---
-------------------
姓名  年龄  工资
Marry   20  10000
Tom 21  6000
Jhon    31  0
Anna    23  8000
Lucy    18  5000
Lina    19  5000
-------------------
---执行查询结果如下所示---
-------------------
姓名  年龄  工资
Marry   20  10000
Tom 21  6000
Jhon    31  0
Anna    23  8000
Lucy    18  5000
Lina    19  8000
-------------------
---执行查询结果如下所示---
-------------------
姓名  年龄  工资
Marry   20  10000
Tom 21  6000
Jhon    31  0
Anna    23  8000
Lucy    18  5000
Data Base connection has been closed!
Time consume : 441 ms

 转载于其他博主

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值