大纲:
一、Maven引入需要的JAR包(配置pom.xml文件(导包))
进入网站,输入你要用的包名称,复制源代码,粘贴即可导入↓
http://mvnrepository.com/artifact/mysql/mysql-connector-java/6.0.6
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spring-mybatis-study</groupId>
<artifactId>com.study</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>com.study Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!--Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<!-- spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- mysql 连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
</dependencies>
<build>
<finalName>com.study</finalName>
</build>
</project>
二、建立SpringContext配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<mvc:annotation-driven />
<!-- 扫描controller (控制)-->
<context:component-scan base-package="org.tarena.controller" />
<!-- 扫描viewResolver (视图)-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property><!-- 文件路径(必配) -->
<property name="suffix" value=".jsp"></property><!-- 指定该目录下所有jsp文件 -->
</bean>
</beans>
三、配置mybatis-config文件
<?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>
<!-- 和spring整合后 environments将废除 -->
<environments default="environment">
<environment id="environment">
<!-- 使用JDBC事务管理,事务控制由mybatis -->
<transactionManager type="JDBC"/>
<!-- 数据库连接池,由mybatis -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/> //修改为你的数据库信息
<property name="url" value="jdbc:mysql://127.0.0.1:3306/active_log?user=root&password=123"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--加载SQL定义文件 -->
<mappers>
<mapper resource="sqlmap/EmpMapper.xml"/>
</mappers>
</configuration>
四、写好Model文件:
package org.tarena.model;
/**
* Created by CloudZou on 3/16/2018.
*/
import java.math.BigInteger;
import java.util.Date;
public class Emp {
private String id;
private String user_id;
private String relatable_type;
private String relatable_id;
private String description;
private double lon;
private double lat;
private Date create_time;
private String create_user_id;
private BigInteger update_time;
private String update_user_id;
private Boolean deleted;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getRelatable_type() {
return relatable_type;
}
public void setRelatable_type(String relatable_type) {
this.relatable_type = relatable_type;
}
public String getRelatable_id() {
return relatable_id;
}
public void setRelatable_id(String relatable_id) {
this.relatable_id = relatable_id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public double getLon() {
return lon;
}
public void setLon(double lon) {
this.lon = lon;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public Date getCreate_time() {
return create_time;
}
public void setCreate_time(Date create_time) {
this.create_time = create_time;
}
public String getCreate_user_id() {
return create_user_id;
}
public void setCreate_user_id(String create_user_id) {
this.create_user_id = create_user_id;
}
public BigInteger getUpdate_time() {
return update_time;
}
public void setUpdate_time(BigInteger update_time) {
this.update_time = update_time;
}
public String getUpdate_user_id() {
return update_user_id;
}
public void setUpdate_user_id(String update_user_id) {
this.update_user_id = update_user_id;
}
public Boolean getDeleted() {
return deleted;
}
public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}
}
五、写好 MyBatisUtil文件方便Mybatis使用
package org.tarena;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
/**
* Created by CloudZou on 3/16/2018.
*/
public class MyBatisUtil {
public static SqlSession getSqlSession(){
SqlSessionFactoryBuilder builder = new
SqlSessionFactoryBuilder();
String conf="mybatis-config.xml";
InputStream confStream = MyBatisUtil.class.getClassLoader().getResourceAsStream(conf);
SqlSessionFactory factory=builder.build(confStream);
SqlSession session = factory.openSession();
return session;
}
}
六、写好JSP文件
<%--
Created by IntelliJ IDEA.
User: TTOP
Date: 2018/3/19
Time: 1:14
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body style=" background-color: aquamarine">
<form action="list.do" >
<input type="submit" value="查看">
</form>
<form action="delete.do" >
<input type="submit" value="删除">
</form>
<form action="update.do" >
<input type="submit" value="更新">
</form>
<form action="add.do" >
<input type="submit" value="增加">
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: TTOP
Date: 2018/3/19
Time: 1:27
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>增添页面</title>
</head>
<body style="background-color: aquamarine ">
<form action="add.do" method="post">
id:<input type="text" name="id"> <br/>
uer_id:<input type="text" name="user_id"> <br/>
relatable_type:<input type="text" name="relatable_type"> <br/>
relatable_id:<input type="text" name="relatable_id"> <br/>
description:<input type="text" name="description"> <br/>
create_user_id:<input type="text" name="create_user_id"> <br/>
update_time:<input type="text" name="update_time"> <br/>
update_user_id:<input type="text" name="update_user_id"> <br/>
deleted:<input type="text" name="deleted"> <br/>
<input type="submit" value="确定添加">
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: TTOP
Date: 2018/3/19
Time: 1:27
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>删除页面</title>
</head>
<body style="background-color: aquamarine">
<form action="delete.do" method="post">
删除Id:<input type="text" name="delete_id"> <br/>
<input type="submit" value="确定删除">
</form>
</body>
</html>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>查看表</title>
</head>
<body style="background-color: aquamarine">
<table border="1" cellspacing="0" cellpadding="10" margin-left: auto;
margin-right: auto; >
<tr>
<th>ID</th>
<th>User_id</th>
<th>create_time</th>
<th>description</th>
</tr>
<c:forEach items="${list}" var="emp">
<tr>
<th>${emp.id}</th>
<th>${emp.user_id}</th>
<th>${emp.create_time}</th>
<th>${emp.description}</th>
</tr>
</c:forEach>
</table>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: TTOP
Date: 2018/3/19
Time: 10:10
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body style=" background-color: aquamarine">
<form action="update.do" method="post">
需要更新的Id:<input type="text" name="delete_id"> <br/>
更新描述内容:<input type="text" name="description"> <br/>
<input type="submit" value="更新">
</body>
</html>
七、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--读取Spring配置-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:SpringContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 中文乱码问题 -->
<filter>
<filter-name>myfilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- spring - web 提供 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>*.do</url-pattern>
<!-- 也可用<url-pattern>springmvc</url-pattern> -->
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
八、写个测试,是否能成功操作数据库
import java.io.IOException;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.tarena.MyBatisUtil;
import org.tarena.model.Emp;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestCost {
public static void main(String[] args) throws IOException, ParseException {
SqlSession session = MyBatisUtil.getSqlSession();
Date day = new Date();
BigInteger bigInteger = new BigInteger("32");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String nowTime = df.format(day);
Date time = df.parse(nowTime);
Emp emp = new Emp();
emp.setId("6");
emp.setUser_id("1");
emp.setRelatable_type("1");
emp.setRelatable_id("5");
emp.setDescription("456456");
emp.setLon(13);
emp.setLat(56.0);
emp.setCreate_user_id("23");
emp.setCreate_time(time);
emp.setUpdate_time( bigInteger);
emp.setUpdate_user_id("156");
emp.setDeleted(true);
session.insert("add", emp);
session.commit();
}
}
九、写控制(可以分开写一个JSP 一个controler 也可以 一对多写)
package org.tarena.controller;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.jdbc.Null;
import org.apache.ibatis.reflection.SystemMetaObject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.tarena.MyBatisUtil;
import org.tarena.model.Emp;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@Controller
public class ListController {
SqlSession session = MyBatisUtil.getSqlSession();
@RequestMapping("first.do")
public String toFirst() {
return "first";
}
@RequestMapping("list.do")
public String execute(ModelMap model) {
List<Emp> list = session.selectList("findAll");
model.addAttribute("list", list);
return "list";
}
@RequestMapping("delete.do")
public String delete(HttpServletRequest request,
Model model) {
String id = request.getParameter("delete_id");
if (id != null) {
session.delete("delete", id);
session.commit();
List<Emp> list = session.selectList("findAll");
model.addAttribute("list", list);
return "list";
}
return "delete";
}
@RequestMapping("update.do")
public String update(HttpServletRequest request,
Model model) {
String id = request.getParameter("delete_id");
String description = request.getParameter("description");
if (id != null) {
Emp emp = new Emp();
emp.setId(id);
emp.setDescription(description);
session.update("update", emp);
List<Emp> list = session.selectList("findAll");
model.addAttribute("list", list);
return "list";
}
return "update";
}
@RequestMapping("add.do")
public String add(HttpServletRequest request,
Model model) throws IOException, ParseException {
String id = request.getParameter("id");
String user_id = request.getParameter("user_id");
String relatable_type = request.getParameter("relatable_type");
String relatable_id = request.getParameter("relatable_id");
String description = request.getParameter("description");
String create_user_id = request.getParameter("create_user_id");
String update_time = request.getParameter("update_time");
String update_user_id = request.getParameter("update_user_id");
String deleted = request.getParameter("deleted");
Boolean b = Boolean.getBoolean(deleted);
/*double LON = Double.parseDouble(lon);
double LAT = Double.parseDouble(lat);
BigInteger bd = new BigInteger(update_time);*/
Date day = new Date();
BigInteger bigInteger = new BigInteger("32");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String nowTime = df.format(day);
Date time = df.parse(nowTime);
if(id!=null) {
Emp emp = new Emp();
emp.setId(id);
emp.setUser_id(user_id);
emp.setRelatable_type(relatable_type);
emp.setRelatable_id(relatable_id);
emp.setDescription(description);
emp.setLon(13);
emp.setLat(56.0);
emp.setCreate_user_id(create_user_id);
emp.setCreate_time(time);
emp.setUpdate_time(bigInteger);
emp.setUpdate_user_id(update_user_id);
emp.setDeleted(b);
session.insert("add", emp);
session.commit();
List<Emp> list = session.selectList("findAll");
model.addAttribute("list", list);
return "list";
}return "add";
}
}
思路:
## 思路:(查找)通过Mybatis获取数据,将其传入SpringMVC(controller),显示在JSP页面完成操作
(更新、删除、增加)通过JSP页面获取值,通过SpringMVC(controller)、Mybatis写入数据库
在以(查找)方式显示JSP页面,操作完成。 ##