微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-jdbc编程实例讲解

       用笔者自己的话来讲,java的JDBC编程就是使用java语言实现对数据库的控制,将两个不同的事物之间建立起来联系。而如果想要进行JDBC编程,这里需要将一个jar包导入到建立的工程中去。

jar包链接:https://pan.baidu.com/s/1WfavGnOtx6GxB3XSWAk23w     提取码:91bp

     步骤一:建立一个java工程,然后在根目录下新建一个文件夹并且命名为lib。(这里的名字可以随意取)

步骤二:将下载好的jar包直接拖入这个文件夹(从桌面直接拖到ieda中的lib文件夹中)。然后一路OK。

完成之后lib文件夹中就有了这个jar包,但是此时并不能使用它,别着急,下一步就是导入这个包,让它为我们所用。

步骤三:如图所示,进入根目录下的Open Module Settings之中,按下图所示步骤完成添加

这时候jar包添加已经完成,可以进行编程了。由于需要对数据库进行操作,所以需要事先准备一个数据库,这是笔者的数据库,接下里的操作将围绕此数据库来展开。

此时表中的数据如下:接下来对此数据库进行操作。

代码部分:

实现的函数有以下几个,将其写为接口来实现。

1.目标函数

public interface JdbcDemo {
    //创建Memogroup
    public abstract Boolean createMemogrup(Memogroup memogroup);

    //通过ID查询Memogroup;
    public abstract Memogroup queryMemGroupByld(Integer id);

    //更新Memogroup(name)
    public abstract Boolean updateMemogroup(Memogroup memogroup);
    
}

数据库的表写为一个单独类Memogroup;提供get/set方法和toString()方法

2.数据库表的抽象类

package www.bitech.jdbc;

import javafx.util.converter.LocalDateTimeStringConverter;

import java.sql.Timestamp;
import java.time.LocalDateTime;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User:Light_Long
 * Date:2019-06-29
 * Time:14:58
 */
public class Memogroup {
    private Integer id;
    private String name;
    private LocalDateTime createtime;
    private  Timestamp modifytime;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public LocalDateTime getCreatetime() {
        return createtime;
    }

    public void setCreatetime(LocalDateTime createtime) {
        this.createtime = createtime;
    }

    public Timestamp getModifytime() {
        return modifytime;
    }

    public void setModifytime(Timestamp modifytime) {
        this.modifytime = modifytime;
    }

    @Override
    public String toString() {
        return "Memogroup{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", createtime=" + createtime +
                ", modifytime=" + modifytime +
                '}';
    }
}

3. 方法的具体实现

代码如下:

package www.bitech.jdbc;

import com.sun.org.apache.xpath.internal.operations.Bool;
import com.sun.xml.internal.ws.api.model.MEP;

import java.sql.*;
import java.time.LocalDateTime;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User:Light_Long
 * Date:2019-06-29
 * Time:15:07
 */
public class MyJdbcCase1 implements JdbcDemo {

    @Override
    public Boolean createMemogrup(Memogroup memogroup) {
        Connection connection = null;
        //预编译命令
        PreparedStatement statement = null;

        ResultSet resultSet = null;

        Integer number;
        try {
            //1.加载数据库的驱动JDBC驱动
            Class.forName("com.MysqL.jdbc.Driver");
            //2.创建连接
            String url = "jdbc:MysqL://127.0.0.1:3306/memo?user=root&password=root";
            connection = DriverManager.getConnection(url);

            //执行命令
            //准备sql语句

            String str1 = memogroup.getName();
            LocalDateTime str2 = memogroup.getCreatetime();

            String sql = "insert into memo_group(name,created_time) values(?,?);";

            //预编译命令的赋值
            statement = connection.prepareStatement(sql);

            //传入预编译命令的参数1
            statement.setString(1,str1);

            //将javazhong 中的timestamp转为localstamp;
            statement.setTimestamp(2,Timestamp.valueOf(str2));
            //执行sql语句
            number = statement.executeUpdate();


        } catch (ClassNotFoundException e) {
            e.printstacktrace();
        } catch (sqlException e) {
            e.printstacktrace();
        }
        return true;
    }

    @Override
    public Memogroup queryMemGroupByld(Integer id) {
        //连接
        Connection connection = null;
        //命令
        PreparedStatement preparedStatement = null;
        //结果
        ResultSet resultSet = null;
        //对象
        Memogroup memogroup = new Memogroup();

        try {
            //1.加载数据库的驱动JDBC驱动
            Class.forName("com.MysqL.jdbc.Driver");
            //2.创建连接
            String url = "jdbc:MysqL://127.0.0.1:3306/memo?user=root&password=root";
            connection = DriverManager.getConnection(url);

            //执行命令
            //准备sql语句
            String sql = "select * from memo_group where id = id;";

            //执行sql语句
            preparedStatement = connection.prepareStatement(sql);

            //保存结果
            resultSet = preparedStatement.executeQuery();

            //给所创建的对象赋值
            if (resultSet.next()) {
                int id1 = resultSet.getInt("id");
                memogroup.setName(resultSet.getString("name"));
                Timestamp createTime = resultSet.getTimestamp("created_time");
                memogroup.setCreatetime(createTime.toLocalDateTime());
                Timestamp modifyTime = resultSet.getTimestamp("modify_time");
                memogroup.setModifytime(modifyTime);
            }

        } catch (ClassNotFoundException e) {
            e.printstacktrace();
        } catch (sqlException e) {
            e.printstacktrace();
        }
        return memogroup;
    }

    @Override
    public Boolean updateMemogroup(Memogroup memogroup) {
        Connection connection = null;
        ResultSet resultSet = null;
        PreparedStatement preparedStatement = null;
        Integer pop = 0;

        try {
            Class.forName("com.MysqL.jdbc.Driver");

            String url = "jdbc:MysqL://127.0.0.1:3306/memo?user=root&password=root";
            connection = DriverManager.getConnection(url);
            Integer newid = memogroup.getId();

            String sql = "update memo_group set name = 'zhaotian' where id = ?;";

            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1,newid);
            pop = preparedStatement.executeUpdate();


        } catch (ClassNotFoundException e) {
            e.printstacktrace();
        } catch (sqlException e) {
            e.printstacktrace();
        }
        return true;
    }

    public static void main(String[] args) {
        MyJdbcCase1 myJdbcCase1 = new MyJdbcCase1();
        Memogroup memogroup = new Memogroup();
        memogroup.setCreatetime(LocalDateTime.Now());
        memogroup.setName("看书");
        memogroup.setId(668);
        Boolean pop = myJdbcCase1.createMemogrup(memogroup);
        System.out.println(pop);
        String str1 = myJdbcCase1.queryMemGroupByld(1).toString();
        System.out.println(str1);
        myJdbcCase1.updateMemogroup(memogroup);
    }
}

测试结果如下图

程序的执行结果如下:

 

数据库内容如下:

说明操作正常,数据库内容与预想中的一样。

备注:上图运行完之后会发现运行结果会出现三条红色警告语句,此语句的问题以及解决方法都写的很清楚,笔者在此不做过多的解释,大家练习到这里的时候可以通读一下警告就会发现解决方法,算是留了一个小小的疑问,有待读者解决。如果本篇文章对大家的jdbc编程有帮助,请大家点个赞鼓励一下笔者,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐