java 把学生信息存到mysql中_用javaweb写一个注册界面,并将数据保存到后台数据库(全部完成)(课堂测试)...

这篇博客介绍了如何使用Java Web创建一个注册界面,要求包括特定格式的登录账号和密码,性别选择,学号输入等,并详细说明了数据库连接、数据插入的实现步骤。通过users.jsp、DBUtil.java、Dao.java和Servlet.java文件的代码展示了从表单验证到数据存储的完整过程。
摘要由CSDN通过智能技术生成

一、题目:WEB界面链接数据库

1.考试要求:

e7c6c02208c3ea7955f6f73516a43b14.png

1登录账号:要求由6到12位字母、数字、下划线组成,只有字母可以开头;(1分)

2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分)

3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分)

4学号:要求八位数字组成,前四位为“2018”开头,输入自己学号;(1分)

5姓名:输入自己的姓名;

6点击“添加”按钮,将学生个人信息存储到数据库中。(3分)

7可以演示连接上数据库。(2分)

二、设计思路:

1、首先在users.jsp代码中,用HTML写一个添加表单即可

2、在DBUtil.java文件编写中对数据库进行连接和关闭的操作

3、在Dao.java文件中编写向数据库中插入数据的SQL语句,以及判断Servelet.java中传递的数据是否为空。

4、在 users.jsp 文件中对表单用javascript进行form表单校验,将满足所有添加要求的数据传入Servelet.java中,用post方式传递。

5、在Selvlet.java 文件调用DBUtil.java文件和Dao.java文件,得到Dao.java中判断Servelet.java中传递的数据是否为空的函数,并进行二次表单校验。

6、Servelet.java中若数据合理,调用DBUtil.java的方法,连接数据库将数据通过参数的形式传递给在Dao.java文件中向数据库中插入数据的SQL语句,将数据添加到数据库。若添加成功,给出提示信息并返回users.jsp代码中action跳转的Servlet?method=add页面。若添加失败,给出提示信息并返回users.jsp代码中action跳转的Servlet?method=add页面。

三、源代码

1、Dao.java文件

1 packageDao;2

3 importjava.sql.Connection;4 importjava.sql.Statement;5

6 importDBUtil.DBUtil;7

8 importEntity.User;9

10 public classDao {11

12 public booleanadd(User user) {13 //将数据插入数据库的SQL语句

14 String sql = "insert into uses1 (username,password,sex,name,stuname,email,xueyuan,xi,banji,year,address,addtext) values('"+ user.getUsername() + "','"+ user.getPassword() +"','"+ user.getSex() +"','"+user.getName() +"','"+ user.getStuname() +"','"+user.getEmail()+"','"+ user.getXueyuan() +"','"+user.getXi()+"','"+user.getBanji()+"','"+user.getYear()+"','"+user.getAddress()+"','"+user.getAddtext()+"')";15 //创建数据库链接

16 Connection conn =DBUtil.getConn();17 Statement state = null;18 boolean f = false;19 int a = 0;20

21 try{22 state =conn.createStatement();23 a=state.executeUpdate(sql);24 } catch(Exception e) {25 e.printStackTrace();26 } finally{27 //关闭z 连接

28 DBUtil.close(state, conn);29 }30

31 if (a > 0) {32 f = true;33 }34 returnf;35

36 }37

38

39 }

2、DBUtil.java文件

1 packageDBUtil;2

3

4

5 importjava.sql.Connection;6 importjava.sql.DriverManager;7 importjava.sql.PreparedStatement;8 importjava.sql.ResultSet;9 importjava.sql.SQLException;10 importjava.sql.Statement;11

12 /**

13 *@authorHu14 *15 */

16 public classDBUtil {17

18 public static String db_url = "jdbc:mysql://localhost:3306/user?serverTimezone=UTC";//登录数据库

19 public static String db_user = "root";20 public static String db_pass = "123";21

22 public staticConnection getConn () {23 Connection conn = null;24

25 try{26 Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动

27 conn =DriverManager.getConnection(db_url, db_user, db_pass);28 } catch(Exception e) {29 e.printStackTrace();30 }31

32 returnconn;33 }34 /**

35 * 关闭与数据库的连接36 *@paramstate37 *@paramconn38 */

39 public static voidclose (Statement state, Connection conn) {40 if (state != null) {41 try{42 state.close();43 } catch(SQLException e) {44 e.printStackTrace();45 }46 }47

48 if (conn != null) {49 try{50 conn.close();51 } catch(SQLException e) {52 e.printStackTrace();53 }54 }55 }56

57 public static voidclose (ResultSet rs, Statement state, Connection conn) {58 if (rs != null) {59 try{60 rs.close();61 } catch(SQLException e) {62 e.printStackTrace();63 }64 }65

66 if (state != null) {67 try{68 state.close();69 } catch(SQLException e) {70 e.printStackTrace();71 }72 }73

74 if (conn != null) {75 try{76 conn.close();77 } catch(SQLException e) {78 e.printStackTrace();79 }80 }81 }82 public static void main(String[] args) throwsSQLException {83 Connection conn =getConn();84 PreparedStatement pstmt = null;85 ResultSet rs = null;86 String sql ="select * from users";87 pstmt =conn.prepareStatement(sql);88 rs =pstmt.executeQuery();89 if(rs.next()){90 System.out.println("空");91 }else{92 System.out.println("不空");93 }94 }95 }

3、User.java(用户属性类)文件

1 packageEntity;2

3 public classUser {4

5 privateString username;6 privateString password;7 privateString sex;8 privateString name;9 privateString stuname;10 privateString email;11 privateString xueyuan;12 privateString xi;13 privateString banji;14 privateString year;15 privateString address;16 privateString addtext;17

18 publicString getUsername() {19 returnusername;20 }21

22 public voidsetUsername(String username) {23 this.username =username;24 }25

26 publicString getPassword() {27 returnpassword;28 }29

30 public voidsetPassword(String password) {31 this.password =password;32 }33

34 publicString getSex() {35 returnsex;36 }37

38 public voidsetSex(String sex) {39 this.sex =sex;40 }41

42 publicString getName() {43 returnname;44 }45

46 public voidsetName(String name) {47 this.name =name;48 }49

50 publicString getStuname() {51 returnstuname;52 }53

54 public voidsetStuname(String stuname) {55 this.stuname =stuname;56 }57

58 publicString getEmail() {59 returnemail;60 }61

62 public voidsetEmail(String email) {63 this.email =email;64 }65

66 publicString getXueyuan() {67 returnxueyuan;68 }69

70 public voidsetXueyuan(String xueyuan) {71 this.xueyuan =xueyuan;72 }73

74 publicString getXi() {75 returnxi;76 }77

78 public voidsetXi(String xi) {79 this.xi =xi;80 }81

82 publicString getBanji() {83 returnbanji;84 }85

86 public voidsetBanji(String banji) {87 this.banji =banji;88 }89

90 publicString getYear() {91 returnyear;92 }93

94 public voidsetYear(String year) {95 this.year =year;96 }97

98 publicString getAddress() {99 returnaddress;100 }101

102 public voidsetAddress(String address) {103 this.address =address;104 }105

106 publicString getAddtext() {107 returnaddtext;108 }109

110 public voidsetAddtext(String addtext) {111 this.addtext =addtext;112 }113

114 publicUser() {}115

116 publicUser(String username,String password,String sex,String name,String stuname,String email,String xueyuan, String xi,String banji,String year,String address,String addtext) {117

118

119 this.username=username;120 this.password=password;121 this.sex=sex;122 this.name=name;123 this.stuname=stuname;124 this.email=email;125 this.xueyuan=xueyuan;126 this.xi=xi;127 this.banji=banji;128 this.year=year;129 this.address=address;130 this.addtext=addtext;131

132 }133

134

135 }

4、Servlet.java文件

1 packageServlet;2

3 importjava.io.IOException;4

5 importjavax.servlet.ServletException;6 importjavax.servlet.annotation.WebServlet;7 importjavax.servlet.http.HttpServlet;8 importjavax.servlet.http.HttpServletRequest;9 importjavax.servlet.http.HttpServletResponse;10

11 importDao.Dao;12

13 importEntity.User;14

15

16

17

18 @WebServlet("/Servlet")19 public class Servlet extendsHttpServlet {20 private static final long serialVersionUID = 1L;21

22

23 publicServlet() {24 super();25

26 }27 protected void service(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException {28 req.setCharacterEncoding("utf-8");29 String method = req.getParameter("method");30 if ("add".equals(method)) {31 add(req, resp);32 }33 }34

35

36 public void add(HttpServletRequest req, HttpServletResponse resp) throwsIOException, ServletException{37 req.setCharacterEncoding("utf-8");38 String username = req.getParameter("username");39 String password = req.getParameter("password");40 String sex = req.getParameter("sex");41 String name = req.getParameter("name");42 String stuname = req.getParameter("stuname");43 String email = req.getParameter("email");44 String xueyuan = req.getParameter("xueyuan");45 String xi= req.getParameter("xi");46 String banji= req.getParameter("banji");47 String year= req.getParameter("year");48 String address= req.getParameter("address");49 String addtext= req.getParameter("addtext");50 //调用用户属性类

51 User user = newUser(username,password,sex,name,stuname,email,xueyuan,xi,banji,year,address,addtext);52 //接受判断函数返回值

53 Dao dao =newDao();54 boolean f=dao.add(user);55 //提示信息

56 if(f) {57 req.setAttribute("message", "注册成功!");58 req.getRequestDispatcher("users.jsp").forward(req,resp);59 }60 else{61 req.setAttribute("message", "已有账号,重复登录!");62 req.getRequestDispatcher("users.jsp").forward(req,resp);63 }64 }65 }

5、users.jsp文件

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

Insert title here

8

9 //表单校验

10 function check() {11 flag=0;12 var rep = /^[\w\u4e00-\u9fa5]{6,8}$/; //判断字符串是否为数字和字母组合

13 var myPattern = new RegExp("^[a-zA-Z]"); //以英文字母开头

14 var username = document.getElementById("username").value;15 //alert(username.length);

16 if(!(username.length>5&&username.length<13)){17 alert("用户名长度错误!");return false;18 }19 else if(!(rep.test(username))){20 alert("用户名组成内容错误!");return false;21 }else if(!(myPattern.exec(username))){22 alert("用户名开头必须是字母!");return false;23 }24 var password = document.getElementById("password").value;25 if(password.length<8){26 alert("密码长度错误");27 return false;28 }29

30 var stuname = document.getElementById("stuname").value;31 if(stuname.length!=8){32 alert("学号长度错误!");33 return false;34 }35 if(stuname [0]=='2'&&stuname[1]=='0'&&stuname[2]=='1'&&stuname[3]=='8'){36 flag++;37 }38 else{39 alert("学号格式错误!");40 return false;41 }42

43 var email = document.getElementById("email").value;44 if(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)){45 flag++;46 }47 else{48 alert("邮箱格式错误!");49 return false;50 }51 //标志法判断是否添加成功

52 if(flag>1){53 alert("添加成功");54 return true;55 }56 else{57 alert("添加失败");58 return false;59 }60 }61

62

63

64

65

66

67

68

69 style="width: 50%;margin:auto;background:rgb(195,195,195)" bordercolor="red" >

70

71 οnsubmit="return check()">

72

当前位置:添加学生信息

73

74

75

76

登录账号:

77

78

79

80

登录密码:

81

82

83

84

性别:

85

86

87 男

88 女

89

90

91

92

93

姓名:

94

95

96

97

学号:

98

99

100

101

电子邮箱:

102

103

104

105

所在学院:

106

107

108

109

所在系:

110

111

112

113

所在班级:

114

115

116

117

入学年份(届):

118

119

120 1998

121 1999

122 2000

123 2001

124 2002

125 2003

126 2004

127 2005

128 2006

129 2007

130 2008

131 2009

132 2010

133 2011

134 2012

135 2013

136 2014

137 2015

138 2016

139 2017

140 2018

141 2019

142

143

144

145

146

生源地:

147

148

149

150

151 备注:152

153

154

155

156

157

158

159

160

161

162

163

164

165

四、程序测试

d06b88fac17541b03192b4715c426c2d.png

a3d10a2e5732da652f5d170edf476288.png

e2650e5ddb2e687f826d6e26135fe6fb.png

f7943f62b555e69d0ed329fe368610a3.png

f52444eefead9039cad8a5104f0f69a2.png

6adb61e27c68e116adf70038ef6f3db7.png

f816672d8ad74cb20fea4e02eff7ebae.png

288aea099c71c9b6ae216adcf53873fe.png

好的,我可以帮您解答这个问题。 首先,您需要下载并安装 Microsoft SQL Server 数据库,并创建一个名为 userdb 的数据库,用于存储用户信息。 然后,您需要在 Java 项目添加 SQL Server 数据库的 JDBC 驱动程序。您可以从 Microsoft 官网下载最新版本的 JDBC 驱动程序,然后将其添加到项目的类路径。 接下来,您可以编 Java 代码来连接数据库并实现登录界面功能。以下是一个示例代码: ```java import java.sql.*; public class Login { public static void main(String[] args) { String url = "jdbc:sqlserver://localhost:1433;databaseName=userdb"; String user = "username"; String password = "password"; try { Connection conn = DriverManager.getConnection(url, user, password); System.out.println("Connected to database"); String username = "testuser"; String password = "testpass"; String sql = "SELECT * FROM users WHERE username=? AND password=?"; PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, username); statement.setString(2, password); ResultSet result = statement.executeQuery(); if (result.next()) { System.out.println("Login successful"); } else { System.out.println("Login failed"); } conn.close(); } catch (SQLException e) { System.out.println("Error connecting to database"); e.printStackTrace(); } } } ``` 上面的代码使用 JDBC 驱动程序连接到 userdb 数据库,并执行一个 SQL 查询,根据提供的用户名和密码从 users 表检索用户信息。如果查询返回结果,则登录成功,否则登录失败。 您可以在此基础上构建一个完整的登录界面,用户可以输入用户名和密码,并将其传递到 Java 代码进行验证。如果验证成功,则可以跳转到应用程序的主界面,否则会显示错误消息。 希望这个示例能够帮助您完成 JavaWeb 连接 SQL Server 数据库并实现登录界面的设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值