关于JDBC的部分内容的总结

1、是什么

(1)、JAVA DATABASE CONNECTIVITY ((字面意思)java与数据库的连接),是一个独立与数据库管理系统、通用的SQL数据库存储和操作的公共接口(可以理解为一组的API (应用程序接口))

2、用来干啥

(1)、用来访问数据库的标准java类

3、如何获取数据库连接

(1)、导入jar包==》加载与注册JDBC驱动(输入url user password)

连接代码:

 public  void testConnection5() throws Exception {//1.加载配置文件InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");Properties pros = new Properties();pros.load(is);//2.读取配置信息String user = pros.getProperty("user");String password = pros.getProperty("password");String url = pros.getProperty("url");String driverClass = pros.getProperty("driverClass");//3.加载驱动Class.forName(driverClass);//4.获取连接Connection conn = DriverManager.getConnection(url,user,password);System.out.println(conn);}//配置文件
user=root
password=abc123
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.jdbc.Driver

4、其中statement/PrepatedStatement的区别

使用statement会导致sql注入问题、拼串问题 以及效率比PrepatedStatement低

PrepatedStatement会存在预编译:预编译是啥?
我理解的pp预编译: 现将未填入占位符的sql语句 中的关系 做绝了 当写入数据试图去改变这种关系 会被拒绝 不会导致关系改变

pp的好处:pp可以操作blob数据 普通无法做到 有占位符是可以传流

pp可以实现跟高效的批量插入操作

5、使用PrepatedStatement进行更新/查询

更新:

用prop代替普通的statement 通用5步

1、连接数据库

2、pop预编译sql语句

3、填充占符位

4、执行sql语句

5、释放数据库 pop资源

注意一个date类型:util下的date不能直接成为sql下的date,但是两者的毫秒值是相同的 所以 可以将util的date毫秒值给sql中的date

?:占位符

啥叫预编译:在生成实例中 已经携带了sql语句

查询:

ORM编程思想:object relation mapping

对象关系映射:并非是名字的一样 可以将表的字段起javabase包的别名

一个数据表对应一个java类

表中一个记录对象java类的一个对象

表中的一个字段对应java类的一个属性

针对于表的字段名与类的属性名不一致 必须声明sql是 使用类的属性名来命名字段的别名

是有rsmd需要使用getcolumnlabel来替换getname 获取别名

说明:若果sql没有起别名 getlabel 仍然获取列名

连接 properarestatemant resurtset 都需要关闭

rsmd 获取结果集的元数据(修饰现有数据的数据) ==》元注解(修饰当前注解的注解) 通过rsmd获取列数

赋值给属性 运用反射getdecrearfile() 注意设置不检查 防止私有变量

JDBC API小结

  • 两种思想

    • 面向接口编程的思想

    • ORM思想(object relational mapping)

      • 一个数据表对应一个java类

      • 表中的一条记录对应java类的一个对象

      • 表中的一个字段对应java类的一个属性

    sql是需要结合列名和表的属性名来写。注意起别名。

  • 两种技术

    • JDBC结果集的元数据:ResultSetMetaData

      • 获取列数:getColumnCount()

      • 获取列的别名:getColumnLabel()

    • 通过反射,创建指定类的对象,获取指定的属性并赋值


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部