Mybatis+Spring整合

来源:互联网 发布:农村淘宝宝网址是什么 编辑:程序博客网 时间:2024/06/05 18:27

1 概述

示例用maven工程对springmybatis进行整合,数据库采用sqlite,连接池采用阿里巴巴druid数据库连接池。

代码:2017-11-28邮件

2 pom.xml

<?xml version="1.0"encoding="UTF-8"?>
<projectxmlns="http://maven.apache.org/POM/4.0.0"
        
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
   
<modelVersion>4.0.0</modelVersion>

   
<groupId>groupId</groupId>
   
<artifactId>yangkl</artifactId>
   
<version>0.0.1</version>

   
<dependencies>
       
<!--spring framework-->
       
<dependency>
           
<groupId>org.springframework</groupId>
           
<artifactId>spring-core</artifactId>
           
<version>4.3.2.RELEASE</version>
       
</dependency>
       
<dependency>
           
<groupId>org.springframework</groupId>
           
<artifactId>spring-context</artifactId>
           
<version>4.3.2.RELEASE</version>
       
</dependency>
       
<dependency>
           
<groupId>org.springframework</groupId>
           
<artifactId>spring-test</artifactId>
           
<version>4.3.2.RELEASE</version>
       
</dependency>
       
<dependency>
           
<groupId>org.springframework</groupId>
           
<artifactId>spring-tx</artifactId>
           
<version>4.3.2.RELEASE</version>
       
</dependency>
 
      <dependency>
           
<groupId>org.springframework</groupId>
           
<artifactId>spring-beans</artifactId>
           
<version>4.3.2.RELEASE</version>
       
</dependency>
       
<dependency>
           
<groupId>org.springframework</groupId>
           
<artifactId>spring-jdbc</artifactId>
           
<version>4.3.2.RELEASE</version>
       
</dependency>
       
<!--mybatis-->
       
<dependency>
           
<groupId>org.mybatis</groupId>
           
<artifactId>mybatis</artifactId>
    
       <version>3.2.8</version>
       
</dependency>
       
<dependency>
           
<groupId>org.mybatis</groupId>
           
<artifactId>mybatis-spring</artifactId>
           
<version>1.3.0</version>
       
</dependency>
       
<!--阿里巴巴druid数据源的jar包依赖-->
       
<dependency>
           
<groupId>com.alibaba</groupId>
           
<artifactId>druid</artifactId>
           
<version>1.0.18</version>
       
</dependency>
       
<!--sqllite驱动-->
       
<dependency>
           
<groupId>org.xerial</groupId>
           
<artifactId>sqlite-jdbc</artifactId>
           
<version>3.20.0</version>
       
</dependency>
   
</dependencies>
</
project>

 

3 Spring Context配置

<?xml version="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
      
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"
      
xmlns:aop="http://www.springframework.org/schema/aop"
      
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.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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
>
   
<context:component-scanbase-package="com.greatech.service"></context:component-scan>
   
<context:property-placeholderlocation="classpath:jdbc.properties"
                                 
ignore-unresolvable="true"
/>
   
<!--配置参考https://www.cnblogs.com/ljdblog/p/5842778.html-->
   
<!-- 配置数据源 -->
   
<beanname="dataSource"class="com.alibaba.druid.pool.DruidDataSource"
         
init-method="init"destroy-method="close"
>
       
<propertyname="url"value="${jdbc.url}"/>
       
<propertyname="username"value="${jdbc.username}"/>
       
<propertyname="password"value="${jdbc.password}"/>
       
<!-- 初始化连接大小 -->
       
<propertyname="initialSize"value="0"/>
       
<!-- 连接池最大使用连接数量 -->
       
<propertyname="maxActive"value="20"/>
       
<propertyname="dbType"value="mysql"/>
       
<!-- 连接池最小空闲 -->
       
<propertyname="minIdle"value="0"/>
       
<!-- 获取连接最大等待时间 -->
       
<propertyname="maxWait"value="60000"/>
       
<propertyname="validationQuery"value="${validationQuery}"/>
       
<propertyname="testOnBorrow"value="false"/>
       
<propertyname="testOnReturn"value="false"/>
       
<propertyname="testWhileIdle"value="true"/>
       
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
       
<propertyname="timeBetweenEvictionRunsMillis"value="60000"/>
       
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
       
<propertyname="minEvictableIdleTimeMillis"value="25200000"/>
       
<!-- 打开removeAbandoned功能 -->
       
<propertyname="removeAbandoned"value="true"/>
       
<!-- 1800秒,也就是30分钟 -->
       
<propertyname="removeAbandonedTimeout"value="1800"/>
       
<!-- 关闭abanded连接时输出错误日志 -->
       
<propertyname="logAbandoned"value="true"/>
       
<!-- 监控数据库 -->
       
<!-- <property name="filters" value="stat" /> -->
       
<propertyname="filters"value="mergeStat"/>
   
</bean>
   
<!-- myBatis文件 -->
   
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
       
<propertyname="dataSource"ref="dataSource"/>
       
<!-- 配置数据库表对应的java实体类 -->
       
<propertyname="typeAliasesPackage"value="com.greatech.service.model"/>
       
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
       
<propertyname="mapperLocations"value="mybatis/userdao.xml"/>
   
</bean>
   
<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
       
<propertyname="basePackage"value="com.greatech.service.dao"/>
       
<propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
   
</bean>
</
beans>

 

4 Jdbc配置

jdbc.driver=org.sqlite.JDBC
jdbc.url
=jdbc:sqlite://D://develop/svn2/infoplatform/target/classes/log.db
jdbc.username
=sa
jdbc.password
=admin
validationQuery
=SELECT 1

oracle配置
jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@10.157.12.33:1521:ldardbjdbc.username=whyxyjzhjdbc.password=whyxyjzh

5 UserDao接口

packagecom.greatech.service.dao;

import com.greatech.service.model.User;

/**
 
* Created by asus on 2017/11/27.
 */
public interface UserDao {
   
public User getUser(User user);

   
public void addUser(User user);

   
public void updateUser(User user);

   
public void deleteUser(intUserId);
}

6 实体类

packagecom.greatech.service.dao;

import com.greatech.service.model.User;

/**
 
* Created by asus on 2017/11/27.
 */
public interface UserDao {
   
public User getUser(User user);

   
public void addUser(User user);

   
public void updateUser(User user);

   
public void deleteUser(intUserId);
}

 

7 测试类

packagecom.greatech.service;

import com.greatech.service.dao.UserDao;
import com.greatech.service.model.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 
* Created by asus on 2017/11/27.
 */
public class Test {
   
public static void main(String[] args) {
       
ApplicationContext ctx = null;
       
ctx = new ClassPathXmlApplicationContext("spring-mybatis.xml");
       
UserDao userDao = (UserDao) ctx.getBean("userDao");
       
User user = new User();
       
//添加两条数据
       
user.setId(1);
       
user.setUsername("Jessica");
       
user.setPassword("123");
       
userDao.addUser(user);

        user.setId(2);
       
user.setUsername("Jessica2");
       
user.setPassword("123");
       
userDao.addUser(user);
        System.out.println("添加成功");
       
//查询数据
       
user.setUsername("Jessica");
       
user.setPassword("123");
       
System.out.println(userDao.getUser(user).toString());

       
user.setUsername("Jessica2");
       
user.setPassword("123");
       
System.out.println(userDao.getUser(user).toString());
       
//修改数据
       
user.setId(2);
       
user.setPassword("802");
       
userDao.updateUser(user);
        System.out.println("修改成功");
       
//删除数据
       
userDao.deleteUser(1);
       
System.out.println("删除成功");

   
}
}

 

原创粉丝点击