需求:
通過html+Servlet+MyBatis,完成站點信息的添加功能。
以下是站點表的建表語句:
CREATE TABLE `websites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL DEFAULT '' COMMENT '站點名稱',
`url` varchar(255) NOT NULL DEFAULT '',
`alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
`country` char(10) NOT NULL DEFAULT '' COMMENT '國家',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-653804.html
步驟:
RegisterServlet:
package com.ambow.controller;
import com.ambow.dao.UserDao;
import com.ambow.pojo.User;
import com.ambow.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/doRegister")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.修改編碼
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//2.獲取參數(shù)
String name = request.getParameter("name");
String url = request.getParameter("url");
Integer alexa = Integer.valueOf(request.getParameter("alexa"));
String country = request.getParameter("country");
//3.構(gòu)建對象
User user = new User(name, url, alexa, country);
//4.獲取代理對象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
//5.執(zhí)行添加
PrintWriter out = response.getWriter();
int row = mapper.insertUser(user);
sqlSession.commit();
if (row != 0) {
out.println("<h1 align='center'>添加成功!??!</h1>");
} else {
out.println("<h1 align='center'>添加失?。。。?lt;/h1>");
}
}
}
UserDao:
package com.ambow.dao;
import com.ambow.pojo.User;
public interface UserDao {
int insertUser(User user);
}
User:
package com.ambow.pojo;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class User {
private int id;
private String name;
private String url;
private int alexa;
private String country;
public User(String name, String url, int alexa, String country) {
this.name = name;
this.url = url;
this.alexa = alexa;
this.country = country;
}
}
MyBatisUtil:
package com.ambow.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MyBatisUtil {
//獲取數(shù)據(jù)庫鏈接
public static SqlSession getSqlSession(){
SqlSession sqlSession = null;
//讀取主配置文件
String resource = "mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
//獲取SqlSessionFactory - 工廠對象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//獲取SqlSession - 連接對象
sqlSession = sqlSessionFactory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
return sqlSession;
}
}
UserDao.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ambow.dao.UserDao">
<insert id="insertUser">
insert into websites values(null,#{name},#{url},#{alexa},#{country})
</insert>
</mapper>
jdbc.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.2.111:3306/db1
username=root
password=Mysql666!
mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties" />
<settings>
<!--開啟數(shù)據(jù)庫日志檢測-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<typeAliases>
<!--<typeAlias type="com.ambow.pojo.User" alias="user"></typeAlias>-->
<package name="com.ambow.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="com.ambow.dao"/>
</mappers>
</configuration>
?web.xml:
<?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">
</web-app>
register.html:
<!DOCTYPE html>
<html>
<head>
<title>站點信息</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-2">
<h1><b>新增站點</b></h1>
<br>
<form action="doRegister" method="post">
<div class="mb-2 mt-2">
<label for="webname" class="form-label">站點名稱:</label>
<input type="text" class="form-control" id="webname" placeholder="請輸入站點名稱" name="webname">
</div>
<br>
<div class="mb-2">
<label for="url" class="form-label">站點網(wǎng)址:</label>
<input type="text" class="form-control" id="url" placeholder="請輸入站點網(wǎng)址" name="url">
</div>
<br>
<div class="mb-2 mt-2">
<label for="alexa" class="form-label">站點排名:</label>
<input type="text" class="form-control" id="alexa" placeholder="輸入站點的名次" name="alexa">
</div>
<br>
<div class="mb-2 mt-2">
<label for="country" class="form-label">所在國家:</label>
<select class="form-select" id="country" name="country">
<option value="中國">中國</option>
<option value="美國">美國</option>
<option value="印度">印度</option>
<option value="日本">日本</option>
<option value="德國">德國</option>
</select>
</div>
<br>
<div class="mb-4 mt-4">
<label for="sign" class="form-label">簡要介紹:</label>
<br/>
<textarea cols="40" rows="10" id="sign" name="sign"></textarea>
</div>
<button type="submit" class="btn btn-primary">添加</button>
</form>
</div>
</body>
</html>
RegTest:
package com.ambow.test;
import com.ambow.dao.UserDao;
import com.ambow.pojo.User;
import com.ambow.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
public class RegTest {
@Test
public void test01(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = new User();
user.setName("淘寶");
user.setUrl("http://taobao.com");
user.setAlexa(20);
user.setCountry("中國");
int i = userDao.insertUser(user);
sqlSession.commit();
System.out.println(i);
}
}
項目結(jié)構(gòu)如下:
?
?運行主程序:
?點擊網(wǎng)址跳轉(zhuǎn)到瀏覽器:
?填寫信息如下:
?點擊提交按鈕:
?數(shù)據(jù)庫中查看信息:
文章來源:http://www.zghlxwxcb.cn/news/detail-653804.html
?
到了這里,關(guān)于Java項目作業(yè)~ 通過html+Servlet+MyBatis,完成站點信息的添加功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!