因为我目前在学校有一门课程叫做javaweb,其中涉及到JavaScript中进行数据库访问的测试,经过学习发现与我们之前通过配置数据源结合spring提供的模板以及mybatis提供的方法进行数据库的操作不同的是,java的jdbc相关还是很值得学习的,但是代码耦合度太高,重复性太高,不适合项目开发。


数据库表jsp.user


自建一个jdbc.jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.sql.*" %>
<html>
<head><title>Title</title>
</head>
<body>
<%int sno;String sname;String clazz;String sql = "select * from jsp.user";Class.forName("com.mysql.jdbc.Driver");Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp", "root", "123456");PreparedStatement preparedStatement = root.prepareStatement(sql);System.out.println(prepardStatement);ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()) {sno = resultSet.getInt("sno");sname = resultSet.getString("sname");clazz = resultSet.getString("clazz");System.out.println("User{" + "sno=" + sno + ", sname='" + sname + '\'' + ", clazz='" + clazz + '\'' + '}');}preparedStatement.close();root.close();
%>
</body>
</html>

分析一下代码:

jdbc获取数据库连接connection创建SQL会话对象(PreparedStatement与Statement)的三部曲:

1、加载数据库驱动,这里利用反射的原理获取一系列关于Driver的API(注意导入驱动的坐标,如果在pom里导入成功,在外部库里可以看到这个maven依赖项的存在)

Class.forName("com.mysql.jdbc.Driver");


2、利用DriverManger的getConnection方法获取数据库连接对象root(图片显示的是getConnection方法的源码,需要的三个参数:URL,user,password)


    Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp", "root", "123456");


3、创建sql会话对象preparedStatement(注意这个动态的preparedStatement类它的父类其实是Statement)
    PreparedStatement preparedStatement = root.prepareStatement(sql);

这里的sql语句就是自定义的String字符串了。


总结:

jdbc访问数据库的基本步骤(参考我上面的jdbc.jsp代码):

  1. 加载数据库驱动 Class.forName
  2. 获取数据连接对象 DriverManager.getConnection
  3. 获取sql会话对象root.prepareStatement
  4. 执行sql语句preparedStatement.executeQuery
  5. 处理返回的结果集resultset
  6. 关闭资源

我们使用mybatis访问数据库时的三板斧与jdbc访问数据库的三部曲之间的对比:

InputStream resourceAsStream = Resources.getResourceAsStream("config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession session = sqlSessionFactory.openSession();config配置文件的关键代码:
<properties resource="jdbc.properties"/><typeAliases><typeAlias type="com.hlc.pojo.User" alias="user"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/>
数据源类型选择池化<dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments>
Class.forName("com.mysql.jdbc.Driver");Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp", "root", "123456");PreparedStatement preparedStatement = root.prepareStatement(sql);

用连接池与不用连接池到底有什么区别?在我个人看来,每一次加载驱动的方式只能用于少量的数据库连接操作中,如果有很多的数据库访问呢?耦合量惊人,代码量也会增加很多。

jsp学习 jdbc访问数据库相关推荐

  1. java web中Jdbc访问数据库步骤通俗解释(吃饭),与MVC的通俗解释(做饭)

    一.Jdbc访问数据库步骤通俗解释(吃饭) 1)加载驱动 Class.forName("com.microsoft.jdbc.sqlserver.SQLServer"); 2) 与 ...

  2. JDBC访问数据库的基本程序

    2019独角兽企业重金招聘Python工程师标准>>> 以下是jdbc访问数据库的基本程序,今后有时间再完善下. //属性配置文件 db.properties driver = co ...

  3. Java程序员从笨鸟到菜鸟之(七十八)细谈Spring(七)spring之JDBC访问数据库及配置详解

    利用spring访问数据库是我们ssh程序中必不可少的步骤,在没有hibernate之前,我们一般都用jdbc访问数据库,所以用jdbc访问数据库必不可少的要进行一些配置,spring中为我们提供了访 ...

  4. android web 访问数据库,Web下的JDBC访问数据库的基本步骤

    Web下的JDBC访问数据库的基本步骤 (2012-06-02 12:09:33) 在Java程序中连接数据库的一般步骤分为一下几部分,我摘录出来,跟大家分享. (1)将数据库的JABC驱动加载到cl ...

  5. JDBC访问数据库步骤

    最近开始复习JAVASE,下面就看看一些之前忘记的点. JDBC访问数据库是之前自己比较迷糊的,现在正好来复习一下.数据库连接首先要有一个JDBC驱动程序,还要有一个数据库,这里两者不属于JAVA的知 ...

  6. Spring实战6-利用Spring和JDBC访问数据库

    主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...

  7. python通过jdbc访问数据库

    python通过jdbc连接数据库 python要访问sybase或oracle数据库,尝试通过odbc以及pyodbc等方式去访问数据库,一直没有成功,通过JayDeBeApi模块调用 java j ...

  8. java.jsp.jdbc_Java-jsp使用JDBC访问数据库时显示乱码是怎么回事?

    1.JSP页面编码你改成utf-8; 2.servlet容器的编码格式你改成utf-8; 以tomcat为例:找到你的安装目录tomcat下面 > conf > server.xml用记事 ...

  9. Java Web学习笔记06:利用JDBC访问数据库

    文章目录 一.JDBC相关知识回顾 1.JDBC概述 2.JDBC API 二.创建数据库与表

最新文章

  1. 关于Latex一个简单例子
  2. 实模式与保护模式详解二:地址映射
  3. 再观手游市场新风口-二次元游戏
  4. ThinkPhp5 | 模块分析
  5. P4199-万径人踪灭【FFT】
  6. 【渝粤题库】陕西师范大学210029 幼儿园游戏(学前儿童游戏)作业
  7. 2021年4月Oracle数据库补丁分析报告
  8. Java学习笔记2.3.3 运算符与表达式 - 关系运算符
  9. javascript Number object
  10. Apache(httpd) 报错You don't have permission to access /on this server.
  11. 9.数据库服务器部署之------3步实现远程访问
  12. jquery获取父级元素、子级元素、兄弟元素
  13. 92. php 命名空间(2)
  14. sps2013安装错误
  15. XXL-JOB 针对未授权访问导致远程命令执行漏洞的声明
  16. 教你用好手中的McAfee 杀毒软件和McAfee 企业集中管理工具EPO
  17. 远程桌面连接,运维工程师-必备软件【MultiDesk】
  18. 如何使用ps制作ico图标文件
  19. 硬盘分区不够,怎么合并分区?
  20. js算法数组flat展平的几种方法

热门文章

  1. 智慧医疗基础平台-02
  2. 《苏宁安全架构演进及实践》阅读总结
  3. 字符串中匹配中文标点符号
  4. kube-scheduler 架构概述
  5. t460s linux 数据库,lenovo thinkpad t460s升级bios版本,造成opensuse linux 引导丢失修复...
  6. python日课1-1:一摞有序的纸牌
  7. zypper命令使用及zypper源配置
  8. php new mpdf,php – mpdf无视javascript
  9. 详解strlen和sizeof在数组中的使用(二)
  10. ubuntu 10.04 连接电信无线(客户端连接ChinaNet)