使用JDBC四个大类

1. DriverManager:管理jdbc驱动

2. Connection:连接(通过DriverManager产生)

3. Statement/PreparedStatement:增删改executeUpdate()查executeQuery() 

 CallableStatement调用数据库中 存储过程/存储函数 (皆通过Connection产生)

    statement()方法:增删改executeUpdate()查executeQuery()

    PreparedStatement(sql语句)方法:同上+setXXX(postion,value)

4. Resultset:返回到结果集  (通过Statement等产生)

  方法:next():光标下移,判断是否有下一条数据:true/false

     getXXX(字段名/位置):获取具体的字段值  XXX为int/String/...

  Statement与PreparedStatement的区别:(推荐用PreparedStatement

  1. Statement:

    SQL语句

    executeUpdata(SQL)

  2. PreparedStatement

    sql(可能存在占位符‘?’)

    在创建PreparedStatement对象时,将sql预编译PreparedStatement(sql)

    executeUpdata()

    setXXX(postion,value)  将sql中占位符?替换

JDBC访问数据库具体步骤

1. 导入驱动,加载具体驱动类

2. 与数据库建立链接

3. 发送sql语句,执行

4. 处理结果集合(查)

**补充:导入驱动和具体驱动类:

       驱动jar(x为版本号)       具体驱动类                 连接字符串

Oracle     ojdbc-x.jar            oracle.jdbc.OracleDriver             jdbc:oracle:thin:@localhost:1521:ORCL

MySQL    mysql-connector-java-x.jar    com.mysql.jdbc.Driver                 jdbc:mysql://localhost:3306/数据库实例名

SQL server   sqljdbc-x.jar         com.microsoft.sqlserver.jdbc.SQLServerDriver  jdbc:microsoft:sqlserver:localhost:1433;databasename=数据库实例名

代码示例:

用java在数据库中增删改数据

package jdbcproject;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement; public class add {
//sql数据库连接字符串
private static final String URL="jdbc:sqlserver://localhost:1433;databasename=javatest";
//sql用户名 和密码 用作连接用
private static final String USERNAME="sa";
private static final String PWD="cc123nice"; public static void update() throws ClassNotFoundException, SQLException {//增删改
//导入驱动,加载具体驱动类
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//与数据库建立链接
Connection connection = DriverManager.getConnection(URL, USERNAME, PWD);
//发送sql语句(增删改)
Statement stmt = connection.createStatement();
//实现增删改
String sql="insert into test values('cc',13)";
// String sql="update into test values('cd',13)";
// String sql="delete table test"; //返回增删改几条数据
int num = stmt.executeUpdate(sql);
if(num>0)
System.out.println("操作成功");
stmt.close();
connection.close();
}
public static void main(String[] args) {
try {
update();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}

JavaBean

1. 将jsp中的java代码转移到src的一个类中 称之为javabean

2. 要求:

    public修饰类 ,public 无参构造

    所有属性(如果有)都是private,且提供get/set方法(如果boolean 则为is方法)

3. 优点:   减轻复杂度

     提高复用率

     封装业务逻辑 (相当于运用数据库的表)

     封装数据  (对应于数据库的一张表)

代码示例:

三板块 Javabean /JSP/lib中包导入

      

1. first.logindao为JavaBean封装了sql语句(命名规范与数据库连接的类以dao结尾)

package first;

import java.sql.*;

public class logindao {
//sql数据库连接字符串
private static final String URL="jdbc:sqlserver://localhost:1433;databasename=javatest";
//sql用户名 和密码 用作连接用
private static final String USERNAME="sa";
private static final String PWD="cc123nice"; public int login(String name,String pws) {
Connection connection=null;
Statement stmt=null;
ResultSet rs=null; try {
//导入驱动,加载具体驱动类
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//与数据库建立链接
connection = DriverManager.getConnection(URL, USERNAME, PWD);
//发送sql语句(增删改)
stmt = connection.createStatement(); String sql="select count(*) from test where name='"+name+"' and pwd='"+pws+"'";
rs=stmt.executeQuery(sql);
int count=-1;
if(rs.next()) {
count = rs.getInt(1);
}
return count;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return -1;
} catch (SQLException e) {
e.printStackTrace();
return -1;
}catch (Exception e) {
e.printStackTrace();
return -1;
}
}
}

2. JSP中设置用户输入界面与跳转结果界面

--login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="check.jsp" method="post">
用户名:<input type="text" name="uname"><br/>
密码: <input type="password" name="upwd"/><br/>
<input type="submit" value="登陆"><br/>
</form>
</body>
</html> --check.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="first.logindao" %> <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
logindao dao=new logindao();
int result=dao.login(name,pwd);
if(result>0)
out.print("登陆成功");
else if(result==0)
out.print("用户名/密码有误");
else
out.print("代码错误");
%>
</body>
</html>

3. 导入包-正常java文件导入包需要将包粘贴于根目录下,右键buildpath-》configure build path(如下图)

但对于javaweb项目中 若要导入包则只需放入lib文件夹下

JavaWeb -JDBC使用(数据库-javaweb连接)的更多相关文章

  1. JDBC开发,数据库的连接

    JDBC开发步骤 1.建完工程后,右击工程,new,新建一个文件夹Folder,装jar包,        2.将下载好的驱动包打开,找到jar文件,CTRL+C,选中装jar包的文件夹,CTRL+V ...

  2. jdbc创建数据库的连接

    package com.gylhaut.db; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Res ...

  3. JDBC获取数据库Connection的工具抽取

    使用JDBC获取数据库的连接,大字分为三个步骤 1.获取驱动包名,定义URL,database_username,database_password 2.获取Connection对象 3.利用Conn ...

  4. javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

  5. javaweb(三十三)——使用JDBC对数据库进行CRUD

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

  6. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    走进JavaWeb技术世界3:JDBC的进化与连接池技术 转载公众号[码农翻身] 网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库 ...

  7. JavaWeb程序连接SQLserver数据库

    声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客. JavaWeb程序连接SQLserver数据库分为一下步骤: 1 ...

  8. 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总

    作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...

  9. 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils

    使用连接池改造JDBC的工具类: 1.1.1          需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...

随机推荐

  1. plsql 中文乱码

    plsql 中文乱码, 中文还是用ZHS16GBK insert into tt(id,name) values('2','张三'); select * from nls_database_param ...

  2. C++Builder 代码编辑器 回车自动补充括弧

    两大问题 括弧和折叠 一.括弧 XE7,回车,自动补充括弧} 好用,有时候不准确,代码量多,不知道什么原因就引起错误,总是多一个括弧,一回车就加一个括弧,都不敢回车写代码了,怎么关闭此选项? 找到了, ...

  3. VLC接收网络串流缓冲时间的计算 (转)

    原帖地址:http://blog.csdn.net/coroutines/article/details/7472743 VLC版本2.0.1 最近研究IP-STB音视频同步问题,发现方案自带的自动S ...

  4. 听说去了BAT的 Linuxers 都做过这套面试题!

    本部分为单项选择题,每道题仅有一个答案,每题2分.   1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和错误 D. ...

  5. ubuntu 安装google输入法

    第五步:通常情况下,IBus图标(一个小键盘)会出现在桌面右上角的任务栏中.有时候这个图标会自行消失,可使用以下命令,找回消失的IBus图标: ibus-daemon -drx   不建议用googl ...

  6. latex如何插入空白行

    1.~\\:一行空白2.\\[行距]:可加入任意间距的空白行 [xpt]

  7. 前端开发之jQuery效果篇

    主要内容: 1.显示与隐藏效果 2.滑动效果 3.淡入与淡出效果 4.动画效果 5.弹出广告效果 一.显示与隐藏 显示与隐藏即 show() 和 hide() ,能够控制元素显示或隐藏. 实例: &l ...

  8. 08-SSH综合案例:前台用户模块:注册页面的前台JS校验

    这个是MyEclipse设置的问题 把设置去掉就没问题了. 你也可以在每一个input后面加个span来显示提示的信息.这些东西也要提交到后台,后台也是要对这些东西进行校验的.

  9. [Training Video - 1] [Selenium Basics] [What is Selenium IDE,RC,Webdriver, TestNG, Junit And Ant]

    Selenium IDE (Only support in Firefox): - Record and Run - UI interface - User extensions - Conversi ...

  10. 分布式理论系列(三)ZAB 协议

    分布式理论系列(三)ZAB 协议 在学习了 Paxos 后,接下来学习 Paxos 在开源软件 Zookeeper 中的应用. 一.Zookeeper Zookeeper 致力于提供一个高性能.高可用 ...