详细的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.