组件化项目搭建(非专业,无聊的一次尝试)二

        项目建好了,那我们来集成以下dao,dao我们使用mybatis框架,以及druid数据库连接池、oscache缓存,数据库使用mysql 64位。

        在pom里加上

<project xmlns="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>
  <parent>
    <groupId>scc-module</groupId>
    <artifactId>module-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>module-dao</artifactId>
  <name>module-dao</name>
  <description>dao组件</description>
  <dependencies>
  		<!-- 数据库驱动jar -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.31</version>
		</dependency>
		<!-- mybatis jar -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.7</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis.caches</groupId>
			<artifactId>mybatis-oscache</artifactId>
			<version>1.0.1</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.2</version>
		</dependency>
  </dependencies>
</project>

然后在src/main/resources下建立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>
	<typeAliases>  
        <!--给实体类起一个别名 user -->  
        <typeAlias type="scc.entry.User" alias="User" />  
        <typeAlias type="scc.util.DruidDataSourceFactory"  alias="DRUID" />
    </typeAliases>  
    <environments default="derby">
        <environment id="derby">
            <transactionManager type="JDBC" />
            <dataSource type="DRUID">
                <property name="url" value="jdbc:mysql://localhost:3306/test" />
                <property name="username" value="root" />  
                <property name="password" value="1234" />  
            </dataSource>
        </environment>
    </environments>
    <mappers>  
        <!--userMapper.xml装载进来  同等于把“dao”的实现装载进来 -->  
        <mapper resource="scc/mapper/userMapper.xml" />  
    </mappers>  
</configuration>

mybatis第三方数据库连接池注意要实现DataSourcrFactory,

package scc.util;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.ibatis.datasource.DataSourceFactory;

public class DruidDataSourceFactory implements DataSourceFactory{
	private DataSource dataSource;

	@Override
	public void setProperties(Properties props) {
		try {
	       this.dataSource = com.alibaba.druid.pool.DruidDataSourceFactory.createDataSource(props);
	   } catch (final RuntimeException e) {
	       throw e;
		} catch (final Exception e) {
			throw new RuntimeException("init datasource error", e);
		}
	}

	@Override
	public DataSource getDataSource() {
		return this.dataSource;
	}

}

接着建立实体,dao接口,xml文件

package scc.entry;

public class User {
	private Integer id;
	private String name;
	private Integer age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public User() {
	}
}
package scc.dao;

import scc.entry.User;

public interface UserMapper {
	public User findById(String Id); 
}
<?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">  
    <!--这块等于dao接口的实现  namespace必须和接口的类路径一样-->  
<mapper namespace="scc.dao.UserMapper">  
    <!-- findById必须和接口中的方法名一样  返回一个User  就是刚才的别名  如果不弄别名要连类路径一起写 麻烦-->  
    <select id="findById" parameterType="HashMap" resultType="User">  
        select  * from student where id=#{id}  
    </select>  
</mapper>

最后写一个测试类

package test;
import java.io.IOException;

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 org.junit.Test;

import scc.dao.UserMapper;
import scc.entry.User;


public class MybatisTest {
	@Test
	public void testMybatis() throws IOException{
		SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("configuration.xml"));
		SqlSession sqlSession = sessionFactory.openSession();  
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);  
        User user = userMapper.findById("1");  
        System.out.println(user.getName());  
	}
}

欧了

你可能感兴趣的:(组件化项目搭建(非专业,无聊的一次尝试)二)