JavaWeb连接SQLServer数据库并完成⼀个登录界⾯及其功能
设计。
⼀、JDBC连接SQLserver数据库的步骤:
  1.下载SQLserver的JDBC驱动⽂件——Microsoft JDBC Driver 4.0 for SQL Server
  2.例如下载得到的⽂件是sqljdbc_4.0.2206.,解压⽂件,将解压缩⽂件中的sqljdbc4.jar放到eclipse-
workspace\User_Message(新建的JavaWeb项⽬)\WebContent\WEB-INF\lib⽬录下
  3.加载JDBC驱动程序:在连接数据库之前,⾸先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态⽅法forName(String  className)实现,成功加载后,会将Driver类的实例注册到DriverManager类中
  ⽰例语句:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  4.创建连接对象:要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表⼀个数据库的连接,使⽤DriverManager的getConnectin(String url , String username , String password )⽅法传⼊指定的欲连接的数据库的路径、数据库的⽤户名和密码,其中url定义了连接数据库时的协议、⼦协议、数据源标识,协议——在JDBC中总是以jdbc开始,⼦协议——是桥连接的驱动程序或是数据库管理系统名称,数据源标识——标记到数据库来源的地址与连接端⼝。
  ⽰例语句:
String user="sa";
String password="woshizcy0919";
String url=
"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=User_DB";
Connection Connection(url, user, password);
  5.准备SQL语句:
  ⽰例语句:
String sql="select count(*) from t_user where username=?";
  6.执⾏SQL语句:先将SQL语句赋给preparedStatement对象,下⾯有两种执⾏SQL语句的⽅法executeQuery 、executeUpdate
          (1)ResultSet executeQuery():执⾏查询数据库的SQL语句,返回值为⼀个结果集(ResultSet)对象。
            (2)int executeUpdate():执⾏INSERT、UPDATE或DELETE语句以及SQL DDL语句(如:CREATE TABLE 和DROP TABLE等),并更新数据库,返回值为本次操作影响的⾏数,即记录数。
  ⽰例语句:
PreparedStatement preparedStatement=
connection.prepareStatement(sql);
preparedStatement.setString(1, Username());
uteQuery();
  7.操作结果集对象:
  结果集中包含符合SQL语句查询条件的所有⾏,即所有记录,并且它通过⼀套get⽅法提供了对这些⾏中数据的访问,使⽤结果集对象(resultSet)的访问⽅法获取数据。
  (1)():读取结果集中的下⼀⾏,即下⼀条记录。
  (2)Int(int index)
      Int(String columName):
      通过索引或者列名来获得查询结果集中的某⼀列的值。
  ⽰例语句:
//例:现有表User:列有id,name
String sql="select * from User";
ResultSet resultSet = null;
resultSet = uteQuery(sql);
)
{
}
  8.关闭JDBC对象:
  ⽰例语句:
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
⼆、登录界⾯及其功能设计
1.对数据库操作⽅法的接⼝
package com.jaovo.msg.dao;
import java.util.List;
import com.del.User;
public interface IUserDao
{
public void add(User user);
public void delete(int id);
public void update(User user);
public User load(int id);
public User load(String username);
public List<User> load();
}
2.实现接⼝的类
package com.jaovo.msg.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.Util.UserException;
import com.del.User;
public class UserDaoImpl implements IUserDao
{
public void add(User user)
{
//获得连接的对象
Connection Connection();
//准备sql语句
String sql="select count(*) from t_user where username=?";
//创建语句传输对象
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try
{
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1, Username());
//接收结果集
uteQuery();
//遍历结果集
())
{
Int(1)>0)
resultset 遍历
{
throw new UserException("⽤户已存在!");
}
}
sql="insert into t_user(username,nickname,password) values(?,?,?)";        preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1, Username());
preparedStatement.setString(2, Nickname());
preparedStatement.setString(3, Password());
//重写底层代码:
/*
sql="insert into
t_user(id,username,userpassword,nickname)values('"+Id()+"','"+Username()+"','"+Password()+"','"+Nickname()+"')";        Statement stmt;
Connection Connection();
ateStatement();
*/
//重写结束
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
//关闭JDBC对象
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
public void delete(int id)
{
//获得连接的对象
Connection Connection();
//准备sql语句
String sql="delete from t_user where id=?";
//创建语句传输对象
PreparedStatement preparedStatement=null;
try
{
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
public void update(User user)
{
//获得连接的对象
Connection Connection();
//准备sql语句
String sql="delete from t_user where id=?";
//创建语句传输对象
PreparedStatement preparedStatement=null;
try
{
preparedStatement=connection.prepareStatement(sql);            preparedStatement.setString(1, Username());            preparedStatement.setString(2, Nickname());            preparedStatement.setInt(3, Id());
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
public User load(int id)
{
//获得连接的对象
Connection Connection();
//准备sql语句
String sql="select * from t_user where id=?";
/
/创建语句传输对象
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
User user=null;
try
{
preparedStatement=connection.prepareStatement(sql);            preparedStatement.setInt(1, id);
uteQuery();
())
{
user=new User();
user.setId(id);
user.String("username"));                user.String("password"));                user.String("nickname"));            }
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
return user;
}
public User load(String username)
{
//获得连接的对象
Connection Connection();
//准备sql语句
String sql="select * from t_user where username=?";
/
/创建语句传输对象
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
User user=null;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。