发表于: 2018-02-02 20:58:12
1 590
今天完成的事:
1,继续学习maven并总结。
2,编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范。
经查阅资料,能明白dao究竟是什么,应用dao设计模式可以在使用数据库程序中实现应用逻辑和数据逻辑分离,使程序易于管理。
dao通过将数据访问实现封装在dao类里提高程序的灵活性,这我能理解。
但是问题是,dao到底长什么样?
解决途径:通过查阅资料,我发现dao由于必须提高重用性所以不能写死,所以dao必须被写成接口以防止麻烦。而接口有各种各样的实现,如用Hibernate、用XML、用JDBC。
ok,got it。
dao就是一个接口类也就是interface(用java写的话就是例如public interface XXX)。里面定义了用于操作数据的各种方法接口,可是我得知道什么接口是需要的,所以我决定先实现它。
3,学习JDBC的概念。
jdbc是Java程序访问数据库的标准,它内置了各种由Java编写的类和接口,统称jdbc api,使用这个api可以访问各种数据源。
明天做的事:
写一写dao。
任务和学习继续。
收获:
今天主要是学习了关于maven和jdbc的知识,没怎么干别的。
1,maven的依赖通常在库中被管理,例如本地库或者中央库,但是你也可以在工程中添加外部依赖以面对依赖不能被满足的情况。
通过在src文件夹中添加lib文件夹,将你的各种jar文件放进去,同时,可以在pom.xml文件中添加dependency标签来指明外部依赖位置。
在该标签中,指定groupid,artifactid和version为lib名字,指定scope为作用域,一般为system,指定systempath标签为lib位置。
2,maven使用site命令创建工程文档,一般放在一个叫index.html的文件中,它在target文件夹内。
3,maven为用户提供了614个工程模板,命令 mvn archetype:generate 即根据模板创建工程,但是需要链接服务器。
4,maven使用快照的概念帮助一些依赖于某个工程的其他工程获取最新的更新代码,因为maven在获取了一次1.0版本的文件后,就不会尝试去再次获取,除非版本被升级到1.1.但是maven每次会自动获取最新的快照(例如 data-service:1.0-SNAPSHOT)来构建工程。
5,maven可以自动找出工程间的依赖关系来管理依赖,所以用户不必每次都指明所有的依赖,例如:如果A依赖于B和C,而D依赖于A来构建,那么D不需要指明B和C的信息。
jdbc:
一个标准的jdbc程序可分为三个部分:连接数据库,使用数据库和关闭数据库连接。现分述。
1,连接数据库
在连接数据库之前,你必须安装4中数据库驱动程序中的一种,例如jdbc-odbc桥,但是一般的,我们通过三层服务来访问数据库,jdbc客户端可以用一种套接字与中间服务器通信,然后经过中间服务器转接成数据库管理系统需要的数据格式(因为一般数据库系统都是c/c++语言编写)。
安装驱动程序后,首先导入jdbc包,一般为java.sql和javax.sql。然后注册驱动程序,在Java中一般为class.forName()方法来加载驱动程序,参数为驱动程序参数如com.mysql.jdbc.Driver。
之后指定数据库的url,由于现在使用的是mysql,所以url一般为jdbc:mysql://localhost/数据库名。
之后使用DriverManager的getConnection()方法建立与数据库的连接,这个方法的参数还包括用户名和密码。这个方法返回的连接由connection类型的对象来保存。
2,使用数据库
可以使用statement对象对数据库传递参数。
statement对象有三种,分为Statement,PreparedStatment和CallableStatement。每种用途不一样,在这里,我使用statement对象的excuteQuery()方法,他返回一个结果集,之后可以使用while循环遍历结果集,使用getINT()等方法得到想要的值。
3,关闭数据库连接
调用close()方法即关闭连接
最好是确保getConnection()返回的对象和statement对象都正确关闭。即使java有垃圾回收器。
一些补充:
如果你使用不支持jvm的非sdk,则你得提供DriverManager的registerDriver()方法,在此之前,可以给驱动程序创建一个driver对象,如mysql的为:
Driver mydri = new com.mysql.jdbc.Driver();然后把这个对象传递给上述方法。
如果jvm不兼容,可以使用getInstance()方法,形如:Class.forName(com.mysql.jdbc.Driver).getInstance()。
但是需要另外捕捉illegalAccessException和InstantiationException两个异常。
评论