一、Mybatis简介
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
MyBatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句,这比Hibernate、NHibernate以及EF等重量级ORM框架生成的SQL语句要搞笑很多。
MyBatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
二、Druid简介
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,据说是目前最好的连接池。
三、项目配置
1、项目结构
2、db.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=yan748712
3、web.xml
/p>
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
upms-server
contextConfigLocation
classpath*:spring-servlet.xml
org.springframework.web.context.ContextLoaderListener
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:springMVC-servlet.xml
1
springMVC
/
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
druidWebStatFilter
com.alibaba.druid.support.http.WebStatFilter
exclusions
/public/*,*.js,*.css,/druid*,*.jsp,*.swf
principalSessionName
sessionInfo
profileEnable
true
druidWebStatFilter
/*
4、spring-servlet.xml
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd ">
classpath*:db.properties
5、springMVC-servlet.xml
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
6、父pom.xml
4.0.0
com.ework
ework-upms
pom
1.0.0
ework-upms-server
ework-upms-client
ework-upms-rpc-api
ework-common
ework-upms-rpc-service
ework-upms-entity
1.0.0
4.3.20.RELEASE
3.0.6.RELEASE
3.4.6
1.3.1
5.1.40
5.1.2
1.0.29
org.springframework
spring-webmvc
${spring.version}
org.thymeleaf
thymeleaf-spring4
${thymeleaf.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.mybatis
mybatis
${mybatis.version}
mysql
mysql-connector-java
${mysql.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
com.alibaba
druid
${druid.version}
com.github.pagehelper
pagehelper
${pagehelper.version}
com.ework
ework-upms-entity
${ework-upms.version}
7、pom.xml
ework-upms
com.ework
1.0.0
4.0.0
ework-upms-server
war
ework-upms-server Maven Webapp
http://www.upms.com
UTF-8
1.7
1.7
junit
junit
4.11
test
org.springframework
spring-webmvc
org.thymeleaf
thymeleaf-spring4
org.mybatis
mybatis
mysql
mysql-connector-java
org.mybatis
mybatis-spring
com.alibaba
druid
com.github.pagehelper
pagehelper
org.springframework
spring-jdbc
org.springframework
spring-tx
com.ework
ework-upms-entity
ework-upms-server
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
8、mybatis.xml
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
9、UpmsMenuMapper.xml
/p>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select id,name
from tab_upms_menu
10、UpmsMenu.java
packagecom.ework.upms.entity;importjava.io.Serializable;/*** @Author: 颜士国
* @Date: 2019-09-01 16:06*/
public class UpmsMenu implementsSerializable {private static final long serialVersionUID = 1L;/**菜单ID*/
privateString id;/**菜单名称*/
privateString name;/**请求地址*/
privateString url;publicString getId() {returnid;
}public voidsetId(String id) {this.id =id;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}publicString getUrl() {returnurl;
}public voidsetUrl(String url) {this.url =url;
}
}
11、IndexController.java
packagecom.ework.upms.server.controller;importcom.ework.upms.entity.UpmsMenu;importcom.ework.upms.server.mapper.UpmsMenuMapper;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.ui.ModelMap;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importjava.util.List;/*** @Author: 颜士国
* @Date: 2019-09-01 13:52*/@Controllerpublic classIndexController {
@AutowiredprivateUpmsMenuMapper menuMapper;
@RequestMapping(value= "/index", method =RequestMethod.GET)publicString index(ModelMap mmap) {
List upmsMenus =menuMapper.selectMenuAll();
mmap.put("menus", upmsMenus);return "index";
}
@RequestMapping(value= "", method =RequestMethod.GET)publicString defaultView(ModelMap mmap) {
List upmsMenus =menuMapper.selectMenuAll();
mmap.put("menus", upmsMenus);return "index";
}
}
三、运行效果图
四、mybatis打印的Sql语句
大功告成