20151205--JDBC-2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
<script type="text/javascript">
function yanz()
{
if (zhugan.userid.value == "")
{
alert("用户代码不能为空!");
return false;
}
if(zhugan.username.value == "")
{
alert("用户名称不能为空!");
return false;
}
if(zhugan.password.value == "")
{
alert("登陆密码不能为空!");
return false;
}
/*
if(zhugan.passwore.value == "")
{
alert("确认密码不能为空!");
return false;
}
*/
if(zhugan.password.value != zhugan.passwore.value)
{
alert("登陆密码与确认密码不相同!");
return false;
}
return true;
}
</script>
</head>
<body>
<form id="zhugan" action="SaveUser" method="get" onSubmit="return yanz();">
用户代码:<input id="userid" type="text" name="userid" width=30 />
<br><br>
用户名称:<input id="username" type="text" name="username" width=30 />
<br><br>
登录密码:<input id="password" type="password" name="password" width=30 />
<br><br>
确认密码:<input id="passwore" type="password" name="pueren" width=30 />
<br><br>
<input type="submit" value="提交" />
</form>
</body>
</html>
注册页面
package com.hanqi; import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class SaveUser
*/
public class SaveUser extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public SaveUser() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); //获取内容
String userID = request.getParameter("userid");
String userName = request.getParameter("username");
String pw = request.getParameter("password"); //判断输入的内容
if(userID == null || userID.trim().length() == 0)
{
//输出内容
response.getWriter().append("用户代码不能为空");
}
else if(userName == null || userName.trim().length() == 0)
{
response.getWriter().append("用户姓名不能为空");
}
else
{
try
{
//加载数据库驱动,并注册到驱动管理器
Class.forName("oracle.jdbc.driver.OracleDriver");
//数据库连接字符串
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
//获取connection对象 (个人理解为登陆数据库 并将数据关联)
Connection conn = DriverManager.getConnection(url,"test","123654789"); //url,名称,密码
//判断是否有数据
if(conn != null)
{
//操纵数据库
String sql = "insert into t_user (user_id,user_name,password) "
+ "values (?,?,?)";
//另外一种方法:
//String sql = "insert into t_user (user_id,user_name,password) values ('" + userID + "')"; //执行sql语句的类
PreparedStatement pps = conn.prepareStatement(sql);
//转码
//userName = new String(userName.getBytes("ISO-8859-1"),"UTF-8"); post 提交方式不用转码 get方式需要转码
//将操纵数据库中数据类名编下顺序便于输入
pps.setString(1, userID);
pps.setString(2, userName);
pps.setString(3, pw); int row = pps.executeUpdate(); //执行sql语句并返回所影响的行数 if(row > 0)
{
response.getWriter().append("保存"+ row +"条数据成功");
}
else
{
response.getWriter().append("保存数据失败");
}
//关闭 释放资源
pps.close(); conn.close(); }
else
{ } }
catch (ClassNotFoundException e) //仅捕获一类特定异常
{
// TODO Auto-generated catch block
e.printStackTrace();
response.getWriter().append(e.getMessage());
}
catch (Exception e) //捕获所有异常
{
// TODO Auto-generated catch block
e.printStackTrace();
response.getWriter().append(e.getMessage());
} }
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
SaveUser
package com.hanqi; import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.*; import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class FindUserList
*/
public class FindUserList extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public FindUserList() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8"); try
{
//加载数据库驱动,并注册到驱动管理器
Class.forName("oracle.jdbc.driver.OracleDriver");
//数据库连接字符串
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
//获取connection对象 (个人理解为登陆数据库 并将数据关联)
Connection conn = DriverManager.getConnection(url,"test","123654789"); //url,名称,密码
//判断是否有数据
if(conn != null)
{
//操纵数据库
// String sql = "insert into t_user (user_id,user_name,password) "
// + "values (?,?,?)";
String sql = "select * from t_user";
//另外一种方法:
//String sql = "insert into t_user (user_id,user_name,password) values ('" + userID + "')"; //执行sql语句的类
/*
PreparedStatement pps = conn.prepareStatement(sql);
*/
Statement stm = conn.createStatement();
//执行查询,返回结果集
ResultSet rs = stm.executeQuery(sql);
//数组的方式来进行 装载 和 传输
ArrayList<User> array = new ArrayList<User>();//将数据装载在数组中放置到其他地方进行输出 if(rs != null)
{
//遍历结果集
while(rs.next())
{
//实体类装载记录
User u = new User();
u.setUserid(rs.getString("USER_ID"));
u.setUsername(rs.getString("USER_NAME"));
u.setPassword(rs.getString("PASSWORD")); /*
//取值 要按照相应类型来取
rs.getString(""); // 按字段名来取
rs.getString(0); // 括号内 columnIndex 是 列的序号 字段序号是从 1 开始算的
rs.getDouble(0); //注意要取值的类型
*/ //将装载的数据传输
array.add(u);
response.getWriter().append("USER_ID = "+ rs.getString("USER_ID")+";<br>");
response.getWriter().append("USER_NAME = "+ rs.getString("USER_NAME")+";<br>");
response.getWriter().append("PASSWORD = "+ rs.getString("PASSWORD")+";<br>"); }
request.setAttribute("userlist", array); //释放
rs.close();
}
else
{
response.getWriter().append("结果集为空");
}
//关闭 释放资源
stm.close(); conn.close(); }
else
{ } }
catch (ClassNotFoundException e) //仅捕获一类特定异常
{
// TODO Auto-generated catch block
e.printStackTrace();
response.getWriter().append(e.getMessage());
}
catch (Exception e) //捕获所有异常
{
// TODO Auto-generated catch block
e.printStackTrace();
response.getWriter().append(e.getMessage());
}
//页面跳转
request.getRequestDispatcher("ShowUserList.jsp").forward(request,response); } /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
} }
FindUserList
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="com.hanqi.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表 先启动FindUserList</title>
</head>
<body>
<% Object obj = request.getAttribute("userlist"); if(obj != null)
{
ArrayList<User> array = (ArrayList<User>)obj; //遍历
for(User u : array)
{
out.print(u.getUserid() + "\t" + u.getUsername() + "\t" + u.getPassword() + "<br>");
} }
else
{
out.append("用户列表为空");
} %>
</body>
</html>
ShowUserList

20151205--JDBC-2的更多相关文章
- Java数据库连接技术——JDBC
大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- JDBC MySQL 多表关联查询查询
public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...
- JDBC增加删除修改
一.配置程序--让我们程序能找到数据库的驱动jar包 1.把.jar文件复制到项目中去,整合的时候方便. 2.在eclipse项目右击"构建路径"--"配置构建路径&qu ...
- JDBC简介
jdbc连接数据库的四个对象 DriverManager 驱动类 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 ...
- JDBC Tutorials: Commit or Rollback transaction in finally block
http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...
- FineReport如何用JDBC连接阿里云ADS数据库
在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...
- JDBC基础
今天看了看JDBC(Java DataBase Connectivity)总结一下 关于JDBC 加载JDBC驱动 建立数据库连接 创建一个Statement或者PreparedStatement 获 ...
- Spring学习记录(十四)---JDBC基本操作
先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...
随机推荐
- 一个简单的flask程序
初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...
- sso单点登录解决方案收集
本文来自:http://blog.csdn.net/huwei2003/article/details/6038017 我的想法是使用集中验证方式,多个站点集中Passport验证. 主站:Passp ...
- DB2 runstats和reorg操作
[db2inst1@xifenfei ~]$ db2 connect to xff Database Connection Information Database server ...
- 超级强大的SVG SMIL animation动画详解
本文花费精力惊人,具有先驱前瞻性,转载规则以及申明见文末,当心予以追究.本文地址:http://www.zhangxinxu.com/wordpress/?p=4333 //zxx: 本文的SVG在有 ...
- Excel 用row()函数 在Excel中自动添加序号,
1.如图 2.用if条件根据产品名称判断是否有值进而序号自动添加 If(G9="","",Row()-8)
- Oracle存储过程的一点使用总结
[博客文章背景]博客开通已经1.2年了,一直碍于技术能力,不敢献丑.想起1年前在一个数据处理相关项目结束后,代金排主管让我做一个数据库开发总结文档和一个Toad.PL/SQL Developer工具的 ...
- c# 委托 delegate
委托是一种存储函数引用的类型,在事件和事件的处理时有重要的用途 通俗的说,委托是一个可以引用方法的类型,当创建一个委托,也就创建一个引用方法的变量,进而就可以调用那个方法,即委托可以调用它所指的方法. ...
- strcat()的编写
1.strcat() #include <windows.h> #include <assert.h> #include <iostream> //strcat() ...
- Android 判断听云是否嵌入正确
编译打包成apk之后,将apk在手机上进行安装,连接数据线,打开命令行,输入以下命令: adb logcat -v time -s NBSAgent:V 之后运行嵌入听云代码的app,进行有效的网络访 ...
- 获得当前设备可用的内存 和 获取当前任务所占用的内存 (单位:MB)(转)
获取当前任务所占的内存: #include <sys/sysctl.h> #include <mach/mach.h> // 任务占用内存 double usedMemory( ...