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

[经验分享] spring+mybatis初探

[复制链接]

尚未签到

发表于 2016-11-24 08:54:37 | 显示全部楼层 |阅读模式
一、准备jar
DSC0000.png
 
1.mybatis.jarmybatis-spring.jar官方下载地址:
 http://code.google.com/p/mybatis/
2.spring的所有jar
3.数据库驱动jar
4.junit测试jar
5.log4j日志jar
二、配置文件
1. 数据库连接基本信息jdbc.properties放在src

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:oralsb
username=scott
password=tiger
maxActive=255
maxIdle=20
maxWait=100

 
具体的一些信息,可以根据自己的数据库情况进行一定的修改。
2.在数据库中创建表与及相应的序列

CREATE TABLE T_USER
(
ID INT PRIMARY KEY,
NAME VARCHAR2(15),
PASSWORD VARCHAR2(20)
);
CREATE SEQUENCE T_USER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE;
COMMIT;

 
3.创建相应的JavaBean

package com.springmybatis.model;
public class User {
private int id;
private String name;
private String password;
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;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
}
}

 
4.准备表的映射文件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="com.springmybatis.model.User">
<resultMap id="userMap" type="User">
<id column="id" property="id" />
<id column="name" property="name" />
<id column="password" property="password" />
</resultMap>
<select id="getUser" parameterType="int" resultMap="userMap">
SELECT * FROM T_USER WHERE ID = #{id}
</select>
<insert id="addUser" parameterType="User">
INSERT INTO T_USER
(ID, NAME, PASSWORD)
VALUES
(T_USER_SEQ.NEXTVAL, #{name, jdbcType=VARCHAR}, #{password, jdbcType=VARCHAR})
</insert>
<update id="updateUser" parameterType="User">
UPDATE T_USER SET NAME = #{name, jdbcType=VARCHAR}, PASSWORD = #{password, jdbcType=VARCHAR} WHERE ID = #{id, jdbcType=INTEGER}
</update>
</mapper>

 
5. 总配置文件sqlMapConfig.xml
对于熟悉Mybatis这个orm框架的肯定知道,一般都需要一个对数据库操作的总配置文件。

<?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="User" type="com.springmybatis.model.User" />
</typeAliases>
<mappers>
<mapper resource="com/springmybatis/model/User.xml" />
</mappers>
</configuration>

   
6.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- 添加扫描包 -->
<context:component-scan base-package="com.springmybatis" />
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 最大连接数量 -->
<property name="maxActive" value="${maxActive}" />
<!-- 最大空闲连接数量 -->
<property name="maxIdle" value="${maxIdle}" />
<property name="maxWait" value="${maxWait}" />
<property name="validationQuery" value="select count(1) from Dual" />
<!-- test when get connection -->
<property name="testOnBorrow" value="true" />
<!-- test when return connection to pool -->
<property name="testOnReturn" value="true" />
<property name="testWhileIdle" value="true" />
</bean>
<!-- 创建sqlSessionFactory,同时指定数据源 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:sqlMapConfig.xml" />
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>

 
7.编写相应的DAO
7.1 IUserDAO.java

package com.springmybatis.dao;
import com.springmybatis.model.User;
public interface IUserDAO {
public boolean addUser(User user);
public boolean updateUser(User user);
public User getUser(int id);
}

 
7.2 UseDAOImpl.java

package com.springmybatis.dao;
import javax.annotation.Resource;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Component;
import com.springmybatis.model.User;
@Component("userDAO")
public class UserDAOImpl implements IUserDAO {
private SqlSessionTemplate sqlSessionTemplate;
public SqlSessionTemplate getSqlSessionTemplate() {
return sqlSessionTemplate;
}
@Resource(name="sqlSessionTemplate")
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}
@Override
public boolean addUser(User user) {
int result = sqlSessionTemplate.insert("com.springmybatis.model.User.addUser", user);
return result != 0;
}
@Override
public boolean updateUser(User user) {
int result = sqlSessionTemplate.update("com.springmybatis.model.User.updateUser", user);
return result != 0;
}
@Override
public User getUser(int id) {
User user = sqlSessionTemplate.selectOne("com.springmybatis.model.User.getUser", id);
return user;
}
}

 
三、日志文件配置
1. 日志文件配置log4j.properties放在src

log4j.rootLogger=DEBUG, stdout, fileout
#log4j.logger.test=info
#log4j.logger.org.apache.jasper = DEBUG
#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG
#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG
log4j.logger.com.fiscal = DEBUG
log4j.logger.com.system = DEBUG
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
log4j.logger.java.sql.ResultSet = DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=C:\\ibatis.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n

 
2.web.xml添加如下配置

<!-- Log4j 配置 -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

 
四、测试

package com.springmybatis.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.springmybatis.dao.IUserDAO;
import com.springmybatis.dao.UserDAOImpl;
import com.springmybatis.model.User;
public class UserTest {
@Test
public void testAddUser() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
IUserDAO userDAO = context.getBean("userDAO", UserDAOImpl.class);
User user = new User();
user.setName("李四");
user.setPassword("12345");
boolean result = userDAO.addUser(user);
System.out.println(result);
}
@Test
public void testUpdateUser() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
IUserDAO userDAO = context.getBean("userDAO", UserDAOImpl.class);
User user = new User();
user.setId(1);
user.setName("李四123456789");
user.setPassword("54321");
boolean result = userDAO.updateUser(user);
System.out.println(result);
}
@Test
public void testGetUser() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
IUserDAO userDAO = context.getBean("userDAO", UserDAOImpl.class);
User user = userDAO.getUser(1);
System.out.println(user);
}
}

 

运维网声明 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-304766-1-1.html 上篇帖子: 在spring中使用mybatis 下篇帖子: mybatis 3.1.1 分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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