课堂作业-添加课程(初识数据库和javaweb)
头秃了,头秃了,废了好长时间,终于学了个毛皮。闲话少说,开始正题!
我用的是eclipse java ee版本的,一开始用的是java版本的,好像是那个也可以用来写javaweb,前提是需要下载插件,经过我5次不懈的努力,终于,还是换了个软件。。。但效果还是不错的。因为是萌新,学习起来比较困难,
首先了解一下目录文件:感谢学长的分享 :https://www.cnblogs.com/zll20153246/p/7871723.html
java web架构:https://blog.csdn.net/a153375250/article/details/50935948
然后就开始下载各个软件,配置环境,参考:https://blog.csdn.net/haojun1996/article/details/86536929
这个大佬讲的很详细,按照一步一步来就可以
对于startup.bat文件,打开它就会一闪而过,结局办法:set JAVA_HOME = jdk 路径
还有打开它后乱码的问题 :找到Tomcat 里面的conf目录找到logging.properties,把里面1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8都改为1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK。乱码问题就解决了。
开始写javaweb代码了:
1,创建一个web项目文件
2,在所需要的类中写入所需要的代码:再次感谢学长
com.Bean包
package com.Bean; public class HaveClass { private String teachername; private String place; private String classname; public String getTeachername() { return teachername; } public void setTeachername(String teachername) { this.teachername = teachername; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } }
com.Dao包
package com.Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.Util.DBUtil;
import com.Bean.HaveClass;
public class ClassDaoImpl {
public void add(HaveClass claz)
{
//获得链接对象
Connection connection = DBUtil.getConnection();
if(connection==null) System.out.println("NULL!");
//准备sql语句
String sql = "insert into t_class(teachername,classname,place) values(?,?,?)";
PreparedStatement preparedStatement = null;
try {
//创建语句传输对象
preparedStatement = connection.prepareStatement(sql);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, claz.getTeachername());
preparedStatement.setString(2, claz.getClassname());
preparedStatement.setString(3, claz.getPlace());
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭资源
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
}
com.Util包
package com.Util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; public class DBUtil { public static Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Properties info = new Properties(); //定义Properties对象 info.setProperty("user","root"); //设置Properties对象属性 info.setProperty("password","2316811443"); String url = "jdbc:mysql://localhost:3306/mydatabase";//?characterEncoding=utf8 Connection connection = null; try { connection = DriverManager.getConnection(url,info); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return connection; } public static void close(Connection connection ) { try { if (connection != null) { connection.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void close(PreparedStatement preparedStatement ) { try { if (preparedStatement != null) { preparedStatement.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void close(ResultSet resultSet ) { try { if (resultSet != null) { resultSet.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
后台jsp
<%@page import="com.Util.DBUtil"%> <%@page import="com.Dao.ClassDaoImpl"%> <%@page import="com.Bean.HaveClass"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <% //接收客户端传递过来的参数 String teachername = request.getParameter("teachername"); String classname = request.getParameter("classname"); String place = request.getParameter("place"); try{ if(!teachername.trim().equals("王建民")&&!teachername.trim().equals("刘立嘉")&&!teachername.trim().equals("刘丹")&&!teachername.trim().equals("王辉")&&!teachername.trim().equals("杨子光")) { throw new Exception("不能输入规定之外的老师名称"); } else if(!place.trim().startsWith("基教")&&!place.trim().startsWith("一教")&&!place.trim().startsWith("二教")&&!place.trim().startsWith("三教")) { throw new Exception("不能输入规定之外的地点名称!"); } else { HaveClass haveclass = new HaveClass(); haveclass.setTeachername(teachername); haveclass.setClassname(classname); haveclass.setPlace(place); ClassDaoImpl classDao = new ClassDaoImpl(); classDao.add(haveclass); } }catch(Exception e){ %> <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2> <% } %> </html>
页面显示代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>课程添加页面</title> </head> <body> <form action="add.jsp" method="get"> <table align="center" border="1" width="500"> <tr> <td>课程名称 : </td> <td> <input type="text" name="classname" /> </td> </tr> <tr> <td>任课教师:</td> <td> <input type="text" name="teachername" /> </td> </tr> <tr> <td>上课地点:</td> <td> <input type="text" name="place" /> </td> </tr> <tr align="center"> <td colspan="2"> <input type="submit" value="提交" /> <input type="reset" value="重置" /> </td> </tr> </table> </form> </body> </html>
最后是项目文件目录
注意 jar 包,它是用来连接数据库的,一开始我加在
里面,试了好久,发现连接数据库失败。
然后我就把竟然包放在了lib目录下,就成功了‘
注意,连接数据库失败的话,可能原因有很多。