Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作
详细的Spring MVC框架搭配在这个连接中:
这篇主要讲解MVC中Mybatis的配置过程。
STEP 1:数据库与实体bean的创建;
在这个实例中用 Mysql作为操作的数据库源,先来创建一张名为 users 的数据表结构,如图:
如果你认为自己是个潇洒的代码控,不屑于图形界面操作,那么你也可以用SQL代码来进行表的创建,复制如下代码即可:
-- users table
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`account` varchar(50) DEFAULT NULL,
`passwd` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
然后在项目中.增加一个对应数据表的实体 bean 包, 包结构为 mcqueen.model,如图:
在这个包中增加一个与数据表名一致的java实体bean文件,与数据表明一致不是必须的,为了方便维护管理建议与数据表名一致;
users.java 文件源码如下:
package mcqueen.model; public class users {
public int id;
public String account;
public String passwd;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
STEP 2:配置Mybatis.
打开项目中的pom.xml文件,增加如下配置内容:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.2.RELEASE</version>
</dependency>
在项目中增加一个 sqlconfig.xml 文件,它是用来管理Mybatis 中的Mapper文件的;
sqlconfig.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- Sql Connection Config -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/womaidb" />
<property name="username" value="root" />
<property name="password" value="xingzhi" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mcqueen/mappers/UserMapping.xml" />
</mappers>
</configuration>
上面代码中 mappers下的mappers的resource这个属性节点内容,便是指向Sql管理配置文件的存储地方.也是Mybatis的重点操作文件之一.(详细解释,请自行百度,这里不做解释)
既然需要这个文件那么就来创建它吧.
UserMapping.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="mcqueen.mappers.UserMapping">
<select id="GetUsersAll"
parameterType="int"
resultType="mcqueen.model.users">
SELECT * FROM `users` WHERE `id` = #{id};
</select>
</mapper>
上面代码中:
namespace="" 这个命名空间节点指向的文件便是当前自身文件,通俗理解就给它自己起个名字,<select > : 这个节点便是你的Sql语句;
如果你是用条件查询的语句,那么 parameterType 就要指定与java函数对应的数据类型;resultType则是返回你对应的实体bean类型;
具体说明,依旧百度或者自行官网,个人建议去官网看理解的会更透彻一些.
最后,项目中两个文件的结构放置,应当如下图:
STEP 3:数据层的实现与操作
接下来,还要做这样一个事情,我们回来打开查看UserMapping.xml这个文件;
你会看到这样一段语句:<select id="GetUsersAll"
这个id="GetUsersAll"语句中, Id节点的内容便是接下来要实现的工作了,数据层的实现;
在工程中增加 mcqueen.dal 这个包,并在里面增加一个 UserDao.java 文件,如下:
然后在这个文件中增加如下语句:
UserDao.java:
package mcqueen.dal; import java.io.InputStream; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class UserDao {
//指向UserMapping文件中Select节点下id属性定义的内容.
private String sql = "mcqueen.mappers.UserMapping.GetUsersAll";
public mcqueen.model.users GetUsersAll(int id){
InputStream is = UserDao.class.getClassLoader().getResourceAsStream("sqlconfig.xml");
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
SqlSession session = ssf.openSession();
return session.selectOne(sql, id);
}
}
然后再打开mcqueen.controller下的IndexController.java文件,代码如下:
IndexController.java:
package mcqueen.controller;
import mcqueen.dal.UserDao;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class IndexController {
@RequestMapping(value="index.html")
public void index(Model m){
UserDao dal = new UserDao();
m.addAttribute("result", "I use mybatis find "+dal.GetUsersAll(1).getAccount()+" of data, My name is Mcqueen Xing.");
}
}
到此,Spring MVC 中Mybaits操作已经完成了,可以进行测试结果如下:
记得在数据库中加数据,否则会出现null.
Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作的更多相关文章
- Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用
Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...
- Maven 工程下 Spring MVC 站点配置 (一)
最近,查找一些具体资料时,虽然会有很多,但是系统的却很少,尤其是对maven 下 spring mvc 站点搭建的配置,总是说的很多但让新手一目了然的步骤却少之又少. 对此闲暇时整理了一下,做了一套较 ...
- 2017.3.31 spring mvc教程(二)核心流程及配置详解
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- spring 学习(一):使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试
spring学习(一):使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试 ioc 概念 控制反转(Inversion of Control,缩写为IOC),是面向 ...
- Spring MVC 事务配置
Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: 一. XML,使用tx标签配置拦截器实现事务 一. ...
- Spring MVC的配置和使用
Spring MVC的配置和使用 笔记仓库:https://github.com/nnngu/LearningNotes Spring MVC需要的jar包 文章中 Spring MVC 使用的版本是 ...
- [转]Spring MVC 事务配置
Spring MVC事务配置 要了解事务配置的所有方法,请看一下<Spring事务配置的5种方法> 本文介绍两种配置方法: <tx:advice/>就是告诉事务管理器:怎么做 ...
- 【Java Web开发学习】Spring MVC 开始配置
Spring MVC 开始配置 转载:http://www.cnblogs.com/yangchongxing/p/8871370.htm 学习搭建最简单的Spring MVC框架. ======== ...
- Spring MVC国际化配置
Spring MVC国际化配置 前言 项目开发中要考虑支持国际化,框架选用的是Spring MVC框架,那么问题来了Spring MVC如何配置并实现国际化. 实现过程(Maven项目) 对于Spri ...
随机推荐
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6633311 在上一篇文章中,我 们分析了And ...
- 设置 git config 的一些默认配置
设置 git status的颜色. git config --global color.status auto 一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境.你只需要做这些设置一 ...
- MySQL 触发器的定义
-- Insert DELIMITER $$ USE `testdatabase`$$ DROP TRIGGER /*!50032 IF EXISTS */ `Trigger_XXX_INSERT`$ ...
- jquery怎么获取URL的参数
function request(paras) { var url = location.href; var paraString = ur ...
- SpringMvc学习-增删改查
本节主要介绍SpringMVC简单的增删改查功能. 1.查询 dao中的代码 public List<WeatherPojo> getAllWeather(){ String sql=&q ...
- ListView加载两种以上不同的布局
不同的项目布局(item layout) Listview一种单一的item 布局有时候不能完全满足业务需求,我们需要加载两种或两种以上不同的布局,实现方法很简单: 重写 getViewTypeCou ...
- Centos6架设GIT服务,windows客户端使用TortoiseGit加载KEYGEN连接GIT服务器
前几天得空,想起前一阵学了GIT还没好好实践,就在虚拟机中安装测试了一下,并简单记录了CENTOS6中GIT安装,ssh-keygen生成,客户端使用TortoiseGit加载KEYGEN连接GIT服 ...
- Ubuntu安装字体的方法
基本步骤如下: 1. 将要安装的字体放在一个文件夹下,以/home/UsrName/Download/Font为例 2.在终端中输入 sudo cp -r /home/UsrName/Download ...
- WSGI的理解
Python web开发中,服务端程序可分为2个部分: 服务器程序(用来接收.整理客户端发送的请求) 应用程序(处理服务器程序传递过来的请求) 在开发应用程序的时候,我们会把常用的功能封装起来,成为各 ...
- What is an http upgrade?
HTTP Upgrade is used to indicate a preference or requirement to switch to a different version of HTT ...