进行数据库连接,最后在Myeclisp7.0工具中去运行编程结果以达到用户登录进行增加、删除、修改,查询操作。
2.2系统功能设计
2.2系统功能图
第3章详细设计
3.1创建数据库,在数据库中建立用户信息表:
Createdatabasedb_user
Usedb_user
Createtabletb_user,userPassvarchar(50>,userAgeint)
3.2创建数据库连接:
importjava.sql.Connection。
importjava.sql.DriverManager。
importjava.sql.SQLException。
publicclassDBConnection{
privatestaticStringdriverName="com.mysql.jdbc.Driver"。
privatestaticStringuserName。
privatestaticStringuserPass。
privatestaticStringurl="jdbc:
mysql:
//localhost:
3306/db_user"。
publicstaticConnectiongetConnection(String_url,String_userName,
String_userPass>{
userName=_userName。
userPass=_userPass。
url=_url。
Connectionconn=null。
try{
Class.forName(driverName>。
conn=DriverManager.getConnection(url,userName,userPass>。
}catch(ClassNotFoundExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}catch(SQLExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
returnconn。
}
publicstaticConnectiongetConnection(>{
returngetConnection(url,"root","123456">。
}
publicstaticvoidcloseConnection(Connectionconn>{
if(conn!
=null>{
try{
conn.close(>。
}catch(SQLExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
}
}
}
3.3用户主要功能的实现:
importjava.sql.Connection。
importjava.sql.PreparedStatement。
importjava.sql.ResultSet。
importjava.sql.SQLException。
importjava.sql.Statement。
importjava.util.ArrayList。
importcom.softeem.dto.UserDTO。
publicclassUserDAO{
privateConnectionconn。
privateStatementst。
privateResultSetrs。
privateStringsql。
publicvoidadd(UserDTOuser>{
conn=DBConnection.getConnection(>。
try{
st=conn.createStatement(>。
sql="insertintotb_user(userName,userPass,userAge>values('"
+user.getUserName(>+"','"+user.getUserPass(>+"','"
+user.getUserAge(>+"'>"。
intm=st.executeUpdate(sql>。
if(m!
=0>{
System.out.println("添加成功">。
}
DBConnection.closeConnection(conn>。
}catch(SQLExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
}
publicvoidupdate(UserDTOuser>{
conn=DBConnection.getConnection(>。
try{
st=conn.createStatement(>。
sql="updatetb_usersetuserName='"+user.getUserName(>
+"',userPass='"+user.getUserPass(>+"',userAge='"
+user.getUserAge(>+"'whereuserId='"+user.getUserId(>
+"'"。
intm=st.executeUpdate(sql>。
if(m!
=0>{
System.out.println("修改成功">。
}
}catch(SQLExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
}
publicvoiddelete(intn>{
conn=DBConnection.getConnection(>。
try{
st=conn.createStatement(>。
sql="deletefromtb_userwhereuserId='"+n+"'"。
intm=st.executeUpdate(sql>。
if(m!
=0>{
System.out.println("删除成功">。
}
}catch(SQLExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
}
publicArrayListselectAll(>{
ArrayListlist=newArrayList(>。
conn=DBConnection.getConnection(>。
try{
st=conn.createStatement(>。
sql="select*fromtb_user"。
rs=st.executeQuery(sql>。
while(rs.next(>>{
UserDTOuser=newUserDTO(>。
user.setUserId(rs.getInt("userId">>。
user.setUserName(rs.getString("userName">>。
user.setUserPass(rs.getString("userPass">>。
user.setUserAge(rs.getInt("userAge">>。
list.add(user>。
}
}catch(SQLExceptione>{
e.printStackTrace(>。
}
returnlist。
}
publicUserDTOselectById(intn>{
UserDTOuser=newUserDTO(>。
conn=DBConnection.getConnection(>。
try{
st=conn.createStatement(>。
sql="select*fromtb_userwhereuserId='"+n+"'"。
rs=st.executeQuery(sql>。
while(rs.next(>>{
user.setUserId(rs.getInt("userId">>。
user.setUserName(rs.getString("userName">>。
user.setUserPass(rs.getString("userPass">>。
user.setUserAge(rs.getInt("userAge">>。
}
}catch(SQLExceptione>{
e.printStackTrace(>。
}
returnuser。
}
publicArrayListselectByProperty(Stringproperty,Stringvalue>{
ArrayListlist=newArrayList(>。
conn=DBConnection.getConnection(>。
PreparedStatementpst=null。
try{
if(property.equals("">||property==null||value.equals("">
||value==null>{
sql="select*fromtb_user"。
pst=conn.prepareStatement(sql>。
}else{
sql="select*fromtb_userwhere"+property+"like?
"。
pst=conn.prepareStatement(sql>。
pst.setString(1,"%"+value+"%">。
}
System.out.println(sql>。
rs=pst.executeQuery(>。
while(rs.next(>>{
UserDTOuser=newUserDTO(>。
user.setUserId(rs.getInt("userId">>。
user.setUserName(rs.getString("userName">>。
user.setUserPass(rs.getString("userPass">>。
user.setUserAge(rs.getInt("userAge">>。
list.add(user>。
}
}catch(SQLExceptione>{
e.printStackTrace(>。
}
returnlist。
}
publicbooleancheckLoginuser(UserDTOuser>{
booleanflag=false。
conn=DBConnection.getConnection(>。
try{
st=conn.createStatement(>。
//sql="select*fromtb_userwhereuserName='"+
//user.getUserName(>
//+"'anduserPass='"+user.getUserPass(>+"'"。
//查询满足userName和userPass条件的记录
sql="selectcount(*>fromtb_userwhereuserName='"
+user.getUserName(>+"'anduserPass='"
+user.getUserPass(>+"'"。
//sql="selectuserPassfromtb_userwhereuserName='"+user.getUserName(>+"'"。
//执行sql语句
rs=st.executeQuery(sql>。
//对结果集进行遍历如果查询的记录条数大于0则说明数据库存在该条记录此时改变flag的值
while(rs.next(>>{
if(rs.getInt(1>>0>{
flag=true。
}
}
}catch(SQLExceptione>{
e.printStackTrace(>。
}
returnflag。
}
}
3.4测试过程:
publicclassUserDAOTest{
@Test
publicvoidtestAdd(>{
UserDTOuser=newUserDTO(>。
user.setUserName("admin">。
user.setUserPass("123456">。
user.setUserAge(43>。
UserDAOdao=newUserDAO(>。
dao.add(user>。
}
@Test
publicvoidtestUpdate(>{
UserDTOuser=newUserDTO(>。
user.setUserId(1>。
user.setUserName("test">。
user.setUserPass("1111111">。
user.setUserAge(111>。
UserDAOdao=newUserDAO(>。
dao.update(user>。
}
@Test
publicvoiddelete(>{
UserDAOdao=newUserDAO(>。
dao.delete(1>。
}
@Test
publicvoidtestSelectAll(>{
UserDAOdao=newUserDAO(>。
ArrayListlist=dao.selectAll(>。
for(inti=0。
i。
i++>{
System.out.println(list.get(i>.getUserId(>+"\t"
+list.get(i>.getUserName(>+"\t"
+list.get(i>.getUserPass(>+"\t"
+list.get(i>.getUserAge(>>。
}
}
@Test
publicvoidtestSelectById(>{
UserDAOdao=newUserDAO(>。
UserDTOuser=dao.selectById(6>。
System.out.println(user.toString(>>。
}
@Test
publicvoidtestCheckLoginuser(>{
UserDTOuser=newUserDTO(>。
user.setUserName("Lucy">。
user.setUserPass("123456">。
UserDAOdao=newUserDAO(>。
booleanflag=dao.checkLoginuser(user>。
System.out.println(flag>。
}
}
第4章设计运行结果与分析
4.1运行结果
4.1.1用户登录界面
运行login.jsp得到的结果如下:
图3.1.1用户登陆界面
4.1.2添加用户
点击页面的增加选项,弹出如下窗口,添加新用户,用户名为admin,设置密码,用户年龄。
设置完成后,点击增加按钮。
添加用户成功后,显示页面如下:
图3.1.2增加用户
4.1.3修改用户信息
点击页面的“编辑“按钮,修改用户名为”admin“的用户信息,将其用户密码修改为123456。
修改页面如下图
图3.1.3修改用户信息
修改成功后,页面显示如下图
图3.1.3修改后用户信息
4.1.4删除用户
点击“删除”按钮,删除用户姓名为“a”,即删除。
4.1.5查询用户
查询某用户信息,查询结果如图:
图3-7用户信息
图3.1.5查询结果
4.2结果分析
本次课程设计基本达到了任务要求,用户在登录界面登录后,经过运行和调试能够成功的注册、登陆,登陆成功后,会列出所有用户的记录信息。
最后登陆对用户信息进行添加,删除,修改以及最后进行查询,都达到了预期的结果,如3.1中设计结果的运行和所得出的视图。
同时设计过程中依然存在许多不足,主要是对开发工具的不能熟练掌握和功能的运用,从而导致用户界面不够好,编程和运行时出现了些问题。
用jsp开发和java语言来进行编程以及对开发工具Myeclipse的使用得到了添加,删除,修改以及查询最终得到了用户界面基本符合课程设计的要求。
第5章设计体会与小结
通过近两个星期的软件开发工具的课程设计,让我学到了很多东西,尤其是让我学会了使用jsp的开发和进一步熟悉和掌握了java语言的编程以及对开发工具Myeclipse的使用。
在这次课程设计中,经过指导老师近两个星期的讲解,不断的丰富我们软件开发工具的知识,让我受益匪浅同时也检验了我所学习的知识,重要的是让我在平时中没有理解和掌握的东西有了进一步深入的理解。
在设计过程中,我也遇到了很多问题和困难,在与同学们相互探讨,相互学习的过程中让我逐渐掌握了解决这些困难的技巧。
我觉得课程设计,主要在于通过理论与实际的结合,提高我们平时课堂中学不到的东西,如何理论联系实际。
通过实践可以我意识到了的课堂学习与实际工作学习的差距,平时我们更应该去好好学习去掌握每个知识点才能为我们的实际动手能力打下良好的基础。
本次课程设计我深深的感受到平时学习中存在的不足,让我体会深刻,在以后的学习中我们应更加努力。
课程设计过程中我的实际能力不好,因此碰到很多问题,通过对问题的解决我的动手能力才慢慢开始熟练起来。
只有理论联系实际才能出真知,在今后的学习过程中我将继续努力去熟练掌握我们所学的课堂知识,在实际中的运用过程中才能发挥自如。
两个星期的学习让我学到了很多,感受也很深,做任何事都要一步步的熟练掌握从无到有,才能得出想要的结果和成果。
今后我将继续好好学习。
参考文献
[1]软件工程方法与实践,窦万峰,机械工业出本社,2018年7月
[2]数据库原理与应用,夏冰冰,国防工业出版社,2009.12
[3]软件工程概论,卫红春,清华大学出