之前学习Java的时候做了很多笔记,但是一直放着没有梳理……(其实是懒),从此立下Flag,必须要把这些宝贵的笔记整理完,只不过需要点时间(#滑稽)
1.创建一个新的Java工程(如果没有)
2.给当前的工程添加驱动包(jar包)(mysql,Oracle...)的依赖,包从数据库的厂商获取,
此包实现了JDBC的接口,把这些实现过后的类组成了一个jar包。
3. 在工程中添加package和class
a.创建实体(entity)包或vo包( value object )
实体包中的类和vo包中的类都是用来数据的
类的属性是私有的,通过公有的getter和setter存取数据
实体包中的某一个类,对应其在数据库中相应的那张数据表
vo包中的类,放置的都是程序中临时使用的数据
com.xxx.entity 实体包
com.xxx.vo vo包
eg.
com.xxx.entity.User 这个user类对应数据库中的t_user表
com.xxx.vo.Page 此类用来存取分页信息
b.创建dao包(data access object 数据访问对象)
com.xxx.dao 此包及其子包中都是有关数据库操作的java类或接口
com.xxx.dao.common 此包是所有模块的数据库操作的公共java类
com.xxx.dao.common.CommonDao 此类中的功能是数据库操作的公共功能,比如开数据库连接,和关数据库连接等
1.开连接
//加载驱动类
Class.forName("数据库的入口");
eg.
MySql:com.mysql.jdbc.Driver
Oracle:oracle.jdbc.OracleDriver
//通过驱动管理器的类,加载对应驱动包中的接口的子实现类
Connection con=DriverManager.getConnection("url","usrname","userpassword");
mysql:
url:jdbc:mysql://localhost:3306/testdb
username:root
userpassword:root
oracle:
url:jdbc:oracle:thin:@localhost:1521:orcl
username:scott
userpassword:tiger
2.关连接
//分别判断ResultSet对象,PreparedStatement对象
Connection对象,如果不空就调用close() 方法
eg.
com.xxx.dao.user 此包中专门操作user相关的数据库操作
com.xxxdao.user.IUserDao 此接口规范规范了用户的数据库操作
com.xxx.dao.user.impl.UserDaoMysql 此类是IUserDao的实现
4.访问数据库:
Oracle:oracle.jdbc.OracleDriver
//通过驱动管理器的类,加载对应驱动包中的接口的子实现类
Connection con=DriverManager.getConnection("url","usrname","userpassword");
mysql:
url:jdbc:mysql://localhost:3306/testdb
username:root
userpassword:root
oracle:
url:jdbc:oracle:thin:@localhost:1521:orcl
username:scott
userpassword:tiger
2.关连接
//分别判断ResultSet对象,PreparedStatement对象
Connection对象,如果不空就调用close() 方法
eg.
com.xxx.dao.user 此包中专门操作user相关的数据库操作
com.xxxdao.user.IUserDao 此接口规范规范了用户的数据库操作
com.xxx.dao.user.impl.UserDaoMysql 此类是IUserDao的实现
4.访问数据库:
数据库的dml操作:增删改
1. 获取连接
2.构建dml的sql语句
3.基于连接和sql语句运送到数据库,构建命令对象
在命令对象中给sql语句的"?"占位符的位置填入具体数据
4.基于连接和完整的sql语句,调用executeUpdate( ) 方法执行sql语句,此方法的返回值是整数,返回值为0,dml失败,返回值>0,dml成功
5.关闭对应对象的资源
数据库的dql操作:查
1.获取连接
2.构建dql的sql语句
3.基于连接,把sql语句运送到数据库,有"?"占位符,给占位符补充数据
4.基于连接和完整的sql语句,调用executeQuery方法,executeQuery方法的返回值ResultSet(结果集)也就是查询出来的结果放在了ResultSet对象中
5.循环从ResultSet结果集中读取数据,并把数据转换成集合存储在内存中,在关闭连接后使用集合对象中的数据即可
6.关闭对应对象的资源
com.xxx.dao.user.impl.UserDaoMysql 此类是IUserDao的实现
数据库的dml操作
步骤同上
数据库的dql操作
步骤同上
5.如果有必要的话要进行单元测试
1. 获取连接
2.构建dml的sql语句
3.基于连接和sql语句运送到数据库,构建命令对象
在命令对象中给sql语句的"?"占位符的位置填入具体数据
4.基于连接和完整的sql语句,调用executeUpdate( ) 方法执行sql语句,此方法的返回值是整数,返回值为0,dml失败,返回值>0,dml成功
5.关闭对应对象的资源
数据库的dql操作:查
1.获取连接
2.构建dql的sql语句
3.基于连接,把sql语句运送到数据库,有"?"占位符,给占位符补充数据
4.基于连接和完整的sql语句,调用executeQuery方法,executeQuery方法的返回值ResultSet(结果集)也就是查询出来的结果放在了ResultSet对象中
5.循环从ResultSet结果集中读取数据,并把数据转换成集合存储在内存中,在关闭连接后使用集合对象中的数据即可
6.关闭对应对象的资源
com.xxx.dao.user.impl.UserDaoMysql 此类是IUserDao的实现
数据库的dml操作
步骤同上
数据库的dql操作
步骤同上
5.如果有必要的话要进行单元测试
附:有关网络的若干协议
http协议 http://www.163.com
https协议 https://www.xxx.com
ftp协议 ftp://192.168.1.121
smtp协议 smtp://ip
jdbc:mysql协议 jdbc:mysql://ip:3306/数据库
jdbc:oracle协议 jdbc:thin协议:@ip地址 jdbc:oracle:thin:@localhost:1521:orcl
http协议 http://www.163.com
https协议 https://www.xxx.com
ftp协议 ftp://192.168.1.121
smtp协议 smtp://ip
jdbc:mysql协议 jdbc:mysql://ip:3306/数据库
jdbc:oracle协议 jdbc:thin协议:@ip地址 jdbc:oracle:thin:@localhost:1521:orcl