下载地址:SSM-jar地址
(下载需要拷贝地址到浏览器窗口,写了一上午挺累的,愿意的客官赏两个积分,网上也有很多也可以自己照着图上的下载对应的版本)
后面所提到的整个的文件目录(部分springmvc)
2)接下来需要配置spring-dao层的整合,但是在这之前我们需要准备数据库,以及我们的连接参数的属性文件。
2.1这里只是为了演示我就创建一个简单的表,只包含用户名,密码,年龄(使用MySQL数据库中springmvc数据库以及user表)
mysql> create database springmvc;
Query OK, 1 row affected (0.00 sec)
mysql> use springmvc
Database changed
mysql> CREATE TABLE user(
-> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> user_name VARCHAR(20) NOT NULL,
-> password VARCHAR(15) NOT NULL,
-> age TINYINT);
2.2接下来我们就需要一个属性文件用来保存我们的数据库连接驱动名以及用户名等参数,在resources目录下创建一个resource.properties文件(以键值对保存参数的文件),内容如下:
jdbc.name=你的数据库用户名
jdbc.driverclass=com.mysql.jdbc.Driver
jdbc.pwd=你的数据库密码
jdbc.url=jdbc\:mysql\://localhost\:3306/springmvc?useUnicode\=true&characterEncoding\=utf8
2.3接下来我们就在resources/spring/下创建一个spring-dao.xml来整合mybatis和spring
3.1在entity下面创建一个实体javaBean,User
package org.mtest.entity;
public class User {
private int id;
private String userName;
private String password;
private int age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
3.2位该实体类创建一个接口dao用来对其进行数据操作
package org.mtest.dao;
import org.apache.ibatis.annotations.Param;
import org.mtest.entity.User;
public interface UserDao {
/**
* 通过id查询用户
* @param id
* @return
*/
User queryById(@Param("id")int id);
}
4)接下来就是需要配置mybatis的mapper了,首先在resources下面创建一个和spring同级的mapper文件,并创建一个userDao.xml文件用于配置映射
经过上面的配置spring和mybatis已经整合完毕了,接下来我们测试一下(由于spring的版本我没有统一好导致了junit不能进行单元测试),这里我直接使用main函数进行测试(上面的截图少了三个包,在下载的文件里面包含了所有)
测试之前首先插入一条数据
insert into user(user_name,password,age)
values('zhangSan','123456','20');
编写一个测试类
package test.user;
import org.mtest.dao.UserDao;
import org.mtest.entity.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestUserDao {
private static UserDao userDao;
public static void main(String[] args) {
//加载容器
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-dao.xml");
//bean的名字与接口名相同但首字母小写
userDao = (UserDao) context.getBean("userDao");
User user = userDao.queryById(1);
System.out.println(user.getUserName() +"****"+user.getPassword()+"***"+user.getAge());
}
}
测试结果日志(需要在resources文件下创建一个xml文件再会有日志输出,该日志)
日志lofback.xml文件内容如下:
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
运行结果为:可以从日志中看到我们调用dao中的方法时执行了查询语句,并成功返回了我之前插入的数据
11:17:00.563 [main] DEBUG org.mtest.dao.UserDao.queryById - ==> Preparing: select user_name,password,age from user where id = ?
11:17:00.660 [main] DEBUG org.mtest.dao.UserDao.queryById - ==> Parameters: 1(Integer)
11:17:00.699 [main] DEBUG org.mtest.dao.UserDao.queryById - <== Total: 1
11:17:00.706 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e7be63f]
zhangSan****123456***20
都此处spring和mybatis的整合就完成了,接下来是springmvc了,我在下节当中进行整理