jdbc实战演练

好久没有发这个东西了,一小子跳这么快,哈哈哈哈哈.

不懂得jdbc是什么的小朋友们可以查一查,不懂得sql的小朋友也可以去查一查,本篇文章涉及到的新知识大概就这俩~

首先,关门,放出成果图!

 

 

 

 

 

 

 

 演示完毕,不会有人觉得我这些表数据是我自己修改的吧~不会吧不会吧

接下来放源代码出来,具体可以改,如果看不懂的可以评论问我,我可以稍微解释下.

import java.util.Scanner;

public class NewsMain {
    public void menu(){
        System.out.println("欢迎来到新闻管理系统");
        System.out.println("========================");
        System.out.println("       1-添加新闻");
        System.out.println("       2-查看新闻");
        System.out.println("       3-编辑新闻");
        System.out.println("       4-删除新闻");
        System.out.println("       5-退出系统");
        System.out.println("请输入1-5之间的数字进行操作:");
    }

    public static void main(String[] args){
        NewsMain nm = new NewsMain();
        DruidAndDbtils db = new DruidAndDbtils();
        Scanner in = new Scanner(System.in);
        boolean flag;
        while (true){
            flag = false;
            nm.menu();
            int n = 0;
            try {
                n = in.nextInt();
            } catch (Exception e) {
                e.printStackTrace();
                in.next();
                System.out.println("请输入标准数字!");
                continue;
            }
            if (n == 5){
                System.out.println("退出系统!");
                break;
            }
            switch(n){
                case 1:
                    System.out.println("添加新闻!");
                    db.addNews();
                    break;
                case 2:
                    System.out.println("查看新闻!");
                    db.researchNews();
                    break;
                case 3:
                    System.out.println("编辑新闻!");
                    db.reNews();
                    break;
                case 4:
                    System.out.println("删除新闻!");
                    db.deleteNews();
                    break;
                default : flag = true; break;
            }
            if (flag){
                System.out.println("输入错误,请重新输入1-5之间的数字:");
                continue;
            }
        }
    }
}
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Properties;
import java.util.Scanner;

public class DruidAndDbtils {
    //查询新闻
    public void researchNews(){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要查看的新闻页数(一页十条):");
        int n = in.nextInt();
        Properties properties = new Properties();
        String propertyFile = DruidAndDbtils.class.getResource("/druid-config.properties").getPath();
        try {
            propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
            properties.load(new FileInputStream(propertyFile));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            QueryRunner qr = new QueryRunner(dataSource);
            List<News> list = qr.query("select * from new limit ?, 10", new BeanListHandler<>(News.class), new Object[]{(n - 1) * 10});
            for (News nw : list){
                System.out.println("asdas");
                System.out.println(nw.toString());
            }
            System.out.println("新闻查询完毕!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //添加数据
    public void addNews(){
        Connection conn = null;
        Scanner in = new Scanner(System.in);
        Scanner in0 = new Scanner(System.in);
        System.out.println("请输入新闻ID:");
        int id = in.nextInt();
        System.out.println("请输入新闻标题:");
        String title = in0.nextLine();
        System.out.println("请输入新闻内容:");
        String content = in0.nextLine();
        System.out.println("请输入新闻创建时间:");
        String time = in0.next();
        java.util.Date udTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            udTime = sdf.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long time0 = udTime.getTime();
        java.sql.Date sdTime = new java.sql.Date(time0);
        Properties properties = new Properties();
        String propertyFile = DruidAndDbtils.class.getResource("/druid-config.properties").getPath();
        try {
            propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
            properties.load(new FileInputStream(propertyFile));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            conn = dataSource.getConnection();
            String sql = "insert into new(id, title, content, create_time) values(?, ?, ?, ?)";
            QueryRunner qr = new QueryRunner();
            qr.update(conn, sql, new Object[]{id, title, content, sdTime});
            System.out.println("新闻插入完毕!");
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            close(conn);
        }
    }
    //编辑新闻
    public void reNews(){
        Connection conn = null;
        Scanner in = new Scanner(System.in);
        Scanner in0 = new Scanner(System.in);
        System.out.println("请输入新闻ID:");
        int id = in.nextInt();
        System.out.println("请输入新闻标题:");
        String title = in0.nextLine();
        System.out.println("请输入新闻内容:");
        String content = in0.nextLine();
        System.out.println("请输入新闻创建时间:");
        String time = in0.next();
        java.util.Date udTime = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            udTime = sdf.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long time0 = udTime.getTime();
        java.sql.Date sdTime = new java.sql.Date(time0);
        Properties properties = new Properties();
        String propertyFile = DruidAndDbtils.class.getResource("/druid-config.properties").getPath();
        try {
            propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
            properties.load(new FileInputStream(propertyFile));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            conn = dataSource.getConnection();
            String sql = "update new set title = ?, content = ?, create_time = ? where id = ?";
            QueryRunner qr = new QueryRunner();
            qr.update(conn, sql, new Object[]{title, content, sdTime, id});
            System.out.println("新闻修改完毕");
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            close(conn);
        }
    }
    //删除新闻
    public void deleteNews(){
        Connection conn = null;
        Scanner in = new Scanner(System.in);
        System.out.println("请输入想要删除的新闻的ID:");
        int id = in.nextInt();
        Properties properties = new Properties();
        try {
            String propertyFile = DruidAndDbtils.class.getResource("/druid-config.properties").getPath();
            propertyFile = new URLDecoder().decode(propertyFile, "UTF-8");
            properties.load(new FileInputStream(propertyFile));
            DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
            conn = dataSource.getConnection();
            String sql = "delete from new where id = ?";
            QueryRunner qr = new QueryRunner();
            qr.update(conn, sql, new Object[]{id});
            System.out.println("新闻删除完毕!");
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            close(conn);
        }
    }
    //关闭链接等
    public static void close(Connection conn){
        try {
            if (conn != null && !conn.isClosed()){
                conn.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
import java.util.Date;

public class News {
    private int id;
    private String title;
    private String content;
    private Date create_time;

    public News(int id, String title, String content, Date create_time){
        this.setId(id);
        this.setTitle(title);
        this.setContent(content);
        this.setCreate_time(create_time);
    }
    public News(){}

    public int getId() {
        return id;
    }

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

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    @Override
    public String toString() {
        return "新闻:{" +
                "新闻ID:" + id +
                ", 新闻标题:'" + title + '\'' +
                ", 新闻内容:'" + content + '\'' +
                ", 新闻创建时间:" + create_time +
                '}';
    }


}

看第二段代码就知道,我使用了DRUID连接池以及APACHE的DBUTILS

所以叫DruidAndDbUtils(代码里面我少写一个U,不过我真的懒得改了,原谅我吧!)

还记得第一次链接数据库时候那激动的心情

\不多说了,加油继续干!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺安晓迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值