mybatis 和 mybatis-spring
一、
1. 实体bean
package com.mybatisBean; public class User {
private Integer id;
private String name;
private String age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
} }
2.dao类
package com.mybatisDao; import java.util.List; import com.mybatisBean.User; public interface UserDao {
public List<User> selectAll();
}
3.dao 映射文件
<?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.mybatisDao.UserDao">
<select id="selectAll" resultType="com.mybatisBean.User">
select * from user
</select>
</mapper>
4.配置文件
<?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>
<!-- <environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments> -->
<mappers>
<mapper resource="mybatisMapper/UserMapper.xml"/>
</mappers>
</configuration>
5. 测试
package com.mybatisTest; import java.io.Reader;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.mybatisBean.User;
import com.mybatisDao.UserDao; /*
* mybatis 第一种方式
* 1. 创建实体,2. 创建dao ,声明接口 3. 创建dao 对应的映射文件
* 4. 创建mybatis 配置文件,声明数据库连接,配置映射文件 5.通过mybatis配置文件和sessionfactoryBuilder引用
* 第一种方式在 mybatis 配置文件中配置数据库链接
*/
public class TestUser {
public static void main(String[] args) throws Exception{
String resource="mybatis-configuration.xml";
Reader reader=Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilder bulider=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=bulider.build(reader);
SqlSession session=factory.openSession();
UserDao userdao=session.getMapper(UserDao.class);
List<User> list=userdao.selectAll();
for(User user:list){
System.out.println(user.getName()+":"+user.getAge());
}
session.commit();
session.close();
}
}
jar 包 ,主要有 mybatis-3.1.1.jar 和 mysql-connector-java-5.1.jar
二、
多出的部分。
1. service 接口和实现
package com.mybatisService.User; import java.util.List; import com.mybatisBean.User; public interface UserService {
public List<User> selectAll();
} package com.mybatisService.User; import java.util.List; import com.mybatisBean.User;
import com.mybatisDao.UserDao; public class UserImpl implements UserService{
private UserDao userdao; public UserDao getUserdao() {
return userdao;
} public void setUserdao(UserDao userdao) {
this.userdao = userdao;
} @Override
public List<User> selectAll() {
return this.userdao.selectAll();
} }
2. spring 配置文件
<?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-3.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-configuration.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.mybatisDao.UserDao"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
<bean id="userservice" class="com.mybatisService.User.UserImpl">
<property name="userdao" ref="userDao"></property>
</bean>
</beans>
mybatis 配置文件中的 数据库链接不需要了 。
基于以上 添加 mybatis
添加jar 包 mybats-3.1.jar mysql-connector-java-5.1 mybatis-spring.jar ,commons-dbcp,commons-pool,spring-jdbc 等
UserDao.java
package com.mybatisdao; import java.util.List; import com.bean.User; public interface UserDao {
public List<User> selectAll();
}
UserDaoMapper.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.mybatisdao.UserDao">
<select id="selectAll" resultType="com.bean.User">
select * from user
</select>
</mapper>
mybatis-configuration.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>
<!-- <environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"/>
<property name="username" value="root"/>
<property name="password" value="***"/>
</dataSource>
</environment>
</environments> --> <!--结合spring 时要在Spring 配置文件中配置 数据库链接-->
<mappers>
<mapper resource="com/mybatisMapper/UserDaoMapper.xml"/>
</mappers>
</configuration>
更改HappyNewYearIml.java
package com.service; import java.util.List; import javax.jws.WebService; import com.bean.Person;
import com.bean.User;
import com.mybatisdao.UserDao; @WebService(endpointInterface = "com.service.HappyNewYear")
public class HappyNewYearImpl implements HappyNewYear
{
private UserDao userdao; //主要改动的地方 public UserDao getUserdao() {
return userdao;
} public void setUserdao(UserDao userdao) {
this.userdao = userdao;
} public String sayHello(Person person)
{
List<User> list=userdao.selectAll();
String ss="";
for(User u:list){
if(u.getId()+""==person.getFirstName()){
ss=u.getName()+"年龄"+u.getAge();
}
} return ss==""?"没有":ss;
} }
applicationContext.xml更改
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
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/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<bean id="person" class="com.bean.Person"></bean>
<bean id="restSample" class="com.rest.HelloLove"></bean>
<context:component-scan base-package="com.*">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--主要更改部分begin-->
<!-- 下面3个bean 的 class 需要导入 mybatis-spring.jar ,commons-dbcp,commons-pool,spring-jdbc -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:com/resoureces/mybatis-configuration.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.mybatisdao.UserDao"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
<bean id="happyNewYearImpl" class="com.service.HappyNewYearImpl">
<property name="userdao" ref="userDao"></property>
</bean> <!-- 当jaxws:endpoint的 implementor需要引入Spring bean 时 要加 # ,这是第一种方式 -->
<jaxws:endpoint id="greetServicce" implementor="#happyNewYearImpl" address="/greetServicce" />
<!-- 第二种方式 -->
<!-- <jaxws:endpoint id="greetServicce" implementorClass="com.service.HappyNewYearImpl" address="/greetServicce">
<jaxws:implementor>
<bean ref="userDao"></bean> 找不到ref 属性 ,应该是版本问题
</jaxws:implementor>
</jaxws:endpoint> -->
<!--主要更改部分end--> <jaxrs:server id="restServiceContainer" address="/rest">
<jaxrs:serviceBeans>
<ref bean="restSample"/>
</jaxrs:serviceBeans>
<jaxrs:extensionMappings>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</jaxrs:extensionMappings>
<jaxrs:languageMappings>
<entry key="en" value="en-gb"/>
</jaxrs:languageMappings>
</jaxrs:server>
</beans>
测试
package com.test; import java.io.IOException;
import java.io.Reader;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.bean.User;
import com.mybatisdao.UserDao; public class testmybatis {
public static void main(String[] args) throws IOException{
String resource="com/resoureces/mybatis-configuration.xml";
Reader reader=Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilder bulider=new SqlSessionFactoryBuilder();
SqlSessionFactory factory=bulider.build(reader);
SqlSession session=factory.openSession();
UserDao userdao=session.getMapper(UserDao.class);
List<User> list=userdao.selectAll();
for(User u:list){
System.out.println(u.getName()+"年龄"+u.getAge());
}
session.commit();
session.close();
}
}
请结合 http://www.cnblogs.com/zhangchenglzhao/p/3505176.html
mybatis 和 mybatis-spring的更多相关文章
- MyBatis 3 与 Spring 4 整合关键
MyBatis 3 与 Spring 4 整合关键 MyBatis与Spring整合,首先需要一个Spring数据源.其次有两个关键,配置sqlSessionFactory时需要配置扫描sql映射xm ...
- MyBatis 学习-与 Spring 集成篇
根据官方的说法,在 ibatis3,也就是 Mybatis3 问世之前,Spring3 的开发工作就已经完成了,所以 Spring3 中还是没有对 Mybatis3 的支持.因此由 Mybatis 社 ...
- Mybatis集成到spring boot
1, Mybatis简介 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...
- MyBatis之整合Spring
MyBatis之整合Spring 整合思路: 1.SqlSessionFactory对象应该放到spring容器中作为单例存在 2.传统dao的开发方式中,应该从spring容器中获得sqlSessi ...
- MyBatis在非Spring环境下第三方DataSource设置-Druid篇
首先在ITEye上面看到一个同标题文章,在此说明,此文并非转载自 http://iintothewind.iteye.com/blog/2069522 ,因为这篇文章根本就是错误的,照着上面做,工程可 ...
- 深入浅出mybatis之与spring集成
目录 写在前面 详细配置 1.dataSource(数据源) 2.sqlSessionFactory(Session工厂) 3.Mapper(映射器) 4.TransactionManager(事务管 ...
- SpringMVC+Spring+mybatis项目从零开始--Spring mybatis mysql配置实现
上一章我们把SSM项目结构已搭建(SSM框架web项目从零开始--分布式项目结构搭建)完毕,本章将实现Spring,mybatis,mysql等相关配置. 1. 外部架包依赖引入 外部依赖包引入 ...
- mybatis源码分析(8)-----事务(mybatis管理、spring管理)
写在前面 接口:MyBatis的事务Transaction的接口有一下实现类 JdbcTransaction 由jdbc管理的事务(即利用Connection对象完成对事务的提交(commit()). ...
- 因此mybatis最好与spring集成起来使用
单独使用mybatis是有很多限制的(比如无法实现跨越多个session的事务),而且很多业务系统本来就是使用spring来管理的事务,因此mybatis最好与spring集成起来使用. spring ...
- JavaPersistenceWithMyBatis3笔记-第5章Configuring MyBatis in a Spring applications-001
一. 1.Mapper /** * */ package com.mybatis3.mappers; import java.util.List; import org.apache.ibatis.a ...
随机推荐
- c++官方文档-枚举-联合体-结构体-typedef-using
#include<iostream> #include <new> #include<stdio.h> using namespace std; /** * url ...
- python入门-列表
列表使用[]来标识 列表和PHP中的数组类似 包括使用和访问方式都是类似 可以用下标索引的方式直接访问 来几个例子,这样看起来才舒服 names = ['baker','pitty','david', ...
- centos7.3安装zend guard loader3.3 for php5.6
1 下载zend guard loader 到这里选择自己的系统版本 我选择的64位 for php5.6.3 linux http://www.zend.com/en/products/load ...
- 39. 在linux下装好Tomcat要给 tomcat/bin/下面所有.sh的文件执行权限
chmod a+x *.sh(赋予可执行的权限)
- 无法读取用户配置文件,系统自动建立Temp临时用户
chkdsk/f 删除用户目录下的 ntuser.dat.LOG 文件,重新登陆即可. 对于新建用户的情况: 一.Default User文件夹不完整或者被删除了,导致系统无法复制新的一份.这种情况的 ...
- SAP PP中关于工单报工的小解
一般来说工单确认的方法很多,这里就简要介绍下几种常见的报工方法: 1.co11n 是大家常用的方法之一,也是比较好用,产量,报废,返工,工时,货物移动都可以输入.介于我们公司的业务我们用这个报工是最多 ...
- python os.mkdir与 os.makedirs
1.mkdir( path [,mode] ) 作用:创建一个目录,可以是相对或者绝对路径,mode的默认模式是0777. 如果目录有多级,则创建最后一级.如果最后一级目录的上级目 ...
- 【干货】国外程序员整理的 C++ 资源大全(转)
转zi:http://www.csdn.net/article/2014-10-24/2822269-c++ 关于 C++ 框架.库和资源的一些汇总列表,由 fffaraz发起和维护. 内容包括:标准 ...
- java内存溢出的原因
前几天 ,面试被问到这个, 我只说了个死循环,所以上网查了下 ,下面给个总结: 内存溢出就是系统可以提供给Java虚拟机的内存不足导致的,主要分为以下几种情况: 1.要加载的数据量过大,比如加载一个很 ...
- Lock()与RLock()锁
资源总是有限的,程序运行如果对同一个对象进行操作,则有可能造成资源的争用,甚至导致死锁 也可能导致读写混乱 锁提供如下方法: 1.Lock.acquire([blocking]) 2.Lock.rel ...