1.建立dao层接口baseDao.java
与实现类testDaoImpl.java
在\src\main\java\com\spring\dao
目录下,建立ifc
、impl
目录,分别用来存放接口和实现类,在ifc
目录中建立baseDao.java
接口文件,在impl
目录中建立testDaoImpl.java
实现类文件;
baseDao.java
文件:1
2
3
4
5
6
7
8
9package com.spring.dao.ifc;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
public interface baseDao {
public List<Map<String, Object>> getList(JSONObject jsonObject);
}
testDaoImpl.java
文件:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28package com.spring.dao.impl.test;
import com.spring.dao.ifc.baseDao;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
public class testDaoImpl implements baseDao {
private SqlSessionTemplate sqlSessionTemplate;
/**
* 数据库查询方法
* @param jsonObject 以键值对形式传入sql供Sql模板文件解析执行
* @数据格式:{"sql":"需要执行的sql语句"}
* @数据格式:{"field":"要查询的字段", "table":"要查询的表名", "where":"查询语句where条件"}
* 两种格式选择一种,这实际上是我根据上篇文章中提到的initDaoMapper.xml文件格式而定的,你也可以自己写!
* @return List<Map<String, Object>> 查询结果集
*/
public List<Map<String, Object>> getList(JSONObject jsonObject) {
return sqlSessionTemplate.selectList("TestDao.getList", jsonObject);
}
}
2.修改testService.java
1 | package com.spring.service.test; |
3.建立数据表,并写入一些测试数据
user.sql
:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`username` varchar(15) NOT NULL,
`tel` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('你', '156xxxx1501');
INSERT INTO `user` VALUES ('我', '858xxxx5858');
INSERT INTO `user` VALUES ('他', '123xxxx3213');
4.运行
在SpringMVC目录下执行下面命令: 1
2
3mvn clean
mvn package
mvn tomcat:run
访问http://localhost:8080/SpringMVC/test/index!
控制台打印出以下字符:[{"username":"你","tel":"156xxxx1501"},{"username":"我","tel":"858xxxx5858"},{"username":"他","tel":"123xxxx3213"}]
5.关于增、删、改
其实归根到底,mybatis只是相当于在你与数据库之间构建起一道桥梁,你将你需要执行的sql利用mybatis通过mapper构建出来,再由mybatis发往数据库执行。这个例子里虽然只用到了查询,其实,你只要自己在mapper的xml文件里定义好增、删、改的sql模板,跟这个一样,传进去模板参数就执行了;