数据库
CREATE TABLE `t_user` (
`I_ID` int(11) NOT NULL AUTO_INCREMENT,
`V_UserName` varchar(50) NOT NULL,
`V_UserPassword` varchar(50) DEFAULT NULL,
`D_UserBirthday` varchar(200) DEFAULT NULL,
`I_UserDep` varchar(50) DEFAULT NULL,
`V_UserEmail` varchar(200) DEFAULT NULL,
`V_UserAddress` varchar(500) DEFAULT NULL,
PRIMARY KEY (`I_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=gbk;
数据库连接类,查询数据,添加数据
package net.zhuoqun.connectDB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class DataServiceImpl {
public static Connection getConnection() {
Connection c = null;
try {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/mytest";
String username = "root";
String password = "";
Class.forName(driver);
c = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return c;
}
// 查询用户
public List getAllUser() throws SQLException {
Connection c = getConnection();
Statement st = c.createStatement();
String sqlText = "select v_username,v_userpassword,d_userbirthday,v_useremail from t_user";
ResultSet rs = st.executeQuery(sqlText);
ArrayList userList = new ArrayList();
while (rs.next()) {
User temp = new User();
temp.setUsername(rs.getString("v_username"));
temp.setUserpassword(rs.getString("v_userpassword"));
temp.setUserbirthday(rs.getString("d_userbirthday"));
temp.setUseremail(rs.getString("v_useremail"));
userList.add(temp);
}
return userList;
}
// 添加用户
public void addUser(User user) throws SQLException {
Connection c = getConnection();
String sqlText = "insert into t_user(V_UserName,V_UserPassword,D_UserBirthday,I_UserDep,V_UserEmail,V_UserAddress) "
+"values(?,?,?,?,?,?)";
try {
PreparedStatement pstmt = c.prepareStatement(sqlText);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getUserpassword());
pstmt.setString(3, "1983-05-16");
pstmt.setString(4, user.getDep());
pstmt.setString(5, user.getUseremail());
pstmt.setString(6, user.getAddress());
pstmt.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
}
User类
package net.zhuoqun.connectDB;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable{
private String username; //姓名
private String userpassword; //密码
private String useremail; //邮箱
private String userbirthday; //生日
private String dep; //部门
private String address; //地址
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String getUseremail() {
return useremail;
}
public void setUseremail(String useremail) {
this.useremail = useremail;
}
public String getUserbirthday() {
return userbirthday;
}
public void setUserbirthday(String userbirthday) {
this.userbirthday = userbirthday;
}
public String getDep() {
return dep;
}
public void setDep(String dep) {
this.dep = dep;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
User.as
package com.gt.flex
{
//与JAVA类中的 User.java 对应 包括 属性名 和 类型
//如果为private的话,要想访问,就要写出对应的setter/getter方法
[RemoteClass(alias="net.zhuoqun.connectDB.User")]
public class User
{
public function User()
{
}
public var username:String;
public var userpassword:String;
public var useremail:String;
public var userbirthday:String
public var dep:String;
public var address:String;
}
}
register.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
xmlns:ns1="*">
<ns1:RegisterForm2 x="30"
y="10">
</ns1:RegisterForm2>
</mx:Application>
RegisterForm2.mxml 是我自定义的控件
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml"
width="400"
height="522"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
pageTitle="用户注册表单"
xmlns:local="*">
<mx:Script>
<![CDATA[
import com.gt.flex.User;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.utils.ArrayUtil;
//User.as
var user:User=new User();
private function resultHandler(event:ResultEvent):void
{
Alert.show("注册成功");
}
private function faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.message, "失败");
}
private function adduser():void
{
// user 为 User.as 的对象
user.username=names.text; //姓名
user.userpassword=password.text; //密码
user.userbirthday=birthday.text; //生日
user.address=address.text; //地址
//user.dep=dep.selectedItem.@label;
//user.dep=dep.text;
user.dep=dep.selectedItem.@data; //部门 @data CA/OR 表示<mx:XMLList id="statesXMLList">中的data数据
user.useremail=email.text; //邮箱
userinfo.addUser(user); //调用DataServiceImpl.java中的addUser(User user)方法
}
]]>
</mx:Script>
<!--dataService 为 remoting-config.xml中的 id-->
<mx:RemoteObject id="userinfo"
destination="dataService"
result="resultHandler(event)"
fault="faultHandler(event)"/>
<mx:XMLList id="statesXMLList">
<state label="生产中心"
data="CA"/>
<state label="运营中心"
data="OR"/>
</mx:XMLList>
<mx:Form width="380"
height="482">
<mx:FormHeading label="员工注册"
width="319"
textAlign="center"/>
<mx:FormItem required="true"
label="姓名">
<mx:TextInput id="names"
maxChars="96"
width="281"/>
</mx:FormItem>
<mx:FormItem required="true"
label="密码">
<mx:TextInput id="password"
maxChars="128"
width="281"
displayAsPassword="true"/>
</mx:FormItem>
<mx:FormItem label="生日">
<mx:TextInput id="birthday"
maxChars="128"
width="281"/>
</mx:FormItem>
<mx:FormItem required="true"
label="地址">
<mx:TextInput id="address"
maxChars="128"
width="281"/>
</mx:FormItem>
<mx:FormItem required="true"
label="部门">
<mx:ComboBox id="dep"
prompt="选择部门"
selectedIndex="-1"
dataProvider="{statesXMLList}"
labelField="@label"/> <!--@label表示mx:XMLList id="statesXMLList"中的label-->
</mx:FormItem>
<mx:FormItem required="true"
label="邮箱">
<mx:TextInput id="email"
maxChars="20"
width="281"/>
</mx:FormItem>
<mx:FormItem width="319">
<mx:HBox>
<mx:Button label="注册"
click="adduser()"/>
<mx:Button label="重置"/>
</mx:HBox>
</mx:FormItem>
</mx:Form>
</mx:Panel>
remoting-config.xml 内容
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="dataService">
<properties>
<source>net.zhuoqun.connectDB.DataServiceImpl</source>
</properties>
</destination>
</service>
分享到:
相关推荐
权限通常包括对资源的读、写、删除等操作。这种模型允许管理员根据需要动态调整用户的权限,提高了系统的灵活性。 4. **JSON数据交换**:在Flex和Java之间,数据的传输采用JSON格式,它轻量级、易于解析,适应于...
10. **Flex 项目创建**: 在FlexBuilder 3中创建Flex项目,选择J2EE作为后台类型,将Flex项目与已部署在Tomcat的Web项目关联,以实现Flex与Java服务的交互。 11. **Hibernate 配置**: 包括创建数据库、表,导入MySQL...
总之,Flex是一个强大的开发框架,结合了XML的易读性、JavaScript的动态性以及Java的面向对象特性,为创建交互性强、表现力丰富的Web应用提供了便捷的途径。无论你是Web开发者还是寻求提升用户体验的设计师,学习...
- 消息缓存:为减少服务器压力,可以对一定时间内未读的消息进行本地缓存。 - 压缩传输:通过gzip等算法压缩消息数据,降低网络传输负载。 通过以上步骤,我们可以构建一个基于Flex的Flash聊天室。然而,随着...
6. **项目结构**:在flexjava.code-master这个目录下,我们可以看到ZXing的源码组织结构,包含多个模块,如core(核心解码和编码实现)、javase(Java SE平台的客户端工具)和android(Android平台的集成)等。...
2. **映射器**: MyBatis的Mapper接口与XML映射文件结合,定义了数据库操作的方法,实现数据访问的解耦。 3. **SqlSession**: MyBatis的核心接口,负责执行SQL,获取结果集,提交或回滚事务。 4. **MyBatis-Spring...
lex源程序由一系列模式和动作组成,模式描述了可能出现在输入中的字符串,动作则定义了当匹配到该模式时应执行的操作。 2.3.1 lex概述 lex是一个早期的词法分析工具,后来发展出了许多变种,如flex。它允许用户以...
标题中的"**urlrewriter.zip**"是一个包含与URL重写相关的资源的压缩包,它主要涉及两个领域:**Windows编程**和**Flex**。URL重写是Web开发中的一个重要概念,尤其对于优化搜索引擎优化(SEO)和提供用户友好的网址...
yFiles支持数据绑定机制,这意味着图形元素可以直接与后台数据源关联,当数据改变时,图形会自动更新,反之亦然,实现了数据可视化和数据操作的同步。 8. **事件处理**: 在yFiles中,可以为图形元素添加事件监听...
这种转换过程使得程序员可以使用更为抽象和易读的语言编写程序,而无需直接操作硬件级别的指令。 **2.1 编译器** 编译器是一种特殊的软件,它的主要任务是将源程序(用高级语言编写的程序)转化为目标程序,这个...
3. **词法分析器生成器**:例如Flex和Bison(用于C/C++),JFlex和JavaCC(用于Java)是自动工具,它们能根据词法规则生成高效的词法分析器代码。 4. **扫描器和分词器**:词法分析器的别名,扫描器读取源代码并...
例如,C语言中,标识符必须以字母或下划线开头,而Java则允许数字开头(但不是第一个字符)。语法上,C++支持类和对象,而Python则使用缩进来表示代码块。 **错误处理** 在词法分析和语法分析过程中,如果遇到不...
高级语言如C、C++、Java、Python等,它们具有易读性强、抽象级别高的特点,使得程序员能更专注于解决问题而不是底层细节。在高级语言中,代码更接近人类的思维模式,如循环、条件语句、函数等。 **三、四元式与中间...
在编程和软件开发领域,编译原理是至关重要的一个分支,它涉及到将高级语言转化为机器可执行...通过实践操作,学习者不仅能理解编译器是如何将人类可读的代码转化为机器语言的,还能提高自身的编程能力和问题解决能力。
- 支持键值对的形式存储,常用操作有`setItem`、`getItem`、`removeItem`等。 4. **HTML文档的`doctype`有什么作用?** - `doctype`声明告诉浏览器该按照何种标准解析页面。 - 正确的`doctype`声明有助于确保...
Dart的语法清晰易读,与Java和C#有相似之处,但更注重开发者体验。 在Flutter中,Dart主要用作UI构建的语言。Flutter的核心组件是Widget,它们是可重用的UI元素,可以组合成复杂的用户界面。Widgets基于声明式编程...