示例的目录结构:
1. 配置开发所需要的Jar包
本示例主要用到的Jar包主要有:
spring-4.0.6
mybatis-3.2.7
mybatis-spring-1.2.2
mysql-connector-java-5.1.22
junit-4.11
Jar包明细:
示例使用Maven管理Jar包,pom.xml配置文件内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>lianliansteel</groupId> <artifactId>lianliansteel</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>lianliansteel</name> <url>http://maven.apache.org</url> <dependencies> <!-- Spring 基础Jar包 : Begin --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Spring 基础Jar包 : End --> <!-- Spring JDBC 数据访问 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- Spring MVC 框架 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.7</version> </dependency> <!-- mybatis与spring的“粘合剂” --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- mysql driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.22</version> <scope>runtime</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <properties> <org.springframework.version>4.0.6.RELEASE</org.springframework.version> </properties> <build> <finalName>lianliansteel</finalName> </build> </project>
database.driverClassName = com.mysql.jdbc.Driver database.url = jdbc:mysql://127.0.0.1/SDGL?useUnicode=true&characterEncoding=utf8 database.username = root database.password = abc123
3. 编写实例类及Dao类
Entity.java:
package com.sdgl.common; import java.io.Serializable; public interface Entity extends Serializable { }
Department.java:
package com.sdgl.admin.entity; import com.sdgl.common.Entity; /** * 部门 * @author wgc * */ public class Department implements Entity { private static final long serialVersionUID = -3212983578086635496L; private Long id = 0L; private String name = ""; //部门名称 private String description = ""; //部门 private String code = ""; //部门代码 private Boolean disabled = false; //是否可用 private Long parentId = 0L; //上级部门ID private Long creatorId = 0L; //创建者ID private Long createTime = 0L; //创建时间 private Long lastAccess = 0L; //最后更新时间 public Department() {} public Department(String name, String description, Long parentId, Long creatorId, String code) { this.id = 0L; this.name = name; this.description = description; this.code = code.trim(); this.disabled = false; this.parentId = parentId; this.creatorId = creatorId; this.createTime = System.currentTimeMillis(); this.lastAccess = 0L; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public Boolean getDisabled() { return disabled; } public void setDisabled(Boolean disabled) { this.disabled = disabled; } public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } public Long getCreatorId() { return creatorId; } public void setCreatorId(Long creatorId) { this.creatorId = creatorId; } public Long getCreateTime() { return createTime; } public void setCreateTime(Long createTime) { this.createTime = createTime; } public Long getLastAccess() { return lastAccess; } public void setLastAccess(Long lastAccess) { this.lastAccess = lastAccess; } }
package com.sdgl.admin.dao; import com.sdgl.admin.entity.Department; public interface DepartmentDao { void save(Department department); }
4. 添加MyBatis的Mapper文件 Department.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="com.sdgl.admin.dao.DepartmentDao"> <insert id="save" parameterType="Department"> INSERT INTO BAS_DEPARTMENT (name, description, code, disabled, parentId, creatorId, createTime, lastAccess) VALUES (#{name}, #{description}, #{code}, #{disabled}, #{parentId}, #{creatorId}, #{createTime}, #{lastAccess}) <selectKey resultType="long" keyProperty="id"> SELECT last_insert_id() AS id FROM BAS_DEPARTMENT LIMIT 1 </selectKey> </insert> </mapper>
business-admin.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="departmentDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> <property name="mapperInterface" value="com.sdgl.admin.dao.DepartmentDao"></property> </bean> </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:property-placeholder location="classpath:database.properties"/> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${database.driverClassName}"></property> <property name="url" value="${database.url}"></property> <property name="username" value="${database.username}"></property> <property name="password" value="${database.password}"></property> </bean> <!-- 配置MyBatis组件:SqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 指定数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 指定mybatis的核心配置文件 --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!-- 导入资源文件 --> <import resource="com/sdgl/admin/service/business-admin.xml"></import> </beans>
MyBatis核心配置文件
mybatis-config.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> <typeAliases> <typeAlias type="com.sdgl.admin.entity.Department" alias="Department"/> </typeAliases> <mappers> <mapper resource="com/sdgl/admin/dao/Department.xml"/> </mappers> </configuration>
DepartmentDaoTest.java:
package com.sdgl.admin.dao; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.sdgl.admin.entity.Department; public class DepartmentDaoTest { @Test public void testSave() { ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); DepartmentDao dao = ctx.getBean("departmentDao", DepartmentDao.class); Department department = new Department("first", "mybatis与spring整合-测试", 0L, 0L, "01"); dao.save(department); } }
在数据库中查询记录是否已经成功插入