JAVA课程设计模块设计与编程示例Word格式.docx

上传人:b****7 文档编号:21946161 上传时间:2023-02-01 格式:DOCX 页数:25 大小:38.65KB
下载 相关 举报
JAVA课程设计模块设计与编程示例Word格式.docx_第1页
第1页 / 共25页
JAVA课程设计模块设计与编程示例Word格式.docx_第2页
第2页 / 共25页
JAVA课程设计模块设计与编程示例Word格式.docx_第3页
第3页 / 共25页
JAVA课程设计模块设计与编程示例Word格式.docx_第4页
第4页 / 共25页
JAVA课程设计模块设计与编程示例Word格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

JAVA课程设计模块设计与编程示例Word格式.docx

《JAVA课程设计模块设计与编程示例Word格式.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计模块设计与编程示例Word格式.docx(25页珍藏版)》请在冰豆网上搜索。

JAVA课程设计模块设计与编程示例Word格式.docx

Classinfo>

getAll();

fenyeList(intpage);

intfindCount();

}

第四步.编写业务层.业务层用于业务数据的处理并完成相应的“业务层”功能。

本例中的业务层是ClassinfoServiceImp.java。

业务层编写完后以提供web层调用。

第五步.编写表示层(web层).表示层是采用可视化的界面形式显示各种业务处理上的数据,它主要调用业务层中的ClassinfoServiceImp来完成数据操作功能,如增加、删除、查询、修改等。

本例Web层程序是ClassinfoServlet.java。

下面是核心代码解释:

因为在修改时要解决中文乱码问题,所以先设置request的编码格式。

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{

request.setCharacterEncoding("

UTF-8"

);

Stringmethod=request.getParameter("

method"

if(method.equals("

add"

)){

add(request,response);

}elseif(method.equals("

delete"

delete(request,response);

listall"

listall(request,response);

update"

update(request,response);

fenye"

fenyelistall(request,response);

}

}

在增删改查中稍有困难的是删除和修改在一块实现。

主要代码如下。

<

scripttype="

text/javascript"

>

functionCheckAll(elementsA,elementsB){

for(i=0;

i<

elementsA.length;

i++){

elementsA[i].checked=true;

if(elementsB.checked==false){

for(j=0;

j<

j++){

elementsA[j].checked=false;

}

//判断用户是否选择了要删除的记录,如果是,则提示“是否删除”;

否则提示“请选择要删除的记录”

functioncheckdel(delid,formname){

varflag=false;

delid.length;

if(delid[i].checked){

flag=true;

break;

if(!

flag){

alert("

请选择要删除的记录!

"

returnfalse;

}else{

if(confirm("

确定要删除吗?

)){

formname.submit();

/script>

formaction="

${pageContext.request.contextPath}/ClassinfoServlet?

method=delete"

method="

post"

name="

frm"

tableframe="

border"

width="

60%"

<

tr>

<

td>

班级编号<

/td>

年级编号<

班级名称<

删除<

修改<

/tr>

c:

forEachvar="

c"

items="

${Classinfos}"

${c.classID}<

${c.gradeID}<

${c.className}<

td>

inputname="

delid"

type="

checkbox"

class="

noborder"

value="

${c.classID}"

ahref="

${pageContext.request.contextPath}/ChangeServlet?

classID=${c.classID}&

kind=banji"

target="

right"

/a>

/c:

forEach>

/table>

footer>

onClick="

CheckAll(frm.delid,frm.checkbox)"

[全选/反选][<

a

style="

color:

red;

cursor:

pointer;

onClick="

checkdel(frm.delid,frm)"

]

divid="

ch"

style="

display:

none"

0"

/div>

divwidth="

98%"

align="

center"

padding-top:

10px;

${bar}

!

--层ch用于放置隐藏的checkbox控件,因为当表单中只是一个checkbox控件时,应用javascript获得其length属性值为undefine-->

/footer>

/form>

注:

一个jsp里可以有多个表单。

本例中还有一个值得学习的地方是把数据分页。

用mysql和sqlserver数据库实现的方式是不同的。

本例还有两个filter类。

CheckLoginFilter.java是用来阻止没有登录的用户进入后台管理。

后来发现一个问题,就是在登录后,然后退出,再在浏览器里访问main.jsp还是可以进入后台,然后创建一个Nocachefilter.java来阻止浏览器缓存。

对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

附录:

1.数据库连接对象(Dbconnection.java)

packagestu.utils;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importorg.junit.Test;

publicclassDbconnection{

protectedstaticStringdbClassName="

com.microsoft.sqlserver.jdbc.SQLServerDriver"

;

protectedstaticStringdbUrl="

jdbc:

sqlserver:

//127.0.0.1:

1433;

+"

DatabaseName=DB_Student"

protectedstaticStringdbUser="

sa"

protectedstaticStringdbPwd="

1234"

publicConnectionconnect=null;

publicStatementstmt=null;

publicResultSetrs=null;

@Test

publicConnectiongetConnection(){

Connectionconn=null;

try{

if(conn==null){

Class.forName(dbClassName).newInstance();

}catch(Exceptionee){

//System.exit(0);

conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);

if(conn==null)

System.out.println("

数据库名称错误"

Statementst=conn.createStatement();

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

System.out.println("

数据库连接错误"

returnconn;

publicResultSetexecuteQuery(Stringsql){

connect=getConnection();

stmt=connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery(sql);

System.err.println(e.getMessage());

returnrs;

//执行添加

publicintexecuteUpdate(Stringsql){

intresult=0;

try{

connect=getConnection();

stmt=connect.createStatement();

result=stmt.executeUpdate(sql);

//System.out.print("

添加成功"

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

//e.printStackTrace();

result=0;

stmt.close();

e.printStackTrace();

returnresult;

publicvoidclose(){

if(rs!

=null)

rs.close();

if(stmt!

stmt.close();

if(connect!

connect.close();

2.数据实体JavaBean(Classinfo.java)

packagestu.domain;

publicclassClassinfo{

publicstaticfinalintPAGE_SIZE=2;

privateStringclassID;

privateStringgradeID;

privateStringclassName;

publicStringgetClassID(){

returnclassID;

publicvoidsetClassID(StringclassID){

this.classID=classID;

publicStringgetGradeID(){

returngradeID;

publicvoidsetGradeID(StringgradeID){

this.gradeID=gradeID;

publicStringgetClassName(){

returnclassName;

publicvoidsetClassName(StringclassName){

this.className=className;

3.抽象数据接口(ClassinfoDao.java)

packagestu.dao;

importjava.util.List;

importstu.domain.Classinfo;

4.数据访问层(Classinfoimp.java):

实现了ClassinfoDao接口

packagestu.dao.imp;

importjava.sql.PreparedStatement;

importjava.util.ArrayList;

importstu.dao.ClassinfoDao;

importstu.domain.User;

importstu.utils.Dbconnection;

publicclassClassinfoimpimplementsClassinfoDao{

publicvoidadd(Classinfoclassinfo){

Dbconnectionconn=newDbconnection();

Stringsql="

Insertinto[tb_classinfo]values('

+classinfo.getClassID()+"

'

'

+classinfo.getGradeID()+"

+classinfo.getClassName()+"

)"

conn.executeUpdate(sql);

conn.close();

publicvoiddelete(StringclassID){

deletetb_classinfowhereclassID='

+classID+"

publicvoiduptate(StringclassID,StringgradeID,StringclassName){

updatetb_classinfosetgradeID='

+gradeID+"

className='

+className+"

whereclassID='

publicClassinfofind(StringclassID){

Classinfocl=newClassinfo();

select*fromtb_classinfowhereclassID='

ResultSetrs=conn.executeQuery(sql);

while(rs.next()){

cl.setClassID(rs.getString

(1));

cl.setGradeID(rs.getString

(2));

cl.setClassName(rs.getString(3));

cl.setClassID(classID);

returncl;

publicList<

getAll(){

select*fromtb_classinfo"

List<

list=newArrayList<

();

Classinfocl=newClassinfo();

list.add(cl);

returnlist;

//SELECTTOP30*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1