前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >组件化项目搭建(非专业,无聊的一次尝试)二 原

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

作者头像
尚浩宇
发布2018-08-17 09:57:07
2460
发布2018-08-17 09:57:07
举报
文章被收录于专栏:杂烩杂烩杂烩

        项目建好了,那我们来集成以下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());  
	}
}

欧了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015/05/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档