好久都没有写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;
}
}
<