图书管理系统(重构版)

目录

思路

步骤

1.设计数据库

2.设计接口

3.具体实现类

小结

io流和数据库交互对比

关于Template的用法

外键关闭与开启


思路

步骤

1.设计数据库

 创建数据库->创建表->设置表里面的数据类型->创建表的连接

2.设计接口

 例子:

3.具体实现类

 

小结

io流和数据库交互对比

io流的特点

Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。

Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。

一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。

MySql的特点

  • 1.数据以表格的形式出现
  • 2.每行为各种记录名称
  • 3.每列为记录名称所对应的数据域
  • 4.许多的行和列组成一张表单
  • 5.若干的表单组成database

在重构中的理解

io方便快捷,但是每次操作都需要重新去文件里面拿取数据。相比于数据库,数据库可以利用连接池,不会浪费过多的资源

io流比较方便,想用的时候创建文件夹就可以了,相比于数据库会方便很多

关于Template的用法

一个方便于数据库交互的好东西,实测非常好用!!!

 private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSoure());

    //1.修改一条记录
    @Test
    public void test1(){
        String sql="update user set name='迪丽热巴' where id=?";
        int count = template.update(sql, 5);
        System.out.println(count);
    }

    //2.添加一条记录
    @Test
    public void test2(){
        String sql="insert into user values(null,?,?,?,?)";
        int count = template.update(sql, "柳岩", "321", "Chengdu", "15123685749");
        System.out.println(count);
    }

    //3.删除上一条记录
    @Test
    public void test3(){
        String sql="delete from user where id=?";
        int count = template.update(sql, 7);
        System.out.println(count);
    }

    //4.查询id为1的记录,将其封装为Map集合
    //注意:这个方法查询的结果集长度只能1,将列名作为key,将值作为value将这条记录封装进Map集合
    @Test
    public void test4(){
        String sql="select * from user where id=?";
        Map<String, Object> map = template.queryForMap(sql, 1);
        System.out.println(map);
    }

    //5.查询所有记录,将其封装为List集合
    //注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中
    @Test
    public void test5(){
        String sql="select * from user";
        List<Map<String, Object>> list = template.queryForList(sql);
        for (Map<String, Object> stringObjectMap : list) {
            System.out.println(stringObjectMap);
        }
        //System.out.println(list);
    }

    //6.查询所有记录,将其封装为User对象的List集合
    @Test
    public void test6(){
        String sql="select * from user";
        List<User> list = template.query(sql, new BeanPropertyRowMapper<User>(User.class));
        for (User user : list) {
            System.out.println(user);
        }
    }

    //7.查询总记录数
    @Test
    public void test7(){
        String sql ="select count(id) from user";
        Long total = template.queryForObject(sql, Long.class);
        System.out.println(total);
    }

外键关闭与开启

在对数据库操作的时候要是有外键会影响正常运行,我碰到后就把外键关了,再进行数据库操作,再把外键开启,下面是实操

 //开启外键
    public void startkey() {
        String closeForeignKey = "SET @ORIG_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=1";
        jt.update(closeForeignKey);
    }

    //关闭外键
    public void closekey() {
        String closeForeignKey = "SET @ORIG_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0";
        jt.update(closeForeignKey);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值