spring+mybatis结合实例
1.通过上两篇文章的学习,大致了解了spring和mybatis的架构和使用原理,下面这篇文章就将给出两者结合的一个小实例,通过该实例进一步探索这两个框架的魅力,工程所需要的所有jar包都在链接:http://pan.baidu.com/s/1kUZmpWb
2.spring+mybatis结合实例
(1)建立数据库mybatis,建立一张user表:

(2)建立User.java类:
package com.springMyBatis.system.model;
public class User {
private int id;
private String username;
private String password;
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 String toString() {
return "User[id=" + id + " , username=" + username + " , password=" + password + "]";
}
}
(3)建立UserDao数据访问接口:
package com.springMyBatis.system.dao;
import com.springMyBatis.system.model.User;
public interface UserDao {
public User getUser(User user);
public void addUser(User user);
public void updateUser(User user);
public void deleteUser(int UserId);
}
(4)建立数据访问接口映射文件:
<?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.springMyBatis.system.dao.UserDao">
<select id="getUser" parameterType="User" resultType="User">
SELECT *
FROM user WHERE username=#{username} AND password=#{password}
</select>
<insert id="addUser" parameterType="User" flushCache="true">
INSERT INTO
user (id,username,password) VALUES
(#{id},#{username},#{password})
</insert>
<update id="updateUser" parameterType="User">
UPDATE user SET
password=#{password} WHERE id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE
id=#{id}
</delete>
</mapper>
(5)建立mybatis配置文件:
<?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>
<!--这里给实体类取别名,方便在mapper配置文件中使用 -->
<typeAlias alias="User" type="com.springMyBatis.system.model.User" />
</typeAliases>
<mappers>
<mapper resource="com/springMyBatis/system/dao/UserDao.xml" />
</mappers>
</configuration>
(6)建立spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
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-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 配置数据源 -->
<bean id="jdbcDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>geningchao</value>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="jdbcDataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.springMyBatis.system.dao.UserDao"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>
(7)建立测试类:
package com.springMyBatis.system.test; import java.util.Random; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.springMyBatis.system.dao.UserDao;
import com.springMyBatis.system.model.User; public class UserController {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");
UserDao userDao = (UserDao) ctx.getBean("userDao");
User user = new User();
// 添加两条数据
user.setId(new Random().nextInt(10000));
user.setUsername("Jessica");
user.setPassword("123");
userDao.addUser(user);
user.setId(new Random().nextInt(10000));
user.setUsername("Jessica2");
user.setPassword("123");
userDao.addUser(user);
System.out.println("添加成功");
// 查询数据
user.setUsername("Jessica");
user.setPassword("123");
System.out.println(userDao.getUser(user).toString());
user.setUsername("Jessica2");
user.setPassword("123");
System.out.println(userDao.getUser(user).toString());
// 修改数据
user.setId(new Random().nextInt(10000));
user.setPassword("802");
userDao.updateUser(user);
System.out.println("修改成功");
// 删除数据
userDao.deleteUser(1);
System.out.println("删除成功"); }
}
3.工程分析
该工程包括四部分,第一部分为基本的User实体类和UserDao访问接口,第二部分为mybatis接管的数据访问接口映射文件和mybatis配置文件,接口映射文件实现所有的数据访问控制,配置文件加载映射文件;第三部分为spring配置文件,该文件包含了连接数据库,加载mybatis配置文件;第四部分就是测试类了,测试类很容易懂;整体流程就是这样,希望通过这篇文章理清spring+mybatis的流程.
以上仅是个人学习观点,若有不确之处,还请指点扶正!
spring+mybatis结合实例的更多相关文章
- Spring + mybatis整合方案总结 结合实例应用
Spring + mybatis整合实例应用 项目结构图 (Spring3.0.2 +mybatis3.0.4) 方案一: 通过配置文件整合Spring和mybatis 应用数据库 -- --数据库 ...
- Spring+Mybatis+Maven+MySql搭建实例
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+MySql的的搭建实例 ...
- Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+M ...
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文实现了一个后台由Spring+Mybatis+SpringMVC组成,分页采用Pag ...
- 【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+M ...
- Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文实现了一个后台由Spring+Mybatis+SpringMVC组成,分页采用Pag ...
- SpringMVC笔记——Spring+MyBatis组合开发简单实例
简介 SSH框架很强大,适合大型项目开发.但学无止境,多学会一门框架组合开发会让自己增值许多. SSM框架小巧精致,适合中小型项目快速开发,对于新手来说也是简单上手的.在SSM框架搭建之前,我们先学习 ...
- spring+mybatis之注解式事务管理初识(小实例)
1.上一章,我们谈到了spring+mybatis声明式事务管理,我们在文章末尾提到,在实际项目中,用得更多的是注解式事务管理,这一章将学习一下注解式事务管理的有关知识.注解式事务管理只需要在上一节的 ...
- Spring+Mybatis+SpringMVC后台与前台分页展示实例
摘要:本文实现了一个后台由spring+Mybatis+SpringMVC组成,分页采用PageHelper,前台展示使用bootstrap-paginator来显示效果的分页实例.整个项目由mave ...
随机推荐
- tomcat错误:The page you tried to access (/manager/login.do) does not exist
今天在idea上跑一个项目,所有配置都正常,其他接口测试也正常.唯独“/manage/user”接口在测试的时候后台没反应,也就是程序根本没往下走,postman测试显示如下: 浏览器范围url连接显 ...
- Codeforces 808G Anthem of Berland【KMP】【DP】
LINK 简要题意 给你一个串s,上面有字母和一些通配符,问你将通配符换成字母之后最多可以出现多少次串t 首先有一个很傻子的做法就是\(dp_{i,j}\)表示s到第i个位置匹配t串前j个字符的完整t ...
- nginx+uwsgi 和nginx+gunicorn区别、如何部署
[线上环境部署Django,nginx+uwsgi 和nginx+gunicorn,这两种方案,应该如何选择?] 大家是采用的何种部署方式? 第一种,高并发稳定一点 我们公司使用的是nginx+gun ...
- 申请apple开发人员账号的波折
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xiebaochun/article/details/37578395 是的.po主要搞ios开发了, ...
- CSS样式属性分类
A 文字 1 font-family:字体名称 注意: 当指定多种字体时,用“,”分隔每种字体的名称 当字体名称包含两个以上分开的单词是,用“”把该字体名称括起来. 当样式规则外已经有“”时,用‘’代 ...
- JAVASE02-Unit012: Unit07: XML语法 、 XML解析
Unit07: XML语法 . XML解析 emplist.xml <?xml version="1.0" encoding="UTF-8"?> & ...
- 微信web端生成支付二维码
授权获取二维码类: <?php /** * Trade类 * @author xyyphp * @date 2016/10/10 */ abstract class TradeControlle ...
- Java文件的写入
写文件与读文件类似,可以是以字节为单位写入,可以是以字符为单位写入. 对应读操作FileOutputStream是以字节为单位进行写入的: FileOutputStream fileOutputStr ...
- jmeter 历史版本下载
在官网下载: https://jmeter.apache.org/download_jmeter.cgi 新版本 要从命令行启动 cd 到bin目录下 使用 sh jmeter
- 【转】JMeter 通过 JDBC 访问 Oracle 和 MySQL
JMeter 的手册中描述了如何访问 MySQL,但是没有说明如何访问 Oracle.对于没有 Java 应用开发经验和对 Oracle 不是特别熟悉的朋友,可以参考这篇文章来简单.快速的配置好 JM ...