随着eclipse崩掉了,又开始了配环境之路。
首先就是如果你的eclipse遇到这种情况,从个人经验来看,是JDK的问题,可能是版本问题,我卸载JDK后重新安装了就好了,因为用IDEA的时候安装了好多东西,导致eclipse不能用了。
第二点是JSP,记住<% %>为脚本片段,用于写java代码,<%! %>叫做声明,可以用作定义函数,<%= %>为脚本表达式。在其中有几种常用的方法:
String schema=request.getScheme();//获取协议名称
String servename=request.getServerName();//获取服务器名称
int port=request.getServerPort();//获取服务器端口号
String path=request.getContextPath();//获取工程名
String username=request.getParameter("username");//获取参数
request.getRequestDispatcher("/success.jsp").forward(request, response);//转发
response.sendRedirect("/demo2/fail.jsp");//重定向
第三点是Servlet,首先是配置虚拟访问路径,@WebServlet("/MainServlet")
其次在Servlet中,要重写doGet方法和doPost方法,另外提一下复选框数据的传入和输出
接下来是JDBC,在JDBC的书写上面我就是按照一定的套路来的,初始的增删改查就是这样。
public class UserDaoImpl {
@Test
public void InsertUser() throws Exception { //添加
//1导入驱动包
//2加载驱动
Class.forName("com.mysql.jdbc.Driver");
//3铺管道,建立Java到MySQL链接
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
//4创建车
Statement st= conn.createStatement();
//5将sql装车发送到mysql数据库中去
String sql="INSERT INTO users SET id=2,username='zhang',psw='123'";
int flag=st.executeUpdate(sql);
if(flag>=1)
System.out.println("插入成功");
else {
System.out.println("插入失败");
}
//6释放资源
st.close();
conn.close();
}
@Test
public void DeletetUser() throws Exception { //删除
//1导入驱动包
//2加载驱动
Class.forName("com.mysql.jdbc.Driver");
//3铺管道,建立Java到MySQL链接
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
//4创建车
Statement st= conn.createStatement();
//5将sql装车发送到mysql数据库中去
String sql="DELETE FROM users WHERE username='zhang'";
int flag=st.executeUpdate(sql);
if(flag>=1)//受影响的行数
System.out.println("删除成功");
else {
System.out.println("删除失败");
}
//6释放资源
st.close();
conn.close();
}
@Test
public void UpdateUser() throws Exception { //修改
//1导入驱动包
//2加载驱动
Class.forName("com.mysql.jdbc.Driver");
//3铺管道,建立Java到MySQL链接
Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
//4创建车
Statement st= conn.createStatement();
//5将sql装车发送到mysql数据库中去
String sql="UPDATE users SET id=3 WHERE username='zhang'";
int flag=st.executeUpdate(sql);
if(flag>=1)//受影响的行数
System.out.println("删除成功");
else {
System.out.println("删除失败");
}
//6释放资源
st.close();
conn.close();
}
@Test
public void SelectAll() throws Exception {
//1导入驱动包
//2加载驱动
Class.forName("com.mysql.jdbc.Driver");
//3铺管道,建立Java到MySQL链接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
//4创建车
Statement st=conn.createStatement();
//5将sql装车发送到mysql数据库中去
String sql="SELECT * FROM users";
ResultSet rs=st.executeQuery(sql);//结果集
while(rs.next())
{
long id=rs.getLong("id");
String username=rs.getString("username");
String psw=rs.getString("psw");
System.out.println(id+" "+username+" "+psw);
}
//6释放资源
rs.close();
st.close();
conn.close();
}
}
如果想更规范一些,写成这样更好。
@Test
public void SelectAll2() throws Exception {
Connection conn=null;
Statement st=null;
ResultSet rs=null;
//1导入驱动包
try {
//2加载驱动
Class.forName("com.mysql.jdbc.Driver");
//3铺管道,建立Java到MySQL链接
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/login?useSSL=false", "root", "root");
//4创建车
st=conn.createStatement();
//5将sql装车发送到mysql数据库中去
String sql="SELECT * FROM users";
rs=st.executeQuery(sql);//结果集
while(rs.next())
{
long id=rs.getLong("id");
String username=rs.getString("username");
String psw=rs.getString("psw");
System.out.println(id+" "+username+" "+psw);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("发生错误了");
e.printStackTrace();
}
finally {
//6释放资源
rs.close();
st.close();
conn.close();
}
}
如果你在执行时遇到Sat Jan 01 15:12:22 CST 2022 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.这个大概意思就是加载驱动的时候没有配饰SSL配置项,不会影响输出结果,在创建链接时加上就可以了。
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/login?useSSL=false", "root", "root");