Java实践之路——jsp+servelt+javabean

        好久都没有写java程序了。其实一直都没有好好的,系统的学习或者说写过java程序。看看java日新月异的发展,看看一个个牛逼的java牛人,我这个底端的程序员也跟着学学吧。

       毕业来,在公司做的项目都是用Dotnet做的。以至于一直比较喜欢java的我,最终还是走上了与自己背道而驰的道路。其实java和Dotnet相比,哪个更好,网上讨论得异常的激烈,还要拉帮结派。其实我也不知道哪个好,可能觉得Dotnet的平台比较方便,而且更容易快速开发,所以就选择了Dotnet。对于java,始终有一种敬而远之的感觉。喜欢却不敢碰,总觉得相对繁琐,迟迟不敢下手。哈哈,现在不管了。打算系统的学习学习 ,在这里记录一下过程,希望能起个监督自己的作用,也做个备忘录吧。如果能对后人带来点好处,那不甚欢喜。

     

      好了,闲话少说,进入正题。

 

     其实,学习java具体有个什么流程,我也搞不清楚。说是说系统的学习,也只能凭借自己的感觉走了(嘿嘿,还是在网上找过一些资料滴)。根据自己以前学的java,零零碎碎的,就先从jsp+servlet+javabean开始吧。其实这个三个是java的基本技术了,很多插件和框架都是从这些基础发展而来的。比如说struts和spring等。servlet还是个好东西滴。在这里写一个基本的登录程序。用到的技术有jsp、servlet、javabean、ajax、jdbc,采用的数据库为mysql,其中javascript用的jquery。服务器采用tomcat6或者jboss6,呵呵,感觉挺多了,不过都是浅显的东西。

    流程为:输入用户名和密码->判断是否正确,正确->进入主页,错误->跳转错误信息页面。进入主页可以新增用户。

    数据库名为mydb,创建一个表user,脚本为

create database mydb;
use mydb;
create table user(
      name varchar(20) not null primary key,
      password varchar(15) not null);

 

   整个项目的文档架构图如下

 

   先写后天代码吧,按顺序来,现实entity中的User.java,一个普通的实体bean

package entity;

public class User{
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public User(){}
	
	public User(String username,String password){
		this.username=username;
		this.password=password;
	}
}


这段代码就不多说了,就是一个数据库表user的映射

 

下面是数据库操作类,db中的MySqlDb,java,其中定义了操作mysql的常用方法CURD

package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MySqlDb {
	private String connStr="jdbc:mysql://localhost/mydb?user=root&password=123&useUnicode=true&characterEncoding=GBK";
	private Connection conn=null;
	private Statement stm=null;
	private PreparedStatement pstm=null;
	
	public MySqlDb()
	{
		try
		{
			Class.forName("com.mysql.jdbc.Driver");
		}
		catch(ClassNotFoundException ex)
		{
			ex.printStackTrace();
		}
		
		try {
			conn=DriverManager.getConnection(connStr);
			stm=conn.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
	public ResultSet query(String sql)
	{
		ResultSet rs=null;
		
		try {
			rs = stm.executeQuery(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally
		{
//			try {
//				this.stm.close();
//				this.conn.close();
//			} catch (SQLException e) {
//				e.printStackTrace();
//			}
		}
		return rs;
	}
	
	public int execute(String sql)
	{
		try {
			return stm.executeUpdate(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally
		{
			try {
				this.stm.close();
				this.conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return -1;
	}
	
	public ResultSet preQuery(String sql,Object...params)
	{
		ResultSet rs=null;
		
		try {
			this.pstm=conn.prepareStatement(sql);
			for(int i=0;i<params.length;i++)
			{
				this.pstm.setObject(i+1, params[i]);
			}
			rs=pstm.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally
		{
			try {
				this.pstm.close();
				this.conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		return rs;
	}
	
	public int preExecute(String sql,Object...params)
	{
		
		try {
			this.pstm=conn.prepareStatement(sql);
			for(int i=0;i<params.length;i++)
			{
				this.pstm.setObject(i+1, params[i]);
			}
			return this.pstm.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally
		{
			try {
				this.pstm.close();
				this.conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return -1;
	}
}

<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值