Alex_TD

Spring ---Mabatis

1。Mybatis 的环境搭建流程:  1.导入包jar  2.创建实体类   3.创建配置文件  4.写接口,接口映射器  5.测试

 1.导入包:1.Junit.jar  2 mysql-connector-java.jar   3.mybatis.jar  4.spring-jdbc.jar  5.spring-webmvc.jar  6.aspectjweaver.jar 7.mybatis-srping.jar

 2.编写配置文件:    

<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--   增加支持注解配置-->
    <context:annotation-config/>
<!--    增加支持包自动扫描-->
    <context:component-scan base-package="com.sun.dao"/>
<!--    创建数据源的连接参数-->
<!--    C3P3 DBCP DRuid-->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  //DriverManagerDataSource类 C3P0    DBCP  BasicDataSource类  (包支持jar spring-jdbc commons-dbcp commons-pool)   
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url"  value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false"/>   //出错原因:第一个次:jdbc:mysql: 写反了
        <property name="username" value="root"/>                                                                                   第二次:数据库问号后面加/。 mybatis?useUnicode=true
        <property name="password" value="12345"/>
    </bean>
<!--    创建mybatis的工厂方法-->
    <bean id="sqlsessionfactorybean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--        导入数据源-->
        <property name="dataSource" ref="datasource"/>    //引用类型用 ref   不能写成值类型
<!--        导入配置文件中的映射器路径-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>  路径格式:注意是路径 /反斜杠   *代表通配符  **代表目录结构 可以放在resource 和java目录的任何目录下,没有接口类和映射名的要求了。 
        <property name="typeAliasesPackage" value="com.sun.pojo"/>     别名: value包下的所有类的类名 自动成为简写名称 com.sun.pojo.User == User
<!--        导入mybatis的配置文件....<property name="configLocation"-->        
    </bean>
<!--    创建SqlsessiondTemplate-->
    <bean id="sqlsession" class="org.mybatis.spring.SqlSessionTemplate">//SqlSessionTemplate类没有set方法,只能构造方法注入。构造方法注入有3种:第一种: index=0 标注  第二种:type=“java.lang.String” value="123" 第三种:name=   valur|ref=
<!--        只有构造器注入-->
         <constructor-arg index="0" ref="sqlsessionfactorybean"/>
    </bean>
<!--    注册数据库查找类的Bean-->
    <bean id="userdaoimpl" class="com.sun.dao.UserDaoImpl">      // 注册mybatia接口实现类 属性注入 Sqlsession 不知道还需不需要手动关闭连接? 不需要了,刚试了
        <property name="sessionTemplate" ref="sqlsession"/>     //  set注入sqlsession  this.sqlsession=sqlsession
    </bean>
</beans>
    

  SelectList 和getMapper对比:

 public List<User> getUserList() {
        List<User> userList = sessionTemplate.selectList("com.sun.dao.UserDao.getUserList");
        return userList;
    }

  

public List<User> getUserList() {
//        List<User> userList = sessionTemplate.selectList("com.sun.dao.UserDao.getUserList");// RowBounds 还有JavaAssist 好难。
        UserDao mapper = sessionTemplate.getMapper(UserDao.class);   //代理对象
        List<User> userList = mapper.getUserList();
        return userList;
    }

  

posted on 2020-02-21 14:04  Alex_TD  阅读(104)  评论(0编辑  收藏  举报