spring+mybatis 框架搭建
注意<!-- 中间的字要保持与左右留出一个空格,否则会报错说出现两杠线 -->
1.导入jar包
aopalliance-1.0.jar
asm-3.3.1.jar
cglib-2.2.2.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
commons-logging-1.1.1.jar
javassist-3.17.1-GA.jar
junit-4.9.jar
log4j-1.2.17.jar
mybatis-3.0.3.jar
mybatis-3.2.2.jar
mybatis-spring-1.0.0-RC3.jar
mysql-connector-java-5.1.10-bin.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
spring-aop-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-core-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring-jdbc-3.0.5.RELEASE.jar
spring-tx-3.0.5.RELEASE.jar
2.写
src
----cn.itcast.mybatis.damain
User.java
User.xml
----cn.itcast.mybatis.dao
IUserDao.java
UserDaoImpl.java
----cn.itcast.mybatis.service
IUserService
UserServiceImpl
----spring-beans.xml
----sqlMapConfig.xml
User.java
package cn.itcast.mybatis.domain; public class User { private String id; private String name; private Integer age; private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
User.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="cn.itcast.mybatis.domain.User"> <sql id="cols"> id,name,age,address </sql> <sql id="ucols"> name=#{name},age=#{age},address=#{address} </sql> <!-- 查询所有记录 --> <select id="listAll" resultType="aliasesUser"> select <include refid="cols"/> from user_c </select> <!-- 按条件查询 --> <select id="find" parameterType="aliasesUser" resultType="aliasesUser"> select * from user_c <where> <if test="name!=null"> and name like "%"#{name}"%" </if> <if test="age!=null"> and age=#{age} </if> </where> </select> <!-- 查询一个用户 --> <select id="get" parameterType="string" resultType="aliasesUser"> select <include refid="cols"/> from user_c where id=#{id} </select> <!-- 新增 --> <insert id="create" parameterType="aliasesUser"> insert into user_c (id,name,age,address) values(#{id},#{name},#{age},#{address}) </insert> <!-- 修改 --> <update id="update" parameterType="aliasesUser"> update user_c <set> <if test="name!=null"> name=#{name}, </if> <if test="age!=null"> age=#{age}, </if> <if test="address!=null"> address=#{address}, </if> </set> where id=#{id} </update> <!-- 删除 --> <delete id="delete" parameterType="string"> delete from user_c where id=#{id} </delete> </mapper>
IUserDao.java
package cn.itcast.mybatis.dao; import java.util.List; import cn.itcast.mybatis.domain.User; public interface IUserDao { public List<User> list(); public User get(String id); public int insert(User u); public int update(User u); public int deleteById(String id); }
UserDaoImpl.java
package cn.itcast.mybatis.dao; import java.util.List; import org.mybatis.spring.support.SqlSessionDaoSupport; import cn.itcast.mybatis.domain.User; public class UserDaoImpl extends SqlSessionDaoSupport implements IUserDao { //删除 public int deleteById(String id) { return this.getSqlSession().delete("cn.itcast.mybatis.domain.User.deleteOne",id); } //新增 public int insert(User u) { return this.getSqlSession().insert("cn.itcast.mybatis.domain.User.create", u); } //列表 public List<User> list() { return this.getSqlSession().selectList("cn.itcast.mybatis.domain.User.listAll"); } //修改 public int update(User u) { return this.getSqlSession().update("cn.itcast.mybatis.domain.User.update",u); } //获取对象 public User get(String id) { return (User) this.getSqlSession().selectOne("cn.itcast.mybatis.domain.User.get", id); } }
UserServiceDao.java
package cn.itcast.mybatis.service; import java.util.List; import cn.itcast.mybatis.domain.User; public interface IUserService { public List<User> list(); public User get(String id); public int insert(User u); public int update(User u); public int deleteById(String id); }
UserServiceDaoImpl.java
package cn.itcast.mybatis.service; import java.util.List; import cn.itcast.mybatis.dao.IUserDao; import cn.itcast.mybatis.domain.User; public class UserServiceImpl implements IUserService { private IUserDao userDao; public void setUserDao(IUserDao userDao) { this.userDao = userDao; } public int deleteById(String id) { int i = userDao.deleteById(id); //测试事务 int j = 1/0; return i; } public User get(String id) { return userDao.get(id); } public int insert(User u) { return userDao.insert(u); } public List<User> list() { return userDao.list(); } public int update(User u) { return userDao.update(u); } }
重头
sqlMapConfig.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="cn.itcast.mybatis.domain.User" alias="aliasesUser"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="friends"/> </dataSource> </environment> <!-- 产品 可用于多个配置的 --> <environment id="product"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="friends"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/itcast/mybatis/domain/User.xml"/> </mappers> </configuration>
spring-beans.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost/mybatisdb?characterEncoding=utf-8"></property> <property name="username" value="root"></property> <property name="password" value="friends"></property> </bean> <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:sqlMapConfig.xml"></property> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 事务相关控制 --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 通知 --> <tx:advice id="tx" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="find*" read-only="true" /> <tx:method name="get*" read-only="true" /> <tx:method name="select*" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="pc" expression="execution(* cn.itcast.mybatis.service.*.*(..))" /> <!--把事务控制在Service层--> <aop:advisor pointcut-ref="pc" advice-ref="tx" /> </aop:config> <bean id="userDao" class="cn.itcast.mybatis.dao.UserDaoImpl"> <property name="sqlSessionFactory" ref="sessionFactory"></property> </bean> <bean id="userService" class="cn.itcast.mybatis.service.UserServiceImpl"> <property name="userDao" ref="userDao"></property> </bean> </beans>
测试
package test; import java.util.List; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.itcast.mybatis.domain.User; import cn.itcast.mybatis.service.IUserService; public class TestSpringMybatis { @Test public void test(){ ApplicationContext ac = new ClassPathXmlApplicationContext("spring-beans.xml"); IUserService us = (IUserService) ac.getBean("userService"); List<User> users = us.list(); System.out.println(users.size()); } @Test public void testDelete(){ ApplicationContext ac = new ClassPathXmlApplicationContext("spring-beans.xml"); IUserService us = (IUserService) ac.getBean("userService"); us.deleteById("1"); } }
spring+mybatis 框架搭建的更多相关文章
- spring+mybatis框架搭建时遇到Mapped Statements collection does not contain value for...的错误
http://your233.iteye.com/blog/1563240 上面的博客总结了4个可能出现的问题,如下: 1.mapper.xml中没有加入namespace 2.mapper.xml中 ...
- SpringMVC+Mybatis框架搭建
一.新建javaweb项目,并建好相应的包结构 二.添加项目jar到lib目录下 三.在config包中新建配置文件 sping-mvc.xml,内容如下: <?xml version=&quo ...
- 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...
- Spring+Mybatis+Mysql搭建分布式数据库访问框架
一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...
- Spring+MyBatis框架中sql语句的书写,数据集的传递以及多表关联查询
在很多Java EE项目中,Spring+MyBatis框架经常被用到,项目搭建在这里不再赘述,现在要将的是如何在项目中书写,增删改查的语句,如何操作数据库,以及后台如何获取数据,如何进行关联查询,以 ...
- Spring MVC+ Spring + Mybatis从零开始搭建一个精美且实用的管理后台
点击进入<SSM搭建精美实用的管理系统>达人课页面 SSM 框架即 SpringMVC+Spring+Mybatis,相信各位朋友在投递简历时已直观感受到它的重要性,JavaWeb 相关工 ...
- SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>
此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...
- mybatis框架搭建学习初步
mybatis框架搭建步骤:1. 拷贝jar到lib目录下,而且添加到工程中2. 创建mybatis-config.xml文件,配置数据库连接信息 <environments default=& ...
- mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...
随机推荐
- 以 280W 数据为依据。对比SQL2008 表分区前和分区后的 T_SQL 效率
一: 数据库的优化一直项目后期的重中之重,特别是当单表数据庞大到1000W时候.各种SQL语句执行效率都会慢很多.SQL 效率 与索引,行数据,列数据,以及Where 刷选字段类型 (效率 整数型大于 ...
- Jsp与servlet之间页面跳转及参数传递实例(转)
原网址:http://blog.csdn.net/ssy_shandong/article/details/9328985 11. jsp与servlet之间页面跳转及参数传递实例 分类: Java ...
- Mysql 冷备份批处理
@Rem Generate today date @echo wscript.echo dateadd("d",0,date)>GetOldDate.vbs @for /f ...
- ios - cordova 简介
Cordova 是一个可以让 JS 与原生代码(包括 Android 的 java,iOS 的 Objective-C 等)互相通信的一个库,并且提供了一系列的插件类,比如 JS 直接操作本地数据库的 ...
- [译]JavaScript 错误和处理
JavaScript的调试是一个噩梦:一些错误刚开始很难理解,并且给出的错误函数也经常是没用的.如果把错误都列出来并给出解决办法会不会很有用呢. 下面列出了JavaScript一系列的奇怪错误.对于同 ...
- NOIP201501&&02
NOIP201501金币 试题描述 国王将金币作为工资,发放给忠诚的骑士.第一天,骑士收到一枚金币:之后两天(第二天和第三天) ,每天收到两枚金币:之后三天(第四.五.六天) ,每天收到三枚金币:之后 ...
- 九度OJ 1104 整除问题
题目地址:http://ac.jobdu.com/problem.php?pid=1104 题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入: 两个整数n(2 ...
- redis 常用操作命令
操作相关的命令连接 quit:关闭连接(connection)auth:简单密码认证 持久化 save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到 ...
- MySQL基础学习之开始
学习MySQL数据库几个月了,从什么都不懂到现在这个地步,说实话感触很大,也感觉自己有许多不足之处.当接触MySQL的时候, 连创建一个数据表都想了很长的时间,不知道许多东西.幸亏我有一个好的老师,她 ...
- hdu 2844 poj 1742 Coins
hdu 2844 poj 1742 Coins 题目相同,但是时限不同,原本上面的多重背包我初始化为0,f[0] = 1;用位或进行优化,f[i]=1表示可以兑成i,0表示不能. 在poj上运行时间正 ...