使用maevn项目的mybatis基础配置及使用

来源:互联网 发布:java软件工程师考试 编辑:程序博客网 时间:2024/05/18 03:14

第一步 建立maven项目,直接在eclipse中新建maven项目,maven项目新建好后会有pom.xml文件

并在pom文件中添加依赖,添加后会自动在maven中央仓库中下载对应jar包




<!--  配置文件,用于说明版本的 --!>

<properties>
<mybatis.spring.version>1.3.0</mybatis.spring.version>
<mybatis.version>3.4.0</mybatis.version>
<spring.version>4.2.5.RELEASE</spring.version>
<mysql.connector.version>5.1.38</mysql.connector.version>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

  
  

<!--  mybatis依赖 --!>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>



<!--  MySQL驱动 我们要连接的mySql数据库--!>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
<scope>runtime</scope>
</dependency>
  </dependencies>


第二步:

新建实体类及接口类

//实体类

public class BusLine {


private String startStationName;
private String endStationName;
private String busLineName;


public String getStartStationName() {
return startStationName;
}
public void setStartStationName(String startStationName) {
this.startStationName = startStationName;
}
public String getEndStationName() {
return endStationName;
}
public void setEndStationName(String endStationName) {
this.endStationName = endStationName;
}
public String getBusLineName() {
return busLineName;
}
public void setBusLineName(String busLineName) {
this.busLineName = busLineName;
}


}


//接口

public interface BusLineMapper {


public List<BusLine> getAllBusLine();

}

第三步  配置映射文件 和 mybaits的config

//映射文件

BusLineMapper.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="soft.myservice.dao.mapper.BusLineMapper" >

 <resultMap type="BusLine" id="BusLineResultMap">  
        <result property="startStationName" column="startStationName"/>  
        <result property="endStationName" column="endStationName"/>  
        <result property="busLineName" column="busLineName"/>  
    </resultMap>  

<select id="getAllBusLine" resultType="fhsoft.myservice.model.BusLine"    resultMap="BusLineResultMap"> 
        select startStationName,endStationName,busLineName from hfbus_line
</select>
</mapper>


mybatis_config.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> 
  //使用的清单文件
   <properties resource="prop.properties"></properties>
  
   <typeAliases>
        <package name="soft.myservice.model"/>
     </typeAliases>
     
 <environments default="development">
       <environment id="development">
           <transactionManager type="JDBC" />
           <dataSource type="POOLED">
               <property name="driver" value="${driver}" />
               <property name="url" value="${url}" />
               <property name="username" value="${username}" />
               <property name="password" value="${password}" />
           </dataSource>
       </environment>
   </environments>
   <mappers>
        <!--引入映射文件 -->
        <mapper resource="soft/myservice/dao/mapper/BusLineMapper.xml" />
    </mappers>
   </configuration>



第三部使用 mybatis

创建mybatis 工具类

public class MyBatisUtil {
//GC不理static
    private static SqlSessionFactory factory=null;
    public static SqlSessionFactory getSqlSessionFactory(){
        if(factory==null){
        // 获得环境配置文件流
        InputStream config = MyBatisUtil.class.getClassLoader().getResourceAsStream("mybaits_config.xml");
        // 创建sql会话工厂
        factory = new SqlSessionFactoryBuilder().build(config);
        }
        return factory;
    }
    
    //获得会话
    public static SqlSession getSession(){
        return getSqlSessionFactory().openSession(true);
    }
    
    /**
     * 获得得sql会话
     * @param isAutoCommit 是否自动提交,如果为false则需要sqlSession.commit();rollback();
     * @return sql会话
     */
    public static SqlSession getSession(boolean isAutoCommit){
        return getSqlSessionFactory().openSession(isAutoCommit);
    }
    
}


//实现接口


public class BusLineImpl implements BusLineMapper {


public List<BusLine> getAllBusLine() {
SqlSession session=MyBatisUtil.getSession();
try {
 BusLineMapper busline=session.getMapper(BusLineMapper.class);
return busline.getAllBusLine();
}finally{
session.close();
}

}



最后 测试


public class test {


public static void main(String[] args) {
BusLineImpl busline = new BusLineImpl();
List<BusLine> allbusline =busline.getAllBusLine();
String BusLineName ;
String StartStationName;
String EndStationName;

for(BusLine b :allbusline){
BusLineName =b.getBusLineName();
StartStationName = b.getStartStationName();
EndStationName =b.getEndStationName();
System.out.println("线路名称:"+BusLineName+"始发站:"+StartStationName+"|终点站:"+EndStationName);
}

}
}


输出结果:






0 0