第一个小项目

来源:互联网 发布:网站快速优化排名 编辑:程序博客网 时间:2024/05/17 02:06

其实就是一个登录注册 现在进行中

我希望通过写这个能对自己的学习做一个见证

平台:Tomcat && MyEclipse

语言:javaBean && Jsp

数据库:Mysql

项目之前的一点说明

接触JAVA周期20天 其实就是什么都是似懂非懂 很是郁闷

项目思路:

首先是数据库 安装一路默认 好像就知道了什么*.ini文件 其实不知道到底是干什么用的

学会了 基本的sql语句  先是建立数据库 写了个数据库说明

 

用户表:users

说明:记录系统用户和普通用户登陆信息和个人信息

字段名

字段类型(长度)  

默认值

主外键

字段说明

User_id

Bigint

自增长

Pk

主键/流水ID

自增长

Username

Varchar(100)  not Null

Uk

用户登陆名

Password

Varchar(50)

用户登陆密码

Email

Varchar(50)

Uk

E-mail

epubflag

tinyint

0

是否公开

0公开

1不公开

realname

Varchar(50)

真实姓名

sex

tinyint

性别

0表男

1表女

Native

int

籍贯

address

Varchar(50)

现居住地

Photos

Varchar(100)

照片

Userpage

Varchar(100)

个人主页(博客地址)

mobilePhone

Varchar(20)

手机号

Qqcode

Varchar(12)

QQ号码

Msncode

Varchar(20)

Msn

tienum

Int

0

发表帖子总数

Fen

int

0

个人积分

adage

Varchar(200)

个人格言

updtime

timestamp

修改日期

createtime

date

自动

注册日期

然后建立数据库

SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_database = gbk;
SET character_set_results = gbk;
SET character_set_server = gbk;
SET collation_connection = gbk_bin;
SET collation_database = gbk_bin;
SET collation_server = gbk_bin;

create table users(
 user_id bigint AUTO_INCREMENT primary key,
 username varchar(100) not null,
 password varchar(50) not null,
 email varchar(50),
 epubflag tinyint default 0,
 realname varchar(50),
 sex tinyint,
 native int,
 address varchar(100),
 Photos varchar(100),
 Userpage varchar(100),
 mobilephone varchar(20),
 qqcode varchar(12),
 msncode varchar(20),
 tienum int default 0,
 fen int default 0,
 adage varchar(200),
 updtime timestamp,
 createtime date,
 constraint uq_username unique(username),
 constraint uq_email unique(email)
);

知道了个子增涨主键 不过到现在也没真正明白作用

会了个 show databases; show tables; use itmate; desc uesrs; drop table users; select * from users;

数据库完成

然后装了个MyEclipse 知道了 IDE Eclipse 这个东东 关系就是咖啡加糖

还知道了myeclipse  这个东西能建web工程 其他就是似懂非懂了

然后呢 就是 什么JDBC  好像它和数据库之间 就是个枢纽

其他不知道了 知道了 有直接取链接和从连接池拿链接

代码如下 

package common.conn;

import java.sql.*;
import javax.naming.*;

public class ConnectionPool {
 
 Connection conn = null;
 
 public Connection getConnection() throws NamingException, SQLException{
  InitialContext ctx = new InitialContext();
  javax.sql.DataSource connectionPool = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
  conn = connectionPool.getConnection();
  return conn;
 }
 public void closeConnection() throws SQLException{
  if(conn!=null)conn.close();
 }
}
然后给他封到一个BEAN里面

这里就是还知道了个jiavabean

至于javabean到底是个什么东西还是不明白

再写个set和get方法的类Users

jsp页面里面用个<jsp:setProperty name="users" property="*"/>

把表单里面的数据给灌到这个类里面

然后在写个类 写了个方法

代码如下

package dblogic.users;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.naming.NamingException;

import common.conn.ConnectionPool;
import text.javabean.Users;

public class Input {
 ConnectionPool connPool = new ConnectionPool();
 public void write (Users inuser) throws SQLException,IllegalAccessException,ClassNotFoundException, NamingException{
  
  PreparedStatement prep = null;
 try{
  Connection conn = connPool.getConnection();
  prep = conn.prepareStatement("insert into users (username,password,email,epubflag,realname,sex,native,address,photos,userpage,mobilePhone,qqcode,msncode,adage,createtime) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); //?占位符  
  prep.setString(1,inuser.getUsername());
  prep.setString(2,inuser.getPassword());
  prep.setString(3,inuser.getEmail());
  prep.setInt(4,inuser.getEpubflag()); 
  prep.setString(5,inuser.getRealname());
  prep.setInt(6,inuser.getSex());
  prep.setInt(7,inuser.getNative_place());
  prep.setString(8,inuser.getAddress());
  prep.setString(9,inuser.getPhotourl());
  prep.setString(10,inuser.getUserweb());
  prep.setString(11,inuser.getMobilephone());
  prep.setString(12,inuser.getQqcode());
  prep.setString(13,inuser.getMsncode());
  prep.setString(14,inuser.getAdage());
  java.util.Date xtdate= new java.util.Date();
  java.sql.Date yhdate = new java.sql.Date(xtdate.getTime());
  prep.setDate(15,yhdate);
  prep.executeUpdate(); 
 }finally{
  if (prep!=null){
  prep.close();
  connPool.closeConnection();
 }
 }
}
}
其实也是似懂非懂!

不过现在还是可以注册了

关于细节

首先是xml文件

<?xml version="1.0" encoding="utf-8"?>
<Context path="/itmate" docBase="F:/itmate/WebRoot" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/mysql" type="javax.sql.DataSource"              
 driverClassName="org.gjt.mm.mysql.Driver"
 url="jdbc:mysql:///itmate?useUnicode=true&amp;characterEncoding=gbk"
 username="root"
 password="root"
 maxIdle="5"
 maxWait="-1"   
 maxActive="15"/>
</Context>

好像这个就是配置个什么连接池?

郁闷!

其他的 我得在整理一个思路

怎么写登录页面呢?

从库里面查出来? 和页面输入和做比较?

如果一致 登录成功? 不一致 登录不成功?

也许吧? 晚上睡不着 不知道是谁在呐喊着 学习是个苦差事

我只有这最后的机会去拼搏了!

写到这里 明天继续 !!!