JavaWeb操作Msql数据库显示数据流程(源代码+详细步骤)

本流程一共分为


教程地址:

资源地址:



一、准备工作:

1.mysql-connector-java-5.1.13-bin下载地址:http://pan.baidu.com/s/1kVPcfbx

2.将mysql-connector-java-5.1.13-bin.jar拷贝进项目根目录Ctrl+V,右键刚才的.jar包→Build Path→Add to Build Path,添加完成。


JavaWeb操作Msql数据库显示数据流程(源代码+详细步骤)_第1张图片

数据库对应表


二、创建包名为com.seesun2012.Model,添加User类,复制如下代码:

  
  
  
  
package com . seesun2012 . Model ; //根据所在的不同包名进行修改
public class User
{
//定义字段,根据数据库中对应表不同字段会有所不同
private int Id ; //用户的编号
private String Name ; //用户的真实姓名
private String Account ; //用户的用户名
private String Password ; //用户的密码
private String Grend ; //用户的性别
private String Sfz ; //用户的身份证
private int Type ; //用户的类别
//无参构造函数
public User () {
super ();
}
//带指定参数构造函数,用于传递参数
public User ( String name , String account , String password , String grend ,
String sfz , int type ) {
super ();
Name = name ;
Account = account ;
Password = password ;
Grend = grend ;
Sfz = sfz ;
Type = type ;
}
//构造函数,用于传递参数
public User ( int id , String name , String account , String password ,
String grend , String sfz , int type ) {
super ();
Id = id ;
Name = name ;
Account = account ;
Password = password ;
Grend = grend ;
Sfz = sfz ;
Type = type ;
}
//封装字段,用于请求和发送通讯
public int getId () {
return Id ;
}
public void setId ( int id ) {
Id = id ;
}
public String getName () {
return Name ;
}
public void setName ( String name ) {
Name = name ;
}
public String getAccount () {
return Account ;
}
public void setAccount ( String account ) {
Account = account ;
}
public String getPassword () {
return Password ;
}
public void setPassword ( String password ) {
Password = password ;
}
public String getGrend () {
return Grend ;
}
public void setGrend ( String grend ) {
Grend = grend ;
}
public String getSfz () {
return Sfz ;
}
public void setSfz ( String sfz ) {
Sfz = sfz ;
}
public int getType () {
return Type ;
}
public void setType ( int type ) {
Type = type ;
}
}



三、新建一个包名为com.seesun2012.Util,添加DbUtils类,复制如下代码:

只需要修改包名、数据库名称、链接的用户名以及密码即可进行操作

  
  
  
  
package com . seesun2012 . Util ; //所在的包名(直接导包需要修改)
import java.sql.* ; //引用
public class DbUtils {
//定义和初始化
private static Connection con = null ;
private static PreparedStatement ps = null ;
private static ResultSet rs = null ;
private static final String driver = "com.mysql.jdbc.Driver" ;
//"students2"为数据库名称(需要修改)
private static final String url = "jdbc:mysql://localhost:3306/students" ;

//打开数据库驱动程序
static
{
//尝试打开数据库驱动程序
try
{
Class . forName ( driver ); //加载数据库驱动程序
}
catch ( ClassNotFoundException e )
{
e . printStackTrace (); //打印异常处理
}
}

//链接数据库
public static Connection getConnection ()
{
try
{
//root为用户名,"seesun2012"为数据库链接密码(需要修改)
con = DriverManager . getConnection ( url , "root" , "seesun2012" );
}
catch ( SQLException e )
{
e . printStackTrace (); //打印异常处理
}
return con ;
}

//无参查询方法
public static ResultSet getResultSet ( String sql )
{
con = getConnection (); //打开链接,链接数据库
try
{
ps = con . prepareStatement ( sql ); //执行sql语句
rs = ps . executeQuery (); //将执行结果赋值给rs
}
catch ( SQLException e )
{
e . printStackTrace ();
}
//返回执行结果
return rs ;
}

//带参数查询方法
public static ResultSet getResultSet ( String sql , Object [] params )
{
con = getConnection ();
try
{
ps = con . prepareStatement ( sql ); //执行sql语句
for ( int i = 0 ; i < params . length ; i ++)
{
ps . setObject ( i + 1 , params [ i ]); //遍历结果
}
rs = ps . executeQuery (); //返回执行结果
}
catch ( SQLException e )
{
e . printStackTrace ();
}
return rs ; //返回执行结果
}
//增删改方法,返回一个整数
public static int modifyEntiy ( String sql , Object [] params )
{
int num = 0 ;
con = getConnection ();
try
{
ps = con . prepareStatement ( sql ); //执行sql语句
for ( int i = 0 ; i < params . length ; i ++)
{
ps . setObject ( i + 1 , params [ i ]);
}
num = ps . executeUpdate (); //返回查询
}
catch ( SQLException e )
{
e . printStackTrace ();
}
return num ; //返回一个int整型
}

//关闭数据库方法(释放内存)
public static void closeAll ()
{
//如果rs不为空,尝试关闭rs
if ( rs != null )
{
try
{
rs . close (); //执行关闭
rs = null ; //清空rs
}
catch ( SQLException e )
{
e . printStackTrace (); //打印异常处理
}
}
//如果ps不为空,尝试关闭ps
if ( ps != null )
{
try
{
ps . close (); //执行关闭
ps = null ;
}
catch ( SQLException e )
{
e . printStackTrace ();
}
}
//如果con不为空,尝试关闭con
if ( con != null )
{
try
{
con . close (); //执行关闭
con = null ;
}
catch ( SQLException e )
{
e . printStackTrace ();
}
}
}
}


四、新建包名为com.seesun2012.DAO,添加UserDao类,复制如下代码:

  
  
  
  
package com . seesun2012 . DAO ; //包名(根据所在不同的包进行更改)
import java.awt.image.DataBuffer ;
import java.sql.ResultSet ;
import java.util.ArrayList ;
import java.util.List ;
import com.seesun2012.Model.User ;
import com.seesun2012.Util.DbUtils ;

public class UserDao {
//定义sql空字符串
private static String sql = "" ;
public List < User > FindAll ()
{
sql = "select * form user" ; //添加sql语句
ResultSet rs = DbUtils . getResultSet ( sql ); //执行sql语句
List < User > list = new ArrayList < User >();
//异常处理
try
{
//遍历数据
while ( rs . next ())
{
//初始化User对象
User u = new User ();
u . setId ( rs . getInt ( 1 ));
u . setName ( rs . getString ( 2 ));
u . setAccount ( rs . getString ( 3 ));
u . setPassword ( rs . getString ( 4 ));
u . setGrend ( rs . getString ( 5 ));
u . setSfz ( rs . getString ( 6 ));
u . setType ( rs . getInt ( 7 ));
list . add ( u );
}
}
catch ( Exception e )
{
e . printStackTrace (); //异常处理打印
}
finally
{
DbUtils . closeAll (); //无论是否执行try或者是catch都要执行finally
}
return list ; //返回list
}
//带参数查询(根据id查询单个用户的信息)
public User FindAllById ( int id )
{
sql = "select * form user where Id=?" ; //?号为占位符,站住用户穿过来的值
Object [] params ={ id };
ResultSet rs = DbUtils . getResultSet ( sql , params );
//初始化User对象
User u = new User ();
//异常处理
try
{
u . setId ( rs . getInt ( 1 ));
u . setName ( rs . getString ( 2 ));
u . setAccount ( rs . getString ( 3 ));
u . setPassword ( rs . getString ( 4 ));
u . setGrend ( rs . getString ( 5 ));
u . setSfz ( rs . getString ( 6 ));
u . setType ( rs . getInt ( 7 ));
}
catch ( Exception e )
{
e . printStackTrace (); //异常处理打印
}
finally
{
DbUtils . closeAll (); //无论是否执行try或者是catch都要执行finally
}
return u ; //返回u
}

}
六、新建com.seesun2012.Servlet包,添加UserServlet类,继承HttpServlet父类,或者复制代码如下:

根据字段要求不同进行更改

  
  
  
  
package com . seesun2012 . Servlet ;

import java.io.IOException ;
import javax.servlet.ServletException ;
import javax.servlet.http.HttpServlet ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;

import com.seesun2012.DAO.UserDao ;

public class UserServlet extends HttpServlet {

@Override
protected void doGet ( HttpServletRequest request , HttpServletResponse reponse )
throws ServletException , IOException {
// TODO Auto-generated method stub
//执行doPost()方法
doPost ( request , reponse );
}

@Override
protected void doPost ( HttpServletRequest request , HttpServletResponse reponse )
throws ServletException , IOException {
// TODO Auto-generated method stub
//获取和接收页面传过来的值,Integer.parseInt()为强制类型转换为int类型
int id = Integer . parseInt ( request . getParameter ( "id" ));
//初始化UserDao对象,调用FindAll()方法显示所有数据
UserDao ud = new UserDao ();
ud . FindAll ();
ud . FindAllById ( id ); //根据JSP页面传过来的值按条件进行查询
/*UserServlet类在web.xmlz中的默认配置:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>UserServlet</servlet-name>
<servlet-class>com.seesun2012.Servlet.UserServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/servlet/UserServlet</url-pattern>
</servlet-mapping>
*/
    
    
    
    
//接页面或者是桌面程序,具体方法后续上传
//...

}
}

七、根据不同需求,后期上传更多显方法,更有视频上传,尽请期待哦(有用请给个赞或者是评论哦)!





你可能感兴趣的:(java,jsp,数据库,Web,jdbc)