发表于: 2019-10-14 22:45:01

1 915


今天完成的事情:


1.  上午   写了一个jdbc增删查改的模板


里面的注释   都是根据自己的理解写出的  

可能有些不对,但大概理解了每段代码作用

package ptteng;

//导入包
import java.sql.*;

public class JdbcUtil {

//声明connection对象
   private static Connection Connection;

   //声明preparedstatement对象
   private static PreparedStatement ps;

   //创建3个成员变量   且赋值
   private static String url = "jdbc:mysql://localhost:3306/student?characterEncoding=UTF-8";
   private  static String user = "root";

   private  static String pass = "451976";



       //必须返回connection的方法
       public static Connection getConnection(){

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

            //2返回 connection     connection 为连接数据库的结果
           return Connection = DriverManager.getConnection(url, user, pass);
            //捕捉所有的异常
       } catch (Exception e) {
e.printStackTrace();
       }
return null;
   }


public static void close(ResultSet rs, Statement stmt,Connection connection){//栈式关闭(最先连接,最后关闭连接)
       try{
//关闭结果集   如果结果集不是空的,则关闭
           if(rs!=null) rs.close();
       }catch (SQLException e){
e.printStackTrace();
       }

try{
//关闭sql语句   如果preparedstatement 不是空的  则 关闭
           if(ps!=null) ps.close();
           if(stmt!=null) stmt.close();
       }catch (SQLException e){
e.printStackTrace();
       }

try{
//关闭连接   如果connection不是空的  则关闭
           if(connection!=null) connection.close();
       }catch (SQLException e){
e.printStackTrace();
       

       }

    }

}

用这个工具进行了


package ptteng;

//导入sql
import java.sql.*;

public class select {

//声明  preparedstatement     resultset 对象
   private static PreparedStatement ps =null;
   private static   ResultSet rs = null;

   //入口
   public static void main(String[] args){

/*获取与jdbcutil的连接
        *即执行JdbcUtil中的getconnection方法
        * 完成了
        * 1.加载驱动
        * 2.连接数据库
        */
       Connection connection =JdbcUtil.getConnection();


       try {
String sql="select * from bj";

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

           //存放结果集
           rs =ps.executeQuery(sql);

           //游标结果集不为空,则输出   且在while中循环
           while (rs.next()){

//输出   int结果是           rs.getInt("名称")
               //       string结果为        rs.getString("名称")
               System.out.println(rs.getInt("id"));
               System.out.println(rs.getString("name"));
           }

System.out.println("查询成功!");

           //捕获数据库连接失败错误
       } catch (SQLException e) {
e.printStackTrace();

           //最终   关闭结果集rs   sql语句执行类对象ps    关闭与jdbc的连接connection
       }finally {
JdbcUtil.close(rs,ps,connection);
       }

}

}

增删改就不放了   

都是更改sql语句    修改结果集代码     隐藏while(re,next)

自己写代码执行都是成功的


2.jdbctemplate   


自己看了一下午   还是不明白


百度jdbctemplate的教程    方法不同

配置文件不一样   需要的Jar包不一样  


比如这个需要导入c3p0依赖


这个又换了一种方式    不导入了   使用datasource语法也变了


applicationcontext.xml 配置完    下个流程就大片爆红


看师兄的日报还要写  用户层   DAO  服务层  测试   也没实现


自己的学习方法可能有问题...

想先跳过这个   去看mybatis了...


3.看基础知识 


抽象类


个人总结:


抽象类   和  抽象方法

都用abstract来定义   


抽象类无法被实例化  但可以被继承

继承后  子类实例化    从而实现抽象类中的方法


抽象方法

不能添加方法块

子类继承后   才能在子类中写入方法块


开始搞不懂为什么要有抽象类

看了这个回答,感觉清晰了许多



封装


想要访问 

只能通过getter  和setter方法


接口

接口不是类

是抽象方法的集合


类 描述        对象的属性和方法。
接口 则包含   类要实现的方法。


通过interface定义接口   :


如果一个类想要实现接口:

则必须实现接口中的所有抽象方法

继承语法:



接口可以被另一个接口继承 :

须添加interface关键字

但也必须实现 父类接口里的 所有抽象方法 

public interface Football extends Sports



其他知识   

1.   idea如何创建.properties   及 .xml(属性配置文件)文件

https://blog.csdn.net/u013164931/article/details/76283884

明天计划的事情:


上午看jdbctemplate   如果上午还没看明白配置流程

就去学习mybatis  - - 不想再在jdbctemplate上浪费时间了


遇到的问题:


jdbctemplate看不懂

师兄有没有好的文章或者博客借鉴  

师弟感激不尽...


收获:

对抽象类  封装  接口知识   更明白了


返回列表 返回列表
评论

    分享到