2019年7月11日中软国际(宁波)实习第二天

Java操作数据库实现"增删改查"(JDBC)

本文主要讲解JDBC操作数据库-实现对MySql数据库的"增删改查"的具体操作步骤

如果需要访问数据库,就必须加载数据库驱动,这个驱动只是在程序第一次运行的时候加载一次,百度连接Mysql数据库的连接器进行下载。
1.新建一个项目,创建lib文件夹
在这里插入图片描述
2.把刚才下载的驱动放到这个文件里
在这里插入图片描述
3.直接右键lib点add to liblriary

下面就可以编写代码了;

首先创建一个DBHerpel类:代码如下:


import java.sql.*; //导包

/** 
 * ClassName: DBHerpel
 * @Description: TODO 数据库辅助类
 * @author 强国
 */
public class DBHerpel {

    private static Connection Conn; // 数据库连接对象

    // 数据库连接地址
    private static String URL = "jdbc:mysql://localhost:3306/myschool?characterEncoding=utf8&useSSL=true";

    // 数据库的用户名
    private static String UserName = "root";
    // 数据库的密码
    private static String Password = "1234";

    /**
     * * @Description: TODO 获取访问数据库的Connection对象
     * @param @return
     * @return Connection 连接数据的对象
     * @author 情绪i
     */
    public static Connection getConnection() {

        try {

            Class.forName("com.mysql.jdbc.Driver"); // 加载驱动

            System.out.println("加载驱动成功!!!");
        } catch (ClassNotFoundException e) {
            // TODO: handle exception
            e.printStackTrace();
        }

        try {

            //通过DriverManager类的getConenction方法指定三个参数,连接数据库
            Conn = DriverManager.getConnection(URL, UserName, Password);
            System.out.println("连接数据库成功!!!");

            //返回连接对象
            return Conn;

        } catch (SQLException e) {
            // TODO: handle exception
            e.printStackTrace();
            return null;
        }
    }

}

这里连接的是我MySchool的数据库 数据库的表结构如下:

数据表里有user pwd 两个字段;下面通过一个案例实现查询:

"查"

代码如下:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.gr.DBHerpel.DBHerpel;
public class VisitMySql {

    // 连接对象
    private Connection conn;
    // 传递sql语句
    private Statement stt;
    // 结果集
    private ResultSet set;

    // 查询
    public void Select() {
        try {
            // 获取连接
            conn = DBHerpel.getConnection();
            if (conn == null)
                return;
            // 定义sql语句
            String Sql = "select * from login";
            // 执行sql语句
            stt = conn.createStatement();
            // 返回结果集
            set = stt.executeQuery(Sql);
            // 获取数据
            while (set.next()) {

                System.out.println("用户名:" + set.getString(1) + "\t密码:"
                        + set.getString(2));

            }

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

            // 释放资源
            try {
                set.close();
                conn.close();
            } catch (Exception e2) {
                // TODO: handle exception
            }

        }
    }

}

然后新建一个包Test编写Test类代码如下:


import com.gr.visitServer.VisitMySql;

public class Test {
    public static void main(String[] args){
        
        //实例化对象
        VisitMySql vs = new VisitMySql();
       //调用查询方法
        vs.Select();
       
    }

}

上面的代码是查询数据库Login表里的用户的账号和密码,用Connection接口的createStatement()方法获得Statement对象传递Sql语句,用它的ExecuteQuery()方法获取单个ResultSet对象.

下面向数据库添加数据:

"增"

在VisitMySql类中添加Add方法:代码如下:

    public void Add(){
        
        try {
            //获取连接
            conn = DBHerpel.getConnection();
            if(conn==null)
            return;
            //获取用户输入的账号和密码
            Scanner input = new Scanner(System.in);
            System.out.print("请输入用户名:");
            int user = input.nextInt();
            System.out.print("请输入密码:");
            String pwd = input.next();
            //定义sql语句
            String sql = "insert into login values("+user+" , '"+pwd+"');";
            //获取Statement对象
            stt = conn.createStatement();
            //执行sql语句
            stt.executeUpdate(sql);
            
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            //释放资源
            try {
                
                conn.close();
                
            } catch (Exception e2) {}
            
        }
        
        
    }

同样也是获取Connection接口的createStatement()方法获取Statement的对象,用Statement对象的executeUpdate()方法来执行INSERT语句,最后在Test类调用Add()方法

下面使用PreparedStatement接口中的executeUpdate()方法来执行INSERT语句,

    public void Add2() {

        try {
            // 获取连接
            conn = DBHerpel.getConnection();
            if (conn == null)
                return;

            // 获取用户输入
            System.out.print("请输入用户名:");
            Scanner input = new Scanner(System.in);
            int user = input.nextInt();
            System.out.print("请输入密码:");
            String pwd = input.next();

            // 定义sql语句
            String AddSQL = "INSERT INTO login VALUES (?,?);";

            // 创建一个Statement对象
            PreparedStatement ps = conn.prepareStatement(AddSQL);
            
            //向sql语句的第一个问号添加数据
            ps.setInt(1, user);
            //向sql语句的第二个问号添加数据
            ps.setString(2,pwd);
            // 执行sql语句
            ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();

            } catch (Exception e2) {
                // TODO: handle exception
            }

        }
    }
复制代码
最后在Test类测试Add2()方法,,这里Sql语句中用两个问号代表要添加的用户名和密码,根据上面PreparedStatement接口的常用方法,setint()  setString()  方法来指定添加的数据.

**"删"**

删除数据也是很常用的技术,同样可以使用Statement接口中的executeUpdate()方法来实现  代码如下:

 

//使用Statement接口的executeUpdate()方法实现从数据库删除数据
    public void Delete(){
        try {
            
            //获取连接
            conn = DBHerpel.getConnection();
            if(conn==null)
            return;
            
            //提示用户输入要删除的用户
            System.out.print("请输入删除的用户:");
            Scanner input = new Scanner(System.in);
            int user = input.nextInt();
            
            //定义sql语句
            String deleteSql = "DELETE FROM login WHERE user="+user+";";
            //获取Statement对象
            stt = conn.createStatement();
            //执行sql语句
            stt.executeUpdate(deleteSql);
            
            
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            //释放资源
            try {
                conn.close();
                
            } catch (Exception e2) {}
            
        }
    }
    

**"改"**

 

对数据的修改也是日常代码中常见的技术.  可以使用Statement接口中executeUpdate()方法来实现,也可以用PreparedStatement接口的executeUpdate()方法来实现 具体代码如下:

```//使用PreparedStatement接口中的executeUpdate()方法实现修改数据
    public void Update(){
        
        try {
            //获取连接
            conn = DBHerpel.getConnection();
            if(conn==null)
                return;
            
            //用户输入要修改的账户
            System.out.print("请输入用户名:");
            Scanner input = new Scanner(System.in);
            int user = input.nextInt();
       //提示用户输入新的密码
            System.out.print("请输入新的密码:");
            String NewPwd = input.next();
            //定义Sql语句
            String UpdateSql = "UPDATE login SET pwd = '"+NewPwd+"' WHERE user = "+user+";";
            //创建Statement对象
            PreparedStatement ps = conn.prepareStatement(UpdateSql);
            //执行sql语句
            ps.executeUpdate();
        } catch (SQLException e) {
            
            e.printStackTrace();
        }finally{
            //释放资源
            try {
                conn.close();
            } catch (Exception e2) {}
            
        }
    }

以上是对Mysql数据库的"增删改查"功能的具体实现,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值