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 ...
随机推荐
- Prime Ring Problem + nyoj 素数环 + Oil Deposits + Red and Black
Prime Ring Problem Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) ...
- C#基础:事件(二) 【转】
上篇文章介绍了C#中事件的基本实现方式,在本文中,将对最常见的事件委托EventHandler和EventHandler<T>做介绍. 事实上,在前面文章的介绍中,已经涉及到了EventH ...
- Linux下多核环境Erlang的SMP測试
目标 (1) 了解在多核cpu环境下,erlang并发进程调度对各个cpu核负载的影响: (2) Erlang虚拟机的内存添加机理: (3) Erlang进程的调度 ...
- Swift String 一些常用方法
//字符串 //1 判断字符串是否为空 var test1Str="" var test1Str2:String = String(); println("test1St ...
- magento新闻邮件发送一直处于“正在发送”状态问题解决
今天在弄magento新闻邮件发送时候发现,单个邮件发送全然没有问题,可是新闻邮件订阅死活都不成功.国内国外的帖子都翻了一遍没实用,最后还是得靠自己了.于是開始慢慢找问题 首先想到是不是crontab ...
- ARM64调试环境
自从上一次ZCTF做了一道ARM64的逆向题目后,我决定记录下利用qemu搭建ARM64的环境的过程,以后肯定会遇到更多ARM平台下的Reverse和PWN. 一 安装QEMU 我要模拟的是64位的A ...
- 小心ThreadLocal的陷阱
ThreadLocal用在多线程时保存线程级的局部变量,当我们需要在线程内共享数据时,ThreadLocal屡试不爽,但是ThreadLocal也会有一个问题,当你使用线程池时,线程可能会被重用,所以 ...
- Hexo 官方主题 landscape-plus 优化
博主喜欢简洁大方的Hexo主题,看了不下100个主题之后,最终选择了 landscape-plus 主题(针对中国大陆地区,对Hexo官方主题landscape进行优化后的版本).更多Hexo主题资源 ...
- 常用的CSS清除浮动的方法优缺点分析(个人学习笔记)
一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer"> <div class="di ...
- ASP.NET程序代码优化的七个方面
ASP.NET程序性能优化的七个方面 一.数据库操作 1.用完马上关闭数据库连接 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比 ...