学习jdbc学习笔记
1.jdbc: java database connection
jdbc规范:是sun公司制定的一套连接操作数据库的接口.
我们必须要用具体的驱动类去连接操作数据库。
每个驱动类都实现了jdbc规范.
规范中掌握三个接口:
Connection: 表示连接对象
Statement: 表示命令对象。执行sql语句用的
ResultSet: 表示结果集.
三种注册驱动的方式
1.创建mysql包中的Driver类。
2.采用反射创建驱动类的对象
3.采用反射加载驱动类
前两种由于注册了两次。同时与具体类耦合性太高,所以不用。实际当中采用第三种
三种获取连接对象的方式:
1.将用户名和密码附加在连接字符串之后
jdbc:mysql://localhost:3306/mydb?user=root&password=root
2.采用创建properties文件的方式
Properties pro = new Properties() ;
pro.load(new FileReader("src/jdbc.properties")) ;
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb",pro) ;
3.采用连接字符串,用户名和密码获取
DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root") ;
补充:Properties类
此类主要的功能是读取properties文件。properties文件的写法必须是键值对的方式(键=值),参见代码
游标的移动:mysql数据库的结果集默认游标的类型是可移动方式,意味着可以来回移动
rs.next() ; 向下移动一条
rs.beforeFirst() ;移动到第一条记录前边
rs.afterLast();移动到最后一条记录的下边
rs.relative(n) ; 移动到相对于当前位置的n条记录的位置
rs.absolute(n) ; 直接定位到第n条记录
rs.last() ;移动到最后一条记录
获取结果集数据的两种方式:
1.采用列的索引获取 : 注意索引从1开始
2.采用列名获取: 注意是虚拟结果集的列名
封装数据到集合对象中
sql注入的问题:statement对象存在sql注入。因此采用PreparedStatement对象。此
对象是预编译对象,意味着提前先编译好sql语句,因此效率高于statement对象,也防止了sql注入.
CREATE TABLE users
(
id VARCHAR(10) PRIMARY KEY,
NAME VARCHAR(20) ,
PASSWORD VARCHAR(20)
) ;
INSERT INTO users VALUES('1','郭靖','111') ;
INSERT INTO users VALUES('2','令狐冲','222') ;
INSERT INTO users VALUES('3','乔峰','333') ;