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 ...
随机推荐
- [LeetCode] Search in Rotated Sorted Array [35]
题目 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 m ...
- Trie树-脏词过滤应用
Trie树,又称字符查找树.前缀树,主要用于字符匹配(详见http://en.wikipedia.org/wiki/Trie).适合做关键词查找,比如查找文章中的关键字然后给他们加链接. 当然对脏词的 ...
- 白话JAVA守护线程
OneCoder(苦逼Coder)原创,转载请务必注明出处: http://www.coderli.com/archives/daemon-thread-plain-words/ 关于“白话”:偶然想 ...
- chrome插件 postman 可以调用restful服务
chrome插件 postman 可以调用restful服务
- js创建对象的方式 三种
1. 使用直接量创建1个对象: var aobj = { x : 10, y : function(){ console.log("aobj--> "+this.x); } ...
- windows下 Python 安装包的配置
1.下载安装 Pythonpython-2.7.2.msi http://www.python.org/download/如下载 Python 2.7.2,安装目录为 C:\Python27 2.添 ...
- 屏蔽错误:LNK2038
最近在使用Qt(VS2010编译)的过程中,需要调用COM库,在Qt中加入了QAxContainer模块,是一个LIB库,在把编译模式从Debug改为Release 后链接报告了一堆错误 -1: 错误 ...
- git撤销修改
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...
- Android输入法 监听事件
登录界面有一个输入用户名和密码的编辑框: private EditText et_userName;// 账户 private EditText et_password;// 密码 布局文件如下: & ...
- Binder的使用(跨进程——AIDL,非跨进程)
一.Binder类 1.作用:Binder是客户端与服务器端的通信的媒介(连接各种Manager的桥梁),客户端通过Binder对象获取服务器端提供的数据 (为什么要用Binder来提供数据呢,服务器 ...