发表于: 2018-03-27 23:04:43
1 666
小白学java第十四天,今天学习时间7-8小时
今天完成的事情:首先对前天的内容进行了复习,补一个小知识点
Hero h = new Hero(); //代表创建了一个新的对象。
h 是一个Hero变量,它被指向了这个新创建的对象 。
对昨天的知识进行一个小的补充(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 的用法
然后对JDBCTemplae进行了学习
JDBC的原理就是通过Connection这个类获取数据库的连接,
然后通过PreparedStatement类处理SQL语句,再通过它的.setObject方法传入数据,
最后通过方法.executeUpdate()和.executeQuery()执行更新,这就是JDBC的基本原理。
JDBCTemplate帮我们省去了很多麻烦.
②指定数据库连接参数.
打开数据库连接.
预编译并执行SQL语句.
遍历查询结果(如果需要的话).
处理抛出的任何异常.
处理事务.
关闭数据库连接
那么JDBCTemplate怎么做到的,这就和spring有关系了
SpringIOC容器将管理数据库连接的数据源当作普通Java Bean一样管理,
然后将数据源注入封装类JdbcTemplate中,
1.jdbctemplate和mybatis分别在什么情况下使用,jdbc template 和spring+mybatis一样吗?,和mybatis相比有什么优缺点?
这三个问题其实差不多.JDBCTemplate和Mybatis不一样,Mybatis的sql语句放在了mapper.xml文件里面.相当于配置在了环境当中,随时都可以使用. 而JDBCTemplate则是写在了实现类里面,使用的时候还要进行重新调用配置之类的. 以后的工作中可能对多个表进行操作,配置在环境中使用起来非常方便.
2.如何来控制数据库的打开关闭.
Class.forName("com.mysql.jdbc.Driver"); 这个初始化驱动就是打开了数据库链接
Connection c = DriverManager.//连接数据库,
//关闭数据链接
ps.close();
c.close();
而JDBCTemplate的打开关闭则是封装在JDBCTemplate当中.
3.jdbc 和 jdbctemplate 相比 效率有差别么
单从效率方面来说,实际上jdbc比jdbctemplate的效率会高一点.jdbcTemplate则更方便我们进行更改内容,和理解当中的逻辑.
4.jdbcTemplate 实现执行多条sql语句.
一种直接用mysql的批量处理语句.
另外一种拼接SQL语句直接一次性提交多少条数据.
5.jdbcTemplate有什么缺点
必须于Spring框架结合在一起使用、不支持数据库跨平台、默认没有缓存.
学了这些基础知识,对程序代码进行了学习,然后先复制了一片博客进行了试运行然后进行理解,可是弄了很久,程序是可以运行的,但是测试老是报错,也没有实现增删查改,但是程序是能走通的,(忘了截图了)后面直接用别的程序覆盖我的,就弄乱掉了,弄了几个小时没弄好之后,我决定去看看别的师兄的jdbctemplate进行学习,然后翻阅别的师兄的日志中,我发现有个比较有用的关于关键字的基础知识,然后进行了学习,消化
java的继承之关键字
1.final关键字的学习
知识点:使用final关键字做标示有“最终的”含义,不可修改,不可变化;
final修饰类,则该类不允许被继承;修饰方法,该方法不能被重写;
final修饰属性,则该类的属性不会进行隐式的初始化或在构造方法中赋值(方法二选一)如下:
(1)final public int age = 10;//声明时赋值
(2)final public int age;
public Alex(){
age = 10;//通过构造方法赋值
}
2.super关键字的使用
知识点:(1)访问父类的对象:super.age;
(2)访问父类的方法:super.eat();
结合代码学习知识点:
我们可以看到,代码在运行的时候执行了两次“Animal类执行了”这是因为子类的构造的过程中必须调用其父类的构造方法。而在代码中没有体现调用父类的构造方法,这是因为系统自动调用了父类的无参构造方法。
接下来再看一组代码复习另外的知识点:
在这里super关键字直接调用父类的方法以及访问父类的变量。
3.java中的object类
知识点:(1)object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承,则默认继承objecct类。
(2)toString()方法。如果我们在代码里直接输出一个对象,它会输出这个对象在内存中的地址,叫做哈希码;我们可以通过重写toString方法来标识出它的属性。如下代码:
通过toString()方法让代码输出了变量的值。
(3)equals()方法:此方法比较的是对象的引用是否指向同一块内存地址,但是我们一般使用都是比较对象的值,所以要重写此方法。
这是重写之前,重写之后我们再看结果
这是方法重写之后的,我们实现了用equals()比较对象的值。
明天计划的事情:(学习jdbcTemplate)
遇到的问题:(jdbcTemplate大致的结构差不多了解了。知识关于代码的知识还是有所欠缺,明天争取搞定)
收获:(学习了关键字的秒用,之前一直看到super不知道其意思)
最后,还是要麻烦师兄批阅了
评论