javabean 快捷键
写完属性之后,我们按照
1.无参构造器
2.全参构造器
3.toString方法
4.GetSet方法
这个顺序依次的会大家说一下他们的快捷键.
那么这里从无参构造器开始说起.
生成无参构造器是最简单的.
知道 Alt+/ 这个快捷键吧.
直接按下这个快捷键,然后毫不犹豫的按下回车键
这时候无参构造器就会添加好了,因为默认无参构造器就在第一个.
现在来生成全参构造器.
先按下键盘上的Alt+Shift+S键.
弹出一个功能选择,这里就是Eclipse给我提供的快速生成一些常用方法的快捷功能了,我们要用的get/set,toString,构造器啊以及equals和hashCode等等都可以在这里自动生成.
我们这里用来生成全参构造器
1.在图片上箭头指示的地方就是创建全参构造器的方式了.
2.然后你会发现,那个字母O键(不是数字0),下面有个下划线标记,我们在键盘上按下O键,就相当于用鼠标左键单击了这里.
3.所以我们这个时候再按下键盘上的O键.
4.按下O键之后,弹出一个窗口,包含我们所有的属性,而且都默认全部选择状态.
这里因为我们要添加一个全参构造器,所以就不用管它.
再下面我们发现这个OK按钮上是有颜色的就是暗示我们可以直接按下回车键来点击这个按钮.
所以我们直接敲一个回车就可以了.
先按下Alt+Shift+S键,再按字母O键,再敲回车键.就可以创建全参构造器了.
那么这里的toString方法也是如出一辙了.
先按下Alt+Shift+S键,再按字母S键,再敲回车键.就可以搞定了
现在就剩下get和set了.
最后说get和set是因为,有个地方需要说明一下.
1.首先还是先按Alt+Shift+S键,然后弹出后,再按一下键盘上的r键 .
2.按完r键,弹出一个窗口,发现属性都没有选择,而且OK按钮根本就点不了!!!
3.难道我们还要用鼠标把他们都选择么?NO,我们其实可以通过按下Alt+A键来一次性全部选中他们,因为Select All的字母A下面也有个下划线,但是这样不可以直接点击A.要配合Alt键.所以按下Alt+A就可以一次性全部选择了.
4.按下Alt+A之后,属性已经全部选择了.但是发现这个Select All按钮加了颜色.OK按钮没有了颜色.
所以这个时候就不能直接按回车键来代替点击OK键了.
所以我们手动点击了OK按钮就可以了.
=================================================
封装邮箱地址,测试邮箱地址是否合法。
<%@ 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>Insert title here</title>
</head>
<body>
<form action="result.jsp" method="post">
<table align="center" width="300" border="1" height="150">
<tr>
<td colspan="2" align="center">
<b>邮箱认证系统</b>
</td>
</tr>
<tr>
<td align="right">邮箱地址:</td>
<td><input type="text" name="mailAdd"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>
-----------------------------------------------------------
<%@ 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">
<%@page import="com.lyq.bean.Email"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<%
// 获取邮箱地址
String mailAdd = request.getParameter("mailAdd");
// 实例化Email,并对mailAdd赋值
Email email = new Email(mailAdd);
// 判断是否是标准的邮箱地址
if(email.isEamil()){
out.print(mailAdd + " <br>是一个标准的邮箱地址!<br>");
}else{
out.print(mailAdd + " <br>不是一个标准的邮箱地址!<br>");
}
%>
<a href="index.jsp">返回</a>
</div>
</body>
</html>
------------------------------------------------------------------------------------------
package com.lyq.bean;
import java.io.Serializable;
/**
* �ʼ�����JavaBean
* @author Li YongQiang
*/
public class Email implements Serializable {
// serialVersionUID ֵ
private static final long serialVersionUID = 1L;
// Email��ַ
private String mailAdd;
// �Ƿ���һ������Email��ַ
private boolean eamil;
/**
* Ĭ���εĹ��췽��
*/
public Email() {
}
/**
* ���췽��
* @param mailAdd Email��ַ
*/
public Email(String mailAdd) {
this.mailAdd = mailAdd;
}
/**
* �Ƿ���һ������Email��ַ
* @return ����ֵ
*/
public boolean isEamil() {
// ������ʽ�����������ʽ
String regex = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
// matches()�������ж��ַ����Ƿ���������ʽƥ��
if (mailAdd.matches(regex)) {
// eamil��
eamil = true;
}
// ����eamil
return eamil;
}
public String getMailAdd() {
return mailAdd;
}
public void setMailAdd(String mailAdd) {
this.mailAdd = mailAdd;
}
}
=================================================================================
对上例进行改进 ,自己写的类 测试:
<%@ 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>Insert title here</title>
</head>
<body>
<form action="result2.jsp" method="post">
<table align="center" width="300" border="1" height="150">
<tr>
<td colspan="2" align="center">
<b>计算平方系统</b>
</td>
</tr>
<tr>
<td align="right">输入数据:</td>
<td><input type="text" name="num"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>
---------------------------------------------------------------
<%@ 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">
<%@page import="com.lyq.bean.Pingfang"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<%
String snum = request.getParameter("num");
int num = Integer.parseInt(snum);
Pingfang pf = new Pingfang(num);
out.print(num + "的平方值是 :"+pf.getpfz());
%>
<a href="index2.jsp">返回</a>
</div>
</body>
</html>
-----------------------------------------------------------------------
package com.lyq.bean;
public class Pingfang {
private int num1;
public Pingfang(int n){
num1 = n;
}
public void setNum1(){
}
public int getNum1(){
return num1;
}
public int getpfz(){
return num1 * num1 ;
}
}
=================================================================================
获取 javabean属性信息:jsp:getProperty ,有很多细节要注意:否则就会出错;
<%@ 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>Insert title here</title>
</head>
<body>
<jsp:useBean id="P" class="com.lyq.bean.Pingfang"></jsp:useBean>
<div>
<ul>
<li>
商品名称:<jsp:getProperty property="s" name="P"/>
</li>
</ul>
</div>
</body>
</html>
--------------------------------------------------------------------------------------------------------------
package com.lyq.bean;
public class Pingfang {
private int num1;
private String s="我爱 Java web开发!";
public Pingfang(){
}
public Pingfang(int n){
num1 = n;
}
//public void setNum1(){
//}
public int getNum1(){
return num1;
}
public int getpfz(){
return num1 * num1 ;
}
public String getS(){
return s ;
}
}
添加空的类的构造方法 ;
jsp:getProperty标签用于获取被加载到当前页面中的JavaBean中某个属性的值
格式:<jsp:getProperty name=? property=? />
name:JavaBean的对象名,用于指定从哪个JavaBean中获取属性值
property:JavaBean中的属性名,用于指定获取JavaBean中的哪个属性值
=======================================================================
数据库批量操作数据:
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!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=GB18030">
<title>首页</title>
</head>
<body>
<jsp:useBean id="batch" class="com.lyq.Batch"></jsp:useBean>
<%
// 执行批量插入操作
int row = batch.saveBatch();
out.print("批量插入了【" + row + "】条数据!");
%>
</body>
</html>
-------------------------------------------------------------------
package com.lyq;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Random;
/**
* 批处理
* @author Li YongQiang
*/
public class Batch {
/**
* 获取数据库连接
* @return Connection对象
*/
public Connection getConnection(){
// 数据库连接
Connection conn = null;
try {
// 加载数据库驱动,注册到驱动管理器
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接字符串
String url = "jdbc:mysql://localhost:3306/db_database10";
// 数据库用户名
String username = "root";
// 数据库密码
String password = "111";
// 创建Connection连接
conn = DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 返回数据库连接
return conn;
}
/**
* 批量添加数据
* @return 所影响的行数
*/
public int saveBatch(){
// 行数
int row = 0 ;
// 获取数据库连接
Connection conn = getConnection();
try {
// 插入数据的SQL语句
String sql = "insert into tb_student_batch(id,name,sex,age) values(?,?,?,?)";
// 创建PreparedStatement
PreparedStatement ps = conn.prepareStatement(sql);
// 实例化Random
Random random = new Random();
// 循环添加数据
for (int i = 0; i < 10; i++) {
// 对SQL语句中的第1个参数赋值
ps.setInt(1, i+1);
// 对SQL语句中的第2个参数赋值
ps.setString(2, "学生" + i);
// 对SQL语句中的第3个参数赋值
ps.setBoolean(3, i % 2 == 0 ? true : false);
// 对SQL语句中的第4个参数赋值
ps.setInt(4, random.nextInt(5) + 10);
// 添加批处理命令
ps.addBatch();
}
// 执行批处理操作并返回计数组成的数组
int[] rows = ps.executeBatch();
// 对行数赋值
row = rows.length;
// 关闭PreparedStatement
ps.close();
// 关闭Connection
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
// 返回添加的行数
return row;
}
}
================================================================