直接开撸(因为没什么好说,我自己都不太会,嘻嘻)
一、准备
1.mysql的jar包
下载地址:https://www.runoob.com/java/java-mysql-connect.html
2.IDEA编译器
3.tomcat
下载地址:https://tomcat.apache.org/download-90.cgi,注意你的电脑是32位还是64位的,看着下
二、了解分层开发思想(放上大佬的图片)
我自己项目的结构(偷懒少了个服务层)
User.java代码
(这个可以不写的,我这个瞎几把写着,没用的)
三、开撸
创建项目
package domain;
//User.java代码
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
userDao.java的diamante。这个是dao层,处理sql语句的,例如:用户注册了,在dao层写上insert语句
我里面写了增删查改,喜欢用哪种就用哪种
package UserDao;
import Utils.DButils;
import domain.User;
import org.junit.Test;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class userDao {
public void select(String username ,String password){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = DButils.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from users where "+username+"and"+password);
List<User> list = new ArrayList<User>();
while (rs.next()){
User u = new User();
u.setUsername(rs.getString(1));
u.setPassword(rs.getString(2));
}
for (User user :list){
System.out.println(user);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DButils.closeAll(rs,stmt,conn);
}
}
public void insert(String username,String password){
Connection conn = null;
Statement stmt = null;
try {
conn = DButils.getConnection();
stmt = conn.createStatement();
int i = stmt.executeUpdate("insert into users values (" + username + "," +password + ")");
if(i>0){
System.out.println("success");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DButils.closeAll(null,stmt,conn);
}
}
@Test
public void update(){
Connection conn = null;
Statement stmt = null;
try {
conn = DButils.getConnection();
stmt = conn.createStatement();
int i = stmt.executeUpdate("update users set username ='mike',password='123546' where username ='jerry '");
if(i>0){
System.out.println("success");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DButils.closeAll(null,stmt,conn);
}
}
@Test
public void delete(){
Connection conn = null;
Statement stmt = null;
try {
conn = DButils.getConnection();
stmt = conn.createStatement();
int i = stmt.executeUpdate("delete from users where username='mike'");
if(i>0){
System.out.println("success");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DButils.closeAll(null,stmt,conn);
}
}
}
register.java的代码。这个是servlet,记得创建的时候选择servlet
package Servlet;
import UserDao.userDao;
import java.io.IOException;
public class regServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
//获取表单数据
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+"+"+password);
//注册
userDao ud = new userDao();
ud.insert(username,password);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
}
}
DBuitls.java的代码,这是一个工具类,封装好了连接数据库的代码
在这里插入代码片
package Utils;
import org.junit.Test;
import java.sql.*;
import java.util.ResourceBundle;
public class DButils {
private static String url;
private static String username;
private static String password;
static {
//此对象用于加载dbinfo.properties资源文件
ResourceBundle rb = ResourceBundle.getBundle("dbinfo");
String driverClass = rb.getString("driverClass");
url =rb.getString("url");
username =rb.getString("username");
password =rb.getString("password");
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//得到连接的方法
public static Connection getConnection() throws Exception {
return DriverManager.getConnection(url,username,password);
}
//关闭资源的方法
@Test
public static void closeAll(ResultSet rs , Statement stmt,Connection conn){
if (rs!= null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!= null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
properties的创建方式
dbinfo.properties 的代码(密码自己写,3306/后面接着是你要连接数据库的名字)
driverClass = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/testjdbc
username = root
password =
index.jsp的代码,主要是form里面的东西,其他都是配置好的
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form action="http://localhost:8080/web10/reg" method="post" >
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
最后配置web.xml(就是配置servlet和servlet-mapping)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>regServlet</servlet-name>
<servlet-class>Servlet.regServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>regServlet</servlet-name>
<url-pattern>/reg</url-pattern>
</servlet-mapping>
</web-app>
配置一下tomcat
加号
下面改成你项目名称,然后就配置完成
最后导入jar包
找到你jar包路径,然后狂点OK。
遇到错误就alt+回车。
然后就可以了,这个东西可以解决大部分学生的作业
四、最后提一下
1.我的dao层的mysql语句没有用框架,还是用的字符串拼接
2.dao层里面的方法可以加参数,但拼接的时候要小心
有不懂的可以留言