當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
[置顶] 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包如下:
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文件,該文件的內容如下:
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的表:
-- 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,該類的內容如下:
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文件,該文件的內容如下:
<?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文件,該文件的內容如下:
<?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,該類的內容如下:
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文件,該文件的內容如下:
<?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,該類的具體內容如下:
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操作數據庫。
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: 張三
說白了其實就想使用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包如下:
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文件,該文件的內容如下:
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的表:
-- 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,該類的內容如下:
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文件,該文件的內容如下:
<?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文件,該文件的內容如下:
<?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,該類的內容如下:
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文件,該文件的內容如下:
<?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,該類的具體內容如下:
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操作數據庫。
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: 張三
轉載于:https://blog.51cto.com/3001448/1205828
總結
以上是生活随笔為你收集整理的[置顶] Mybatis技术(二) MyBatis-Spring的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux将bridge当做hub来用
- 下一篇: 菜鸟也有明天