设为首页 收藏本站
查看: 1444|回复: 0

[经验分享] Mybatis技术(二) MyBatis-Spring

[复制链接]

尚未签到

发表于 2016-11-24 03:37:30 | 显示全部楼层 |阅读模式
  
Mybatis技术(二) MyBatis-Spring
    博客分类: 
  • Mybatis技术内幕
MyBatis-Spring整合环境搭建

Mybaits为什么要整合Spring?
说白了其实就想使用Spring提供的服务,比如Spring的事务管理、Spring的IOC对Bean进行管理等。 
 
Mybatis怎么整合Spring?
 由于目前Spring官方还没有出整合Mybatis的特性,所以这里在Spring框架和MyBatis框架上再添加用于整合的框架“mybatis-spring-1.0.2.jar” (该框架时MyBatis官方自己出的)。
 
(1)新建一个Web工程,名称为MybatisSpring。
 
(2)将Spring3.0.3、Mybatis3.0.6、Mybatis-Spring1.0.2、log4j、Oracle驱动和DBCP连接池的JAR包放到Web工程的lib下面,具体的JAR包如下:
Java代码   DSC0000.png


  • classes12.jar  
  • log4j-1.2.16.jar  
  • mybatis-3.0.6.jar  
  • mybatis-spring-1.0.2.jar  
  • org.springframework.aop-3.0.3.RELEASE.jar  
  • org.springframework.asm-3.0.3.RELEASE.jar  
  • org.springframework.aspects-3.0.3.RELEASE.jar  
  • org.springframework.beans-3.0.3.RELEASE.jar  
  • org.springframework.context-3.0.3.RELEASE.jar  
  • org.springframework.context.support-3.0.3.RELEASE.jar  
  • org.springframework.core-3.0.3.RELEASE.jar  
  • org.springframework.expression-3.0.3.RELEASE.jar  
  • org.springframework.jdbc-3.0.3.RELEASE.jar  
  • org.springframework.transaction-3.0.3.RELEASE.jar  
  • org.springframework.web-3.0.3.RELEASE.jar  
  • commons-logging-1.1.1.jar  
  • commons-dbcp-1.2.jar  
  • commons-pool-1.4.jar  

 
(3)在src下面新建log4j.properties文件,该文件的内容如下:
Java代码  


  • log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  • log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  • log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n  
  • log4j.logger.com.ibatis=debug  
  • log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug  
  • log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug  
  • log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug  
  • log4j.logger.java.sql.Connection=debug  
  • log4j.logger.java.sql.Statement=debug  
  • log4j.logger.java.sql.PreparedStatement=debug,stdout  

 
 


(4)在Oracle数据库执行以下SQL,创建一个USER_INFO的表:
 
Java代码  


  • -- Create table  
  • create table USER_INFO  
  • (  
  •   ID          NUMBER(12) not null,  
  •   NAME        VARCHAR2(50)  
  • );  
  •   
  • --Insert data  
  • insert into USER_INFO(ID,NAME) values(1,'张三');  

 
(5)新建一个Java类UserInfo.java,该类的内容如下:
 
Java代码  


  • package com.user;  
  •   
  • public class UserInfo {  
  •     private int id;  
  •     private String name;  
  •   
  •     public UserInfo() {  
  •     }  
  •   
  •     public UserInfo(String name) {  
  •         this(0, name);  
  •     }  
  •   
  •     public UserInfo(int id, String name) {  
  •         this.id = id;  
  •         this.name = name;  
  •     }  
  •   
  •     public int getId() {  
  •         return id;  
  •     }  
  •   
  •     public void setId(int id) {  
  •         this.id = id;  
  •     }  
  •   
  •     public String getName() {  
  •         return name;  
  •     }  
  •   
  •     public void setName(String name) {  
  •         this.name = name;  
  •     }  
  •   
  •     @Override  
  •     public String toString() {  
  •         return "ID: " + id + ", Name: " + name;  
  •     }  
  • }  

 
(6)在com.user.sqlmap下面新建UserInfo.xml文件,该文件的内容如下:
 
Java代码  


  • <?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="User">  
  •     <select id="selectUser" parameterType="int" resultType="UserInfo">  
  •     <![CDATA[  
  •         select * from user_info where id = #{id}  
  •     ]]>  
  •     </select>  
  • </mapper>  

 
(7)在src下面新建mybatis.cfg.xml文件,该文件的内容如下:
Java代码  


  • <?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 alias="UserInfo" type="com.user.UserInfo" />  
  •     </typeAliases>  
  •       
  •     <mappers>  
  •         <mapper resource="com/user/sqlmap/UserInfo.xml" />  
  •     </mappers>  
  • </configuration>  

 
 
(8)新建一个Java类UserService.java,该类的内容如下:
 
Java代码  


  • package com.user;  
  •   
  • import org.mybatis.spring.SqlSessionTemplate;  
  •   
  • public class UserService {  
  •     private SqlSessionTemplate  sqlSession;  
  •       
  •     public SqlSessionTemplate getSqlSession() {  
  •         return sqlSession;  
  •     }  
  •   
  •     public void setSqlSession(SqlSessionTemplate sqlSession) {  
  •         this.sqlSession = sqlSession;  
  •     }  
  •       
  •     public UserInfo selectUser(){  
  •           UserInfo user = null;  
  •           try {  
  •                           user = (UserInfo) sqlSession.selectOne("User.selectUser""1");  
  •                     } catch (Exception e) {  
  •                           e.printStackTrace();  
  •                     }  
  •           
  •                    return user;  
  •              }  
  • }  

 
(9)在src下面新建applicationContext.xml文件,该文件的内容如下:
Java代码  


  • <?xml version="1.0" encoding="UTF-8"?>  
  • <beans xmlns="http://www.springframework.org/schema/beans"  
  •     default-autowire="byName"  
  •     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">  
  •         <property name="driverClassName" value="oracle.jdbc.OracleDriver" />  
  •         <property name="url" value="jdbc:oracle:thin:@localhost:1521:SID" />  
  •         <property name="username" value="xxxx" />  
  •         <property name="password" value="xxxx" />  
  •         <property name="maxActive" value="100"></property>  
  •         <property name="maxIdle" value="30"></property>  
  •         <property name="maxWait" value="500"></property>  
  •         <property name="defaultAutoCommit" value="true"></property>  
  •     </bean>  
  •       
  •     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  •         <property name="configLocation" value="classpath:mybatis.cfg.xml"></property>  
  •         <property name="dataSource" ref="dataSource" />  
  •     </bean>  
  •       
  •     <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">  
  •         <constructor-arg index="0" ref="sqlSessionFactory" />  
  •     </bean>  
  •       
  •     <bean id="userService" class="com.user.UserService">  
  •        <property name="sqlSession" ref="sqlSessionTemplate" />  
  •     </bean>  
  •   
  • </beans>  

 
 
(10)新建一个测试Java类UserInfoTest.java,该类的具体内容如下:
Java代码  


  • package com.user;  
  •   
  • import java.io.IOException;  
  •   
  • import org.springframework.context.ApplicationContext;  
  • import org.springframework.context.support.ClassPathXmlApplicationContext;  
  •   
  •   
  •   
  • public class UserInfoTest {  
  •   
  •     /** 
  •      * @param args 
  •      * @throws IOException  
  •      */  
  •     public static void main(String[] args) throws IOException {  
  •         ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  
  •                             UserService userService = (UserService)context.getBean("userService");  
  •                             UserInfo userInfo = userService.selectUser();  
  •                             System.out.println(userInfo);  
  •   
  •     }  
  •   
  • }  

 
 
(11)右键UserInfoTest 类,选择Run As Application,运行MyBaits操作数据库。
 
Java代码  


  • log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).  
  • log4j:WARN Please initialize the log4j system properly.  
  • log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.  
  • 2012-02-11 21:13:42,156 DEBUG [java.sql.PreparedStatement] -==>  Executing: select * from user_info where id = ?   
  • 2012-02-11 21:13:42,156 DEBUG [java.sql.PreparedStatement] -==> Parameters: 1(String)  
  • ID: 1, Name: 张三  

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-304498-1-1.html 上篇帖子: Mybatis用法 下篇帖子: mybatis 学习 (一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表